摘要
Trinity是微软亚洲研究院在SIGMOD13上发表的一篇论文,它不是图数据库而是被称之为图数据引擎“Graph Engine”,作者是邵斌等人。Trinity声称既可以提供实时的图查询,也可以实现图分析(文中称之为graph offline analytics)。
技术细节
文中主要论述了Trinity有以下特点:
1、数据映射
Trinity使用hash的方式把内存块映射到机器上,然后再把数据使用相同的hash函数映射到内存块上。它使用一个映射表记录内存块和机器的对应关系。
comment:
本人认为这种用hash映射的方式没有多少特色,实际系统中(比如hbase)也是使用root表来定位数据。
2、内存管理
Trinity设计了内存的数据结构,目的是高效的使用内存,避免大量内存碎片的产生。
comment:
内存管理是以内存为基础的系统必要的部分,但对于我们设计通用的图数据库暂时没啥作用。
3、数据通信
因为Trinity是分布式环境,进行图遍历或者图分析的时候要涉及到多台机器,因此机器间的通信开销必须优化才能使整体性能达到最佳。Trinity在Optimization of message passing 章节阐述了优化的方案,即一个节点要接收到所有的消息再开始计算,但是这种方式好像是针对图计算的,对于图遍历没有帮助。
总结
总的来看Trinity对于我目前研发图数据库,特别是加速图遍历的过程没有多少帮助。也许是我理解的有限,如果您有其他想法请联系我!