去年,我们发布了 IoTDB 多项性能表现位居国际数据库性能测试排行榜 benchANT(Time Series: DevOps)第一名的好消息。
刚刚落幕的数据库顶级会议 VLDB 上,我们又收获了一则重磅喜讯:IoTDB 原厂团队基于 Apache IoTDB 开发的企业级产品 TimechoDB 成功打破世界纪录,登顶权威性能基准榜单 TPCx-IoT。
对我们而言,登顶 TPCx-IoT 是一件非常重要的事。那么,为什么这次成绩如此重要,登顶 TPCx-IoT 又意味着什么?
在后续梳理 TimechoDB 在 TPCx-IoT 的基准测试流程前,我们想先为大家解答两个基础且重要的问题……
01 What:什么是 TPCx-IoT?
在介绍 TPCx-IoT 之前,我们首先了解一下 TPC 是什么。TPC 是国际事务处理性能委员会的简称,英文全称为“Transaction Processing Performance Council”。
TPC 成立于 1988 年 8 月,是一个由全球数十家计算机软硬件厂家创建的非营利性组织,专注于为管理数据为中心的数据库等系统制定测试标准规范,用于测量和比较不同系统的性能与价格,并管理测试结果的发布。
早在上个世纪 80 年代,当计算机应用于商业社会时,诸多的数据库厂商开始竞速宣传,每个厂商都站在自己的优势立场,宣传自己的系统是最好的,而当时又没有一个统一的标准能说明如何评判系统的性能。
后来,虽然 1985 年学术界提出了 Debit Credit 测试标准,同期 IBM 也提出了 TP1(Transaction Process)测试标准,但统一的标准并没有完全解决问题,因为没有一个公共认可的权威机构来监督测试的执行过程与结果。
这也就导致有些厂商根据自己的优势,随意修改标准中的关键要求来改善他们的测试结果,这样的结果显然是不客观、不具备参考性的。
直到 1988 年 8 月,工程师 Omri Serlin 成功说服了 8 家数据库厂商成立了 TPC,来制定一个统一且行业认可的标准,并对标准的执行进行监督,“王婆卖瓜自卖自夸”的局面才逐渐结束。
现在,TPC 已经成为国际上最权威的数据库性能测评基准组织之一。国际上绝大多数知名数据库厂商及企业版产品,都参与了其设立的基准测评,如甲骨文 Oracle、微软 SQLServer、IBM DB2、Databricks 等等。
而 TPCx-IoT 是由 TPC 制定的第一个专门用来衡量物联网场景系统性能的行业标准基准。该标准模拟了工业电力场景下数千个发电站的传感器数据负载,在评估软件写入性能的同时,也将运行软件与相应硬件/云平台成本考虑在内,以客观预估实现软件性能所需的成本。
TPCx-IoT 定义的三个主要评估指标为:
性能指标(IoTps):系统的有效数据吞吐量。计算方法为获取的数据量(Scale Factor)/获取所用时间(秒)。
性价比指标($/kIoTps):系统达到该吞吐性能指标需要的软件与硬件成本情况,以 3 年为系统生命周期,也是衡量成本的时间单位。计算方法为 1000*系统总成本/IoTps。
系统商业化可用日期:系统能够复现榜单中的性能、性价比指标数字,并可以进行商业化部署的起始日期,以此给工业领域用户使用参考。
从左至右分别为性能指标、性价比指标、系统商业化可用日期
02 Why:为什么我们选择 TPCx-IoT?
代表性的物联网基准测试包括 TPCx-IoT、IoT-Benchmark、TSBS 和 SmartBench 等。而我们之所以选择 TPCx-IoT,是因为它的权威性与公正性。这主要体现在以下三个方面:
公开、统一标准下进行测试:每个系统厂商负责测试自己的产品,杜绝了单个厂商测试多个系统的情况,从而避免可能通过技术手段使得自己产品性能远高于其他产品,产生不公平结果的可能性。
由第三方机构进行验证:TPC 委员会会对测试工具的扩展实现进行审核,保证实现的公平;也会对测试流程、软件、硬件进行审核,保证测试过程和参数配置的公平,测试结果的客观性能够进一步得到保障。
商业层面参考度高:TPCx-IoT 模拟的数据负载与现实世界的物联网应用非常相似,设置指标与工业用户的需求和利益紧密相关。这意味着基于该基准的测评结果不是空中楼阁,而是参考度高的、可商业化验证的。
除了榜单本身的权威性与公正性,IoTDB 研发团队也进行了非常严谨的测试过程。在 TPCx-IoT 官方网站发布的榜单上,我们注意到有些系统在测试期间启用了预写日志(WAL),而其他系统则没有。
物联网场景需求各异,启用数据库的 WAL 可以提供数据的持久性,但会影响数据的写入性能;而当前置模块能保证数据持久性、又追求更高性能的场景下,可以关闭数据库的 WAL。
为了更全面、更有说服力地验证 TimechoDB 的性能,IoTDB 团队在 TPCx-IoT 数据负载下进行了两类测试:一类启用 WAL,一类关闭 WAL,并在每个测试场景运行了 5 次,以确保测试结果始终可复现。
TPCx-IoT 榜单中涵盖了 TimechoDB 两种配置的测试结果。结果可见,TimechoDB 关闭 WAL 情况下排名榜单第一,TimechoDB 开启 WAL 情况下排名榜单第二,两个版本在性能和性价比两个维度上都超过了所有其他系统。
排名第一为关闭 WAL 结果,第二为启用 WAL 结果
03 更多细节:特邀论文发布!
值得一提的是,在 TPC 组织的年度会议 TPCTC 上,IoTDB 团队就技术创新、应用场景,以及在 TPCx-IoT 榜单的测试流程、结果对比、未来展望等内容做了特邀报告。
成果也以论文《Performance Evaluation of TimechoDB using TPCx-IoT Benchmark》形式,发表于计算机科学领域著名期刊:Lecture Notes in Computer Science(LNCS)。
后续我们也将会把此篇论文中披露的测试细节整理发布,以便大家更好地了解 IoTDB 的优异性能表现,敬请期待!
更多内容推荐:
• 了解如何使用 IoTDB 企业版
• 了解更多 IoTDB 应用案例