Twitter公司已经步步发展并且走向成熟,因此在即时可用性之外、他们也开始意识到数据一致性保障的重要意义。
至少该公司通过打造的全新“曼哈顿”数据管理软件将这一诉求摆上了核心地位,并在本周三的一篇博文中正式披露了这套基础存储系统的诞生。
虽然博文并没有提到,但根据我们掌握的消息、Twitter正在开发一套所谓次级索引方案。这是一项被囊括在曼哈顿软件中、具备巨大潜力的功能,能够帮助公司员工在搜索社交网络的庞大存储数据时提供出色的灵活性,足以成为这家上市公司进一步推进商业运作的重要利器。
我们首先来分析Twitter本周在博文中所公开的相关信息。
“在过去几年当中,我们发现自身对于一套能够每秒处理百万级别查询并能在实时环境下实现极致低延迟的存储系统的需求正变得愈发迫切。系统的可用性及速度当然同样非常重要,不过这套存储系统不仅要具备出色的性能表现、同时也需要拥有跨越全世界多个地区的卓越可扩展能力,”Twitter在其网站上写道。
曼哈顿是一款由该社交网络自家工程师所打造的软件方案,旨在应对每秒接近六千条推文所带来的巨大系统压力。尽管六千条推文本身所涉及的数据量并不是很大,但这部分信息存在多种复杂特性,因为曼哈顿软件还需要处理与之相关的回复以及针对每条推文的转发——如果某位名人发布了新动态,数百万关注者的回复将立即汹涌而来,这就让原本看似简单的问题变得复杂起来。
在这项技术的帮助下——也许曼哈顿软件最终会走上开源道路——Twitter得以利用Cassandra的最终一致性功能外加其它工具通过单一大型系统实现坚实的一致性保障,而这也正是推动社交网络下决心更替存储系统的主要理由。根据我们掌握的情况,曼哈顿的开发工作已经持续了一年以上。
开发人员可以在从曼哈顿中读取或者向其写入的过程中选择数据一致性级别,从而通过创建新服务的方式在可用性(即如何快速实现访问)与一致性(即如何确保查询结果的准确性)之间找到平衡点。
有鉴于此,Twitter的程序员们能够访问“高一致性服务”,它会将一致性算法与副本日志结合起来、从而确保事件按照实际顺序对副本产生影响。
到目前为止,Twitter已经推出了LOCAL_CAS(单一数据中心内部的高一致性)与GLOBAL_CAS(跨越多个设施间的高一致性)。它们将“在应用程序以及数据建模方面采取不同的平衡点选取方式,”Twitter在一篇讨论曼哈顿项目的博文中指出。
让我们更进一步
该系统当中的数据会被保存在三套不同的系统当中:seadb是一种只读型文件格式,sstable是一种面向高强度写入工作负载的日志结构型合并树,而btree则是一种重读取而轻写入的系统。曼哈顿项目的“Core”系统随后会决定要把信息保存在磁盘、内在或者是固态硬盘(简称SSD)当中。
曼哈顿项目可以将输入数据匹配为最合适的格式。举例来说,Hadoop工作负载的输出内容会以Hadoop文件系统的形式导入到曼哈顿当中,而后者则将其转换成seadb文件格式“从而利用速度更快的SSD或者内存机制将其进一步导入至集群当中,”Twitter方面解释道。
该数据库支持多租户机制并包含自有速率限制服务,从而避免Twitter开发者们的海量请求将系统彻底淹没。这些系统被打包成前端,这样工程技术人员就可以访问这套“自助式”存储系统了,Twitter解释道。
“工程技术人员能够针对其应用程序的具体需求进行配置(例如存储规模乃至每秒查询数量等等)并在几秒钟之内开始使用其存储功能,而且完全不必等待硬件安装或者模式设置过程,”Twitter在文中对该系统作出这样的描述。
Twitter已经计划在未来发布一份用于概述该技术的白皮书,甚至很有可能将该数据库项目推向开源。当然,开源工作在短时间内还无法完成,因为一位前任Twitter工程师曾在一篇博文的在线留言板中表示:“这套数据库中包含大量运作部件以及内部集成机制,因此将其转为开源还有很多工作要做。”
下一布计划?打造次级索引
根据我们了解到的情况,在未来的开发工作中,该公司将把工作重心放在次级索引机制的缔造上。
次级索引机制允许开发人员向数据库索引中添加一套额外键,从而显著提升开发者在浏览并查询大规模数据集时的速度表现。
举例来说,Amazon Web Services的主力方案DynamoDB就以local与global(多数据中心)两种格式实现了这一技术。
通过向曼哈顿数据库内添加次级索引,Twitter为其开发者赋予了面向超大规模数据集编写复杂查询的能力,这套索引机制将被保存在内存当中。
这意味着,假如Twitter的商业团队希望建立起一套速度出众的广告系统,则可以从多种不同因素出发、以更低的成本与远超以往的灵活性向用户呈现出近实时广告内容。
要想提供更等级、针对性进一步细化的广告内容呈现效果,次级索引这类系统可谓至关重要;而这类技术也将成为Twitter实现商业化运营的重要武器。
不过技术挑战也仍然存在:次级索引初期只能实现单一数据中心内部的一致性保障,这是因为全局次级索引对计算量要求过高、暂时还无法实现。
好文章,需要你的鼓励
到 2025 年,人工智能将在生命科学行业带来重大变革。从智能搜索到无缝医疗服务,AI 将优化医疗专业人员和患者的体验。文章预测了 AI 在监管、安全、搜索、个性化服务等方面的具体应用,以及行业技术格局的变化。这些创新将为患者和医疗专业人员带来更高效、更有针对性的服务。
TenneT 携手诺基亚在北海部署光纤网络,连接海上风电场,助力可再生能源增产。该项目将采用先进光网络技术,支持远程监控和管理,确保可靠的能源传输。这一创新模式有望推动欧洲能源转型,为实现 2050 年气候中和目标做出重要贡献。
新加坡物流公司ST Logistics与联想合作,通过新的仓库执行系统和AI算法自动化关键流程。该系统优化货物移动,自动规划最快捷安全的运输路线,加快订单处理。联想的高性能计算系统和AI算法还将优化货物存储,提高即时发货物品的可访问性。这一合作旨在提升供应链效率,增强新加坡在区域竞争力。
研究机构 Coldago 针对不同文件存储应用场景,发布了三份独立的供应商评估报告。报告采用四象限图形式,将供应商分为企业级文件存储、高性能文件存储和云文件存储三类。这种分类方法与 GigaOm 的圆形四象限雷达图有所不同,体现了两家分析机构对文件存储市场的不同见解。