InfluxDB的设计见解和权衡
1、对于时间序列用例,我们假设如果相同的数据被多次发送,那么认为客户端几次都是同一笔数据。
- 优势:通过简化的冲突解决增加了写入性能
- 劣势:不能存储重复数据;可能会在极少数情况下覆盖数据
2、删除是罕见的事情。当它们发生时,肯定是针对大量的旧数据,这些数据对于写入来说是冷数据。
- 优势:限制删除操作,从而增加查询和写入性能
- 劣势:删除功能受到很大限制
- 劣势:更新功能受到很大限制
4、绝大多数写入都是接近当前时间戳的数据,并且数据是按时间递增的顺序添加。
- 优势:按时间递增的顺序添加数据明显更高效些
- 劣势:随机时间或时间不按升序写入点的性能要低得多
5、 规模至关重要。数据库必须能够处理大量的读取和写入。
- 优势:数据库可以处理大量的读取和写入
- 优势:多个客户端可以在高负载的情况下完成查询和写入数据库操作
- 劣势:如果数据库负载较重,查询返回结果可能不包括最近的点
7、许多时间序列都是短暂的。经常是时间序列,只出现了几个小时,然后消失,例如一个新的主机,开机并监控数据被写入一段时间,然后被关闭。
- 优势:InfluxDB善于管理不连续数据
- 劣势:无模式设计意味着不支持某些数据库功能,例如没有交叉表连接
8、没有数据点太重要了。
- 劣势:数据点没有传统意义上的ID,它们被时间戳和series区分开来