黄东旭解析 TiDB 的核心优势
1393
2023-06-02
本文讲述了什么是NewSQL?NewSQL数据库产品介绍及其优点
NewSQL这个词至少2011年开始就出现了,不过从一开始就没有特别清晰的定义,现在也差不多。不过,NewSQL出现在NoSQL之后,可以认为是分布式数据库自然演变的一部分,NewSQL尝试解决NoSQL碰到的阻力,NoSQL一般解释为Not Only SQL,实际上NoSQL最常见有4种,Key-Value Store、Document Store、Column Oriented、Graph,通常是选择Weak Consistency(Eventual Consistency)换取更好的性能和扩展性,通常对SQL支持比较弱,NewSQL则是尽可能支持SQL(如果说NoSQL只支持10-30% SQL Like,NewSQL支持70%以上SQL,大概是这样),在Consistency Model上更倾向Strong而不是Weak,大约是Linearizability,还有最关键的(个人观点)扩展性上更强调写能力的扩展,MySQL MGR或者是1主(可读写)15备(只读)这种应该算不上New,NewSQL应该支持多个(至少3个以上吧)主(可读写),在数据存储层通常采用Paxos或Raft共识算法支持多份副本(顺便说一句,不要以为因为有Multi-Paxos,采用Paxos的数据库实现并发性能就必然好于Raft),而不是一主多备来支持多份副本,为了优化写能力单机存储引擎通常采用有利于写的LSM-Tree而不是有利于读的B+ Tree。
Consistency Model、对SQL的良好支持这些方面NewSQL和NoSQL相比更接近传统的RDBMS,同时在扩展性(需要强调写能力的扩展,这是难点)上接近NoSQL(NoSQL绝大部分天然支持分布式,扩展性良好)。
NewSQL听起来挺不错的,也是有代价的,比如NewSQL维护比单机数据库复杂、某些分布式数据库要求必须用***。传统的单体数据库虽然不能在每年一度的网购狂欢时支持那么高的并发量,但是单机支持50万tpmC是很轻松的(其实对很多客户、大部分场景够用了,TiDB Blog也建议如果没有必要支持高并发用单体数据库就好了),而且交易响应时间通常是5毫秒内,而NewSQL这些分布式数据库交易响应时间可能是20-30毫秒,NewSQL良好支持高并发但是交易响应时间有所牺牲。
最近这几年不少数据库宣传自己良好支持HTAP(Hybrid Transaction/Analytical Processing),不过广告宣传不可尽信,你大可认为HTAP是个时髦的营销词汇,要仔细看其架构、技术实现如何能实现HTAP。不少宣传HTAP的,其实还是以OLTP为主,OLAP表现不佳。
NewSQL的兴起和Google的BigTable、Spanner、F1相关论文的公布有关系,和Raft算法成熟实现有关系,Spanner的架构、Percolator、TrueTime、Spanner底层数据存储基于Key-Value、存储引擎LevelDB等等,都深刻地影响了CockroachDB、TiDB、YugabyteDB这些后来者。可以说Bigtable带动了LSM Tree的流行,而RocksDB谷歌LevelDB的一个Fork。Spanner论文2012年公布,好几个分布式数据库大约都是2015年开始的,2015年发布etcd 2.0中的Raft算法实现可以认为是Raft实现的成熟标志。
NeWSQL是各种新型可伸缩高性能SQL数据库的简称,它在分布式架构中发挥关系模型的优势,从一开始就考虑SQL函数,精简传统关系数据库中不必要的组件,提高效率。所以NewSQL数据库几乎可以无缝的完全替代原系统的关系数据库。NeWSQL具有以下优势:
1)、高可扩展性。
2)、支持SQL语句
3)、支持酸一致性约束
4)、高可用性
5)、支持Hadoop集成等
典型的NeWSQL数据库产品是VolDB,它是由著名的教据库专家如迈克尔斯通布雷克、萨姆·马登和丹尼尔·阿巴迪共同开发的内存数据
库。目前VoltDB提供两人版本:企业版和社区版,社区版包含了企业版的部分功能,可以免费使用。VoltDB是一款革命性的数据库新产品,号称其吞吐量比NewSQL数据库 product高45倍,具有很高的可扩展性,其特点如下:
1)、高吞叶量、低延迟: 通过内存计算、存储过程和串行数据访问实现。
2)、可扩展性:自动分区和复制,以确保性能和可扩展性。
3)、高可用性: 同步多主复制(VoltDB中称为K-safety).
4)、持久性: NewSQL数据库快照和命令日志的创新技术组合。
传统关系数据库与VoltDB的比较
传统的关系数据库通常有以下开销
1旧志:传统数据库需要写两次数据 -一次在数据库中,一次在日志文件中。日志文件也必须写入硬盘,以确保其持久性,因此,日志记录是一项开销很大的操作。
2)、锁:在访问一个记录之前,一个事物必须在其上设置一个锁表,以确保没有冲突的操作。
3)、内存锁: 它的作用是阻塞多线程环境下的共享数据结构,同样消耗CPU资源.
4)、缓中区管理:在传统数据库中,数据存储在固定大小的页面中。在任何给定的时刻,缓中池决定哪些页面进入内存。记录必须在一个页面中,并且需要标记页面边界。
VolDB旨在优化多核处理的VLS设计。它使用集群服务器的拓扑结构及其足够的内存来处理高速数据库工作负载,VoIiDB是一个完全
支持ACID约束的事务数据库
VoltDB通过以下策略消除了上述开销
1)、数据和相关处理分在一起
2)、数据位于内存中,因此不需要缓冲区管理
3)、在存储器中顺序执行事务操作,并且取消锁定和锁存操作.
4)、同步多服务器副本,提供内置的高可用性
5)、命令日志记录取代了“预写”日志记录,从而提高了性能
使用企业关系教据库管理系统(RDBMS)来存储和管理他们的数据。然而,这些系统无法处理海量的复杂数据,无法满足当今数据库用户的需求,因此,许多个业正在寻找影够提供可伸缩性,可用性和高性能,同时保持传统教据库系统的重要特征的数据库系统。软件广商也认识到了这种需求,开发了NewSQL数据库来弥补传统数据库系统的缺陷
上文就是小编为大家整理的什么是NewSQL?NewSQL数据库产品介绍及其优点。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。