泉源:计算机天下
在昨天的微信《云数据库选型必读:如何梳理需求?》中介绍了如何选择合适的云数据库,本日继续分享干货,带你了解两种数据库的区别:
你需要集群数据库吗?
集群数据库与单节点数据库相比有多个优点,但费用和复杂性更高。除此之外,集群数据库还有更高的可用性、更高的吞吐量,在一些情况下还有更低的延迟。
对于每个节点都有整个数据库副本的集群而言,你可以获得更高的冗余性和更高的可用性。视策略而定,读取操纵可能只需要一个节点,否则集群中的一组节点可能需要就返回值达成一致。
使用有多个节点的集群可以让数据库使用更多的CPU,从而增加吞吐量,并进步事件率。使用允许最近节点返回值的读取策略,读取延迟通常会低落。另一方面,必须等待所有节点提交的写入或事件策略,有时会增加写入延迟。
使用共识组有助于收缩延迟。假如你有一个三节点集群,一个节点负载过大,另两个节点就可以批准共识事件,并在第三个节点可用时更新该节点。
分片是一种通过划分数据库来处置惩罚更多数据的方法。手动分片可能费时又贫苦,很多数据库都有主动分片功能。
你需要分布式数据库吗?
集群不是扩展数据库的终极方法,不外是第一步。下一步是分布式数据库,这通常意味着在多个地区有集群。一些数据库允许分布式只读副本和主读写实例或集群。其他数据库允许分布式读写实例或集群,并具有同步机制。
分布式数据库常常可以为远程用户提供更低的延迟和更高的吞吐量。东京的用户访问巴塞罗那的服务器可能会有260 毫秒的延迟,但假如日本有数据库副本,他们的平均读取延迟可能只有10毫秒。这对写入和事件的影响取决于数据库的一致性要求以及远程集群是如何配置的。
早期的分布式数据库是具有终极一致性的NoSQL数据库。终极一致性意味着不能包管在远程位置写入后读取返回最新信息,但会随着时间而更新。终极一致性放宽了写入和事件完成的要求,因而低落了延迟。
最近几种分布式数据库在数据结构、共识组和时间同步的资助下实现了强一致性。这方面的例子包括Google Cloud Spanner和CockroachDB。
你的数据库预算是多少?
虽然大多数数据库都有免费的"社区"或"开发/测试"版本,但除了在线社区论坛外,它们可能缺乏支持。社区版和开源版也可能缺乏贸易版本提供的一些性能优化。假如贵公司依赖数据库,应在允许证和支持上投入本钱。
假如你在云端运行数据库,至少需要为云资源付费。假如是贸易数据库,你还需要数据库允许证,这可能是来自供应商的长期允许证,也可能是通过云提供商购买的按需付费允许证。
附:CAP 定理
CAP定理(Brewer 等人于1998 年提出)声称,任何网络共享数据系统最多具有以下三个抱负属性中的两个:
C:一致性,相当于拥有一个最新的数据副本;
A:该数据的可用性,用于更新;
P:对网络分区的容忍度。
数据库的抱负属性取决于它所服务的应用的需求。假如该应用显示目录,那么数据库的读取速率和延迟很重要,文档数据库可能很抱负,但关系数据库和宽列数据库也适用。假如该应用处置惩罚金融交易,那么数据库的ACID属性(原子性、一致性、隔离性和持久性)就很重要,关系数据库可能很抱负。
这则三分之二的公式被证明过于简单化。在当代分布式数据库架构中,节点故障和网络分区由共享组使用Paxos或Raft算法来缓解。实际上,当一个节点退出集群后,只要它有仲裁机制,集群就会继续工作。此外,分区在私有网络内部很少见,比如在主要云提供商处的私有网络:它们在数据中心之间使用冗余光纤,并不通过公共互联网传输内部流量。
这意味着,虽然从严酷上来说没有数据库可以绕过CAP定理,但实际上好的云数据库拥有高出五个九(99.999%)的可用性,这些数据库可以绕过CAP定理,同时拥有一致性和可用性。
预告
12家着名供应商的云数据库该如何挑选?来日诰日的微信将为你揭秘!
本文来自【计算机天下】,仅代表作者观点。全国党媒信息公共平台提供信息发布传播服务。
ID:jrtt |