TSDB 与 Blockchain
各位小伙伴们我们又见面了,伴随着区块链技术的推广,很多企业也在思考是否将其应用。其实 TSDB 与区块链有很多共通之处,本期 Jesse 就来和大家聊聊 TSDB 与区块链。本文参考了Nicolas Hourcard的文章“You Don’t Need a Blockchain, You Need a Time-Series Database”。
本文仅代表个人观点,如有偏颇之处,还请海涵~
🤠🤠🤠
TSDB 与 Blockchain
在企业应用中区块链技术的使用在近些年来迅猛增长。理论上来说,区块链技术可以提供跨行业的支持,从房地产到金融服务,从大健康产业到供应链管理。然而,真实情况却不是如此,相关调查显示,全球只有 14%的区块链项目通过了 POC,投入到了生产环节。这也让我们不禁思考,企业应用程序真的需要区块链加持吗?
About Blockchain
我们首先先简要回顾一下区块链是什么。首先,区块链是一个随着时间的推移存储信息的数据库,其也引入了一种完全去中心化的共识机制。我们以比特币为例,其可以在参与者之间验证金融交易,而无需求助于独立第三方(绕过了中介)。在这个网络中,任何人都将是其一部分,他们都可以决定这笔交易是否有效。一旦交易被验证有效,这笔交易也将添加到新的交易区块中。然后每个新区块添加到区块链中。通过这种方式,我们达到了同一数字货币不被多次消费的目的。同时,因为任何人都可以参与并验证交易,因此该网络被认为是无权限网络。公共的、无需许可的区块链在去中心化方面为我们提供了新的视角。
我们应该承认,对于数字货币来讲,一个对所有人开放的点对点框架确实具有创新性。但对企业而言却并非完全如此,因为很多企业并不想公开自己的敏感记录,并且他们只希望允许少数受信任的用户拥有审批权。也就是说大多数企业应用程序首先不需要去中心化,而是最好由一个具有单点的中心化数据库来提供服务,因此这种去中心化的区块链组织形式需要企业去谨慎的权衡和取舍。区块链的主要缺点是:首先,其缺乏可扩展性。以太坊——企业区块链的基础,其平均每秒只能处理 15 笔交易。这与企业需求相去甚远——单个数据库每秒可能读取数百万个数据点。其次,因为区块链需要依赖资源密集型的共识机制,因此会导致更多处理开销和更高能耗。
TSDB 与区块链
事实上,TSDB 与企业区块链有很多共同的属性。首先,二者都是以时间为主轴。在区块链中,区块被以有规律的时间间隔加入到链中,这也就意味着对于每一个区块的数据,其都会关联一个时间戳。而在 TSDB 中,因为其针对时间进行了优化,所以我们可以有效地查询与检索与时间戳相关的数据。比如,我们可以想象,股票价格每时每秒都在改变。其次,二者都具有不变性。在区块链的世界中,一旦将区块加入链中,我们就无法再更改。这在数据库的领域里,类似于可以“插入”,但没有“删除”或“更新”的功能。在 TSDB 中,替代更新的操作,我们只需要添加最近的数据(近期数据更常被读取)。最后,二者都可以支持长地址格式(256 个比特)。在区块链中,这是加密货币公共地址的格式。在 TSDB 中,我们也可以构建比字符串更好的数据类型,以支持更有效地写入和读取区块链地址。
因此我们可以使用 TSDB 按时间来重现单个已完成交易事项的完整历史记录。这其实也就是区块链节点的工作方式,他们的相似之处在于:第一,数据复制。区块链中的每个节点都保存着整个交易历史。如果一个节点遭到破坏,我们依靠其他节点来提供完整的历史记录。同样,这个概念在传统数据库中已经存在了几十年,如果一个数据库出现故障,我们可能需要另一个数据库作为备份。第二,共识。区块链有多方(即节点)就特定交易达成一致。传统数据库中有 Raft 和 Paxos 等共识算法,类似于投票机制。第三,分片。不是让所有节点计算所有操作来验证交易和执行智能合约,而是分配节点只处理某些计算。数据库分片将大型数据库分成更小的块,以促进跨多个服务器的水平扩展。
综合来看,对于大多数企业来讲,如果去中心化不是必须,那么由具有单点的中心化数据库提供服务是更好的存储解决方案。如果时间是这些企业的主轴,那么 TSDB 就将是他们的最佳选择。
CnosDB 简介
CnosDB 是一款高性能、高易用性的开源分布式时序数据库,现已正式发布及全部开源。
欢迎关注我们的代码仓库,一键三连🙇🙇🙇:https://github.com/cnosdb/cnosdb
版权声明: 本文为 InfoQ 作者【CnosDB】的原创文章。
原文链接:【http://xie.infoq.cn/article/22e2fc77e700df1cc43213351】。文章转载请联系作者。
评论