InfluxDB的设计见解和权衡

    1、对于时间序列用例,我们假设如果相同的数据被多次发送,那么认为客户端几次都是同一笔数据。

    • 优势:通过简化的冲突解决增加了写入性能
    • 劣势:不能存储重复数据;可能会在极少数情况下覆盖数据

    2、删除是罕见的事情。当它们发生时,肯定是针对大量的旧数据,这些数据对于写入来说是冷数据。

    • 优势:限制删除操作,从而增加查询和写入性能
    • 劣势:删除功能受到很大限制
    • 劣势:更新功能受到很大限制

    4、绝大多数写入都是接近当前时间戳的数据,并且数据是按时间递增的顺序添加。

    • 优势:按时间递增的顺序添加数据明显更高效些
    • 劣势:随机时间或时间不按升序写入点的性能要低得多

    5、 规模至关重要。数据库必须能够处理大量的读取和写入。

    • 优势:数据库可以处理大量的读取和写入
    • 优势:多个客户端可以在高负载的情况下完成查询和写入数据库操作
    • 劣势:如果数据库负载较重,查询返回结果可能不包括最近的点

    7、许多时间序列都是短暂的。经常是时间序列,只出现了几个小时,然后消失,例如一个新的主机,开机并监控数据被写入一段时间,然后被关闭。

    • 优势:InfluxDB善于管理不连续数据
    • 劣势:无模式设计意味着不支持某些数据库功能,例如没有交叉表连接

    8、没有数据点太重要了。

    • 劣势:数据点没有传统意义上的ID,它们被时间戳和series区分开来