【发布时间】:2018-07-09 23:56:52
【问题描述】:
这是场景:
- 我们有一个包含 > 2,000,000 个数据点的大型数据模型。
- 每个数据包括:测量值(int 或 float)、时间戳、质量枚举(好、坏、未知)和唯一 ID。
- 测量值更新通过 Kafka 进行,每秒更新大约 20% 的测量值。
- 每隔几秒,就会针对当前测量模型运行一个算法。此时内存中的快照被锁定
- 算法完成后,测量模型会随着等待 kafka 总线的更改进行更新。
用于测量模型的内存快照的最佳数据结构(对于性能)是什么?
谢谢
【问题讨论】:
-
您如何访问这些元素?凭身份证?
-
按ID,是的。
-
您可能会使用在
std::map和std::unordered_map中实现的二叉搜索树或哈希表。 -
数据集的长度是固定的还是可以增长/缩小? - 你需要或有一个int vs float的标志吗? - ID 是什么类型,ID 是否连续(或者您仍然可以更改类型)? - 数据被锁定了多长时间(在这段时间内,同一 ID 是否可以有多个挂起的更新)? - 数据以什么形式到达(json、二进制)?
-
时间戳的分辨率是多少?
标签: c++ performance data-structures apache-kafka bigdata