基础知识

⚠️ 带有增量的表才能更新,全量表不能更新。

背景

  • 在iGraph中,对数据的增删改都属于增量更新。更新消息又称为增量消息或增量数据。

  • 通过消息队列服务SWIFT实现的生产者/消费者模型,iGraph为增量消息的消费者,用户为消息生产者。

  • iGraph为异步更新模式,保证最终一致性。

  • 支持通过iGraph客户端、Blink、Porsche以及其他用户自己实现的方式进行数据更新。更新链路如下:

    • 使用iGraph客户端更新:iGraphClient --> swift gateway --> swift --> iGraph Searcher

    • 使用swift客户端更新:swiftClient --> swift --> iGraph Searcher

增量消息的时效

  • 纯增量的数据(swift数据源)有数据生命周期(TTL)限制。

  • iGraph对增量消息不做持久化保证。

流量限制

  • 客户端更新接口单机最大测试QPS为1400。

  • swift支持承担10W级别的写入QPS。

  • iGraph Searcher从SWIFT更新消息单机最大QPS限制为5W,单实例可达20W-160W(该值为实例所有表share)。

更新时延

  • 客户端更新接口的时延:同机房平均为2-5ms。

  • 增量数据生效的时延:大部分情况下 1s 内,偶尔会波动到 3s。

  • 客户端更新接口是异步的,将消息发送到swift消息队列之后就返回,故更新成功到数据查询生效存在Gap。