InfluxDB 系统设计 Pros v/s Cons

查看原文

本文是 InfluxDB 自家写的 Pros v/s Cons,看看这款工具的权衡利弊。

  • 同一时间点上的指标数据会被合并。好处是简化了冲突增加了性能,坏处是无法存储冗余数据,可能有数据丢失。
  • 删除数据不友好。好处是读写性能都增强,坏处是不太好删数据。
  • 修改数据不友好。好坏与上面类似。
  • 数据按时间序线性入库。好处是性能高,坏处是数据点时间随机入库的话性能就差了。
  • 数据库第一优先是处理大量数据读写。好处是系统 Brandwidth 好,坏处是性能会降一些。
  • 写数据和查数据优于数据一致性。好处是多客户端高负载的情况下依然工作地很好,坏处是性能差的时候查询最近的点可能不会被包含进来。
  • 时间序列生命周期很短。好处是可以处理不连续的数据,坏处是不支持schema,join这些关系操作。
  • 一个数据点不太重要。好处是可以引入聚合等功能,坏处是数据点没有 ID 这种东西,纯粹靠时间戳来认。

衍生思考:我们可以看到每个假定部分都是监控领域的场景:监控服务,产生出大量基于时间序列的数据,灌进数据库,产生出很高的 IO;我们一般只关心最近发生的事件,发生过的事情就丢了不要了。经常做采样聚合切换精度来查看系统行为。