开始 带着自己的速度我们的介绍性内容。

分布式数据库系统是什么?

我几乎想畏缩当我收到一个电话或电子邮件从一个潜在的客户谁说这种效果:“我需要一个分布式数据库(这里填写系统名称),我发展,它看起来像eXtremeDB或许是不错的选择。你能与我分享许可条款吗?“我知道这是需要一些交流,弄清对方真正需要什么,,我担心这个过程会阻挠他们。令人沮丧的利害关系方不在“销售101”手册。

问题是,“分布式数据库”是严重超载。看看我们可以排序。

维基百科作者采取了集体尝试定义一个分布式数据库:“分布式数据库是一个数据库中存储设备不都连接到一个共同的处理器。可能是存储在多台计算机位于同一物理位置,或通过网络相互连接的电脑可能是分散的。与并行系统,处理器是紧耦合的,构成一个单一的数据库系统,分布式数据库系统由松散耦合的网站分享没有物理组件。”这个定义本身,部分来自电信科学研究所与美国商务部有关。

这个定义实际上是相当狭窄的。至少有三个用例我问及通用标题下的“分布式数据库:“高可用性集群数据库,和区块链。维基百科的定义,高可用性和集群都有适用于物联网。

高可用性:数据库系统来实现高可用性(),它需要维护,实时的相同副本在一个单独的硬件物理数据库实例。我所说的维护,保持一致的主副本。在这种情况下,(至少)有两个数据库的副本,我们称之为主人和奴隶(s)(有时称为副本)。应用于主数据库(即行动。,insert, update, delete operations) must be replicated on the slave, and the slave must be ready to change its role to master at any time. This is called failover. The master and replica are normally attached to different physical systems, though in telecommunications a common HA setup is multiple boards within a chassis: a master controller board, a standby controller board and some number of line cards that each serves some protocol (边界网关协议,OSPF等)。在这里,主数据库是由主控制器董事会流程。数据库系统复制更改一个奴隶数据库备用控制器板上,具有相同的进程等待接管处理时,主控制器板失败。在物联网,HA是可取的任务关键型工业系统,保持可用性的网关和云,确保实时分析可以继续执行即使面对硬件故障。

集群数据库:一个集群数据库是一个有多个物理副本的整个数据库保持同步。HA的区别在于,任何物理数据库的实例可以被修改,将复制修改集群中的其他数据库实例。这就是数据库集群实现之间的相似之处。

一般来说,有两种实现模型:酸和最终一致性。在酸实现中,修改同步地复制在一个两阶段提交协议,以确保一旦承诺,修改会立即反映在每一个物理的数据库实例。换句话说,所有的数据库实例都是一致的,所有的时间。最终一致性,变化是异步复制,可能很久之后原始节点提交到数据库的变化。这意味着某种和解进程来解决冲突性的变更是由两个或两个以上的节点。最终一致性,应用程序必须写入处理的可能性有过时数据的物理实例数据库中,它们连接。例如,考虑一个全球在线书店。可能会有一份股票的一本书。买家在纽约和悉尼都将发现这本书是可用的,并且可以把这本书放在购物车和结账。系统将不得不解决谁真正得到的书和秩序是缺货的。 Users have come to accept this. But this model would never work for a cellular telephone network needing to verify that a subscriber has a certain service or has sufficient funds. This type of system requires a consistent database view. Because of the nature of the synchronous replication required for the ACID implementation, horizontal scalability is limited, but the implementation is straightforward (no conflict resolution needed). Scalability of eventual consistency implementations is quite high, but so is the complexity.

集群实现物联网中比比皆是。例如,10博官网物联网网关可以集群提高可伸缩性和可靠性。(见图1)。每个网关集群中的节点的数量不大,所以直接和最终一致性模型是合适的。集群可以处理更多的流量从边缘设备比单一网关能够,和可靠性/可用性改进(立即一致性模型的固有限制可伸缩性不进来打在小集群)。

区块链。分布式数据库一词常与区块链技术,比特币是最著名的。这是与分布式分类帐同义,更合适(在本作者的观点)。我的问题的上下文中使用术语分布式数据库区块链技术是分布式数据库意味着分布式数据库管理系统。但很少有区块链所涉及的数据库管理系统。不要反复讨论,但重要的是要画一个数据库和数据库管理系统之间的区别。区块链,事实上,一个分布式数据库。但是,正如前面提到的,很少有创建或维护区块链所涉及的数据库管理系统分布式分类帐。

隐含的分布式数据库拓扑维基百科的定义——“…存储在多台计算机位于同一物理位置…”——就是俗称切分数据库。关键的区别分片与HA集群分布式数据库是每个物理数据库实例(碎片)房屋的所有数据的一小部分。所有的碎片在一起代表单个逻辑数据库,这是体现在许多物理碎片。我公司与维基百科的定义,我不区分“分布式”和“并行”的数据库系统。逻辑上,目的是一样的:可伸缩性。碎片是否分布在服务器CPU或CPU核心是无形的。此外,在所有情况下,并行处理。如何身体碎片分布是一个不重要的工件。例如,在STAC-M3公布基准我们进行了自2012年以来,我们利用单一服务器24芯,创造72个碎片,我们利用四到六个服务器,每个都有16 - 22核心,创造64到128个碎片。在所有情况下,我们的目标是获取数据的I / O通道饱和的CPU核进行处理。虽然STAC-M3是资本市场(蜱虫数据库)基准,原则同样适用于物联网的大数据分析。 IoT data is overwhelmingly time-series data (for example, sensor measurements), just like a tick database is time-series data.

数据库分片意味着支持分布式查询处理。每个碎片都是由自己的数据库服务器的实例。因为每个碎片/服务器代表整个逻辑数据库的一部分,可能存在一个查询结果返回的任何碎片只是一个部分的结果集,需要与每个其他的部分结果集碎片合并/服务器,然后再提交到客户端应用程序作为一个完整的结果集。如果数据分布的碎片以最优的方式,然后所有的数据对于一个给定的查询可以被发现在一个碎片和查询可以分布到特定服务器实例管理碎片。通常,这两种方法都必须支持。例如,考虑一个大型智能建筑物联网部署跨越多个校园,每一个与多个建筑物。我们可以选择分发(碎片)跨多个物理数据库每个校园的信息。如果我们要计算一些规为一个特定的建筑,例如,电力消耗在15分钟的窗口,我们只需要查询房屋的碎片,其中包含的数据。但是如果我们想要计算多个相同的度量在校园建筑,然后我们需要分发查询许多碎片/服务器,这是并行的由来。每个服务器实例工程部分的问题与其他服务器实例。

数据库分片还支持(即垂直伸缩性。,being able to store 10s or 100s of terabytes, petabytes and beyond). To create a single 100 terabyte logical database, I can create 50 instances of 2 terabyte physical databases. Distributed databases systems often support elastic scalability, allowing me to add shards, which could also mean adding servers to the distributed system so that the system is scalable in both the vertical and horizontal dimensions. Vertical and horizontal scalability is essential for large IoT systems that generate very high volumes of data. You need vertical scalability to handle the ever-growing volume of data, and you need horizontal scalability to maintain the ability for timely processing and analytics of the data as it grows from 1T B to 10 TB to 100 TB to petabytes and beyond.

图1说明了这些概念。从边缘设备的网关收集数据。集群数据库的实现不同,当然,但一般来说只要网关的群体存在于任何一个集群,集群仍然操作和边缘设备可以继续发送数据。如果边缘节点数量的增加,我们可以选择添加一个新的集群或向现有集群添加网关(伸缩性),我们提高可靠性,因为任何一个网关的失败不停止集群的操作。

图1还说明了分片(多个物理数据库中代表一个逻辑数据库),并行查询处理和高可用性。每个网关集群船上游收集的数据碎片。每个碎片由一个主数据库和复制数据库,可以提升主人在发生问题与原来的主人。系统横向和纵向扩展由于能够添加碎片。因为每个碎片都有一个热备份,系统可以承受失败的碎片的主人,继续为企业提供实时分析。

总之,这个术语分布式数据库包含了三个不同的数据库系统安排三个不同的目的。高可用性数据库系统分配一个主数据库的一个或多个副本保存系统的可用性的表达目的,面对失败。为大规模集群数据库系统分发数据库/全球合作计算可伸缩性(最终一致性)或在一个相对小的节点数量(酸)。最后,分片分区逻辑数据库分成多个碎片促进并行处理和水平可伸缩性。所有能力都是不可或缺的可伸缩、可靠的物联网系统的部署。

所有的物联网网络议程贡献者负责的内容和精度。观点的作家和不一定传达的思想物联网议程。

搜索首席信息官

搜索安全

搜索网络

搜索数据中心

搜索数据管理

关闭