百亿级图数据JanusGraph迁移之旅
1. 迁移背景介绍 目前我们的图数据库数据量为 顶点 20 亿,边 200 亿的规模。在迁移之前我们使用的 AgensGraph 数据库 一个主库四个备库,机器的配置都比较高,256G 内存 SSD 的磁盘,单机数据量为 3T左右。 在数据量比较小的情况下 AgensGraph 表现非常稳定优异,我们之前一主一备的情况下支撑了很长一段时间。 但随着公司业务的急速发展,图越来越大,占用的磁盘越来越多,对应的查询量也越来越大,随之这种方案的问题就暴露出来了 单机的磁盘空间不够,按理说可以一直添加磁盘,但现实情况有很多限制 AgensGraph 不是分布式结构,每次查询都需要单机处理,单台机器的处理能力总是有上限的,导致查询耗时增加 随着查询量的增加,机器磁盘,网络 IO 出现瓶颈。按理说可以通过增加备库来解决,但备库要求高导致成本增高,并且数据冗余严重 由于上面的原因导致 AgensGraph 没办法继续支撑业务高速发展带来的性能要求。AgensGraph 底层基于 PostgreSQL 数据库使它在小数据量的情况下非常的稳定并且查询响应非常的迅速,在此感谢 AgensGraph 陪我们度过业务快速成长阶段。 为了寻找新的图数据库我们把目光投向了接受度和知名度都比较高的 JanusGraph。当然还有收费的图数据库 TigerGraph,暂时不做考虑 在此贴一张我们图的应用场景