《9-9+ReJoyGraph分布式流式图计算实践》是一份由京东数科图计算部的钱勇在2020年10月31日发布的技术实践文档,该研究专注于设计和实现一个高效的分布式流式图计算框架,以满足特定的业务需求。其核心目标是提供一站式解决方案,通过业务流或文件输入,实现图分析并输出结果,同时强调端到端的低延迟作为首要优化指标。为了实现这一目标,ReJoyGraph避免了引入Flink或Spark等第三方工具,确保ETL-Free的工作流程,允许用户根据需要调整数据构图和图算法,并保持API和TP(Task Parallelism)的灵活性。
背景与架构部分介绍了图计算的特点,它是数据驱动的,计算复杂度体现在图的结构中,因此图结构的不规则性和分区优化成为挑战。此外,由于图计算通常涉及大量随机访问内存,这导致了较高的缓存命中率较低的问题。编程范式与存储模型的紧密耦合也增加了复杂性。
分布式特性方面,ReJoyGraph关注CAP理论(Consistency, Availability, Partition Tolerance),以确保系统的容错性和负载均衡。设计上,它采用了水平扩展的Level0架构,确保独立扩容和清晰的职责划分,使得系统具有良好的可扩展性。
IngestEngine负责数据的接收和处理,通过Parser进行业务边的Schema验证和批解析,将业务值转换为整型顶点ID,形成抽象边流,以保持数据的局部性,减少传输开销。Strong-Schema模式进一步明确边界,通过显式定义数据编码和对齐来提高运行时效率,尽管TP的实现被标记为未来工作。
为了适应分布式环境,ReJoyGraph采用了DistributedIDEncoder,对顶点进行编码,以便计算引擎在没有业务语义的情况下仍能高效地处理和索引,同时考虑了内存和持久化开销以及并发控制。整个框架强调易用性,提供了丰富的Driver和算法选择,用户可以开箱即用,也可自定义算法。
总体而言,这份文档详细探讨了如何通过ReJoyGraph解决在风控反欺诈场景中的低延迟问题,以及如何通过高效的流式图计算技术来处理基于点击、浏览和交易的实时数据分析任务。