[论文解读] A Billion Updates per Second Using 30,000 Hierarchical In-Memory D4M Databases
本文提出了一种分层的内存内D4M关联数组系统,利用MIT超级云上的1,100台服务器和30,000个实例,实现了每秒19亿次更新。通过将关联数组组织为感知内存层次结构的形态,该系统通过在高速内存层实现快速更新并高效聚合,实现了对大规模流式网络数据的实时分析。
Analyzing large scale networks requires high performance streaming updates of graph representations of these data. Associative arrays are mathematical objects combining properties of spreadsheets, databases, matrices, and graphs, and are well-suited for representing and analyzing streaming network data. The Dynamic Distributed Dimensional Data Model (D4M) library implements associative arrays in a variety of languages (Python, Julia, and Matlab/Octave) and provides a lightweight in-memory database. Associative arrays are designed for block updates. Streaming updates to a large associative array requires a hierarchical implementation to optimize the performance of the memory hierarchy. Running 34,000 instances of a hierarchical D4M associative arrays on 1,100 server nodes on the MIT SuperCloud achieved a sustained update rate of 1,900,000,000 updates per second. This capability allows the MIT SuperCloud to analyze extremely large streaming network data sets.
研究动机与目标
- 实现对大规模流式网络数据的高性能、实时分析。
- 解决用于表示动态网络的大规模关联数组在更新时的性能瓶颈问题。
- 通过分层数据结构优化内存层次结构的利用,最小化对慢速内存的写入操作。
- 展示一个可扩展的交互式分析平台,能够以每秒处理TB级网络流量的速度运行。
- 提供一个统一的数学框架,将数据库、矩阵和图操作整合用于大规模网络分析。
提出的方法
- 系统使用分层关联数组,其中每一层管理非零条目的子集,更新操作在快速内存层执行。
- 当某一层超过预设阈值 $ c_i $ 时,其内容将被聚合到上一层,当前层被清空。
- D4M库在Python、Julia和MATLAB/Octave中实现关联数组,支持与高级科学计算环境的集成。
- 系统利用MIT超级云的1,100台节点集群,将34,000个分层D4M数组实例分布到数千个核心上。
- 所有查询通过将所有层汇总为单个逻辑数组来解决,确保一致性和正确性。
- 该方法利用关联数组的数学性质——封闭性、交换律、结合律和分配律——以保证正确性和可扩展性。
实验结果
研究问题
- RQ1分层内存关联数组系统能否实现对大规模流式网络数据的亚毫秒级更新速率?
- RQ2将关联数组组织在内存层次结构的不同层级上,与平面内存或基于磁盘的系统相比,性能提升如何?
- RQ3在大规模超算集群上,使用分布式的分层D4M实现,所能达到的最大可持续更新速率是多少?
- RQ4关联数组代数在多大程度上能统一大规模网络分析中的数据库、矩阵和图操作?
- RQ5在高吞吐量、并发流式更新环境下,系统如何保持正确性和一致性?
主要发现
- 该系统在MIT超级云的1,100台服务器节点上实现了每秒19亿次更新的持续更新速率。
- 分层设计通过将大批量更新卸载到更高层,显著减少了对慢速内存的写入次数,从而大幅提升性能。
- 性能曲线显示,随着服务器数量的增加,该实现能有效扩展,更新速率随之提升。
- 使用关联数组使得SQL、NoSQL和NewSQL风格的操作无缝集成于单一数学框架之下。
- 系统可在几分钟内使用数千个核心对大规模网络数据集进行交互式分析,展示了实际可扩展性。
- 该方法在更新吞吐量方面优于先前系统,如Accumulo、SciDB、Oracle TPC-C和CrateDB。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。