一种图数据库存储层的设计探讨
无中心化的存储集群,一般单个集群还是有一定的大小限制,不宜过大。存储层的抽象在于,数据集(图的话就是不同的点和边)到存储集群的逻辑映射对用户透明,可用性需求高的场景需要考虑双集群互为灾备。单集群的数据平衡是集群内部的事,集群和集群间的数据平衡是需要设计的,其中线下到线上的数据传输通道尤其重要。
设计原则:
1. 不要使得单集群过大;
2. 本地互为备份集群支持读active-active;
3. 利用线下到线上数据传输通道做好数据集群间迁移、backfill、recovery,batch update等等工作:
4. 数据访问有抽象,使得集群的运维对于用户访问透明;
5. 做好集群间的跨数据中心数据复制;
6. 到达即使逐步投资也能线性扩展的设计;