SQL借助于NewSQL开始回归
新一轮的数据库开发风潮展现出了向SQL回归的趋势,只不过这种趋势并非是在更大、更好的硬件上(甚至不是在分片的架构上)运行传统的关系型存储,而是通过NewSQL解决方案来实现。
在市场被NoSQL(一开始叫做“No more SQL”,后来改为“Not only SQL”)逐步蚕食后,近一段时间以来传统的SQL开始回归。其中广为传颂的一个解决方案就是分片,不过对于某些情况来说这还远远不够。因此,人们推出了新的方式,有些方式结合了SQL与NoSQL这两种技术,还有些方式是通过改进关系型存储的性能与可伸缩性来实现,人们将这些方式称作NewSQL。Google(NoSQL最初的支持者之一)构建了F1,这是一个分布式的关系型数据库,将BigTable的高可用性与可伸缩性与SQL的“一致性和可用性”结合起来。Google在白皮书F1: A Distributed SQL Database That Scales(PDF)中是这样介绍F1的:
这是由Google构建的一个容错、分布式的OLTP与OLAP数据库,作为新的存储系统用在Google的AdWords系统上。设计它的目标旨在替换掉分片的MySQL实现,因为后者已经无法满足日益增长的可伸缩性与可靠性的需求了。
MemSQL就是众多的NewSQL解决方案中的一个,这是个完全的内存解决方案,用于对结构化与半结构化(JSON)数据进行实时分析。它并没有使用列式存储,而是使用了“无锁的skip列表与无锁的hash tables”以实现更快的数据访问,并且对非分片架构使用了并行处理,不会出现单点失败的情况。
另一个NewSQL解决方案是ClustrixDB,这是个点对点的非分片的分布式数据库,用于事务处理与实时分析。根据Clustrix CEO Robin Purohit所述,他们的数据库在Twoo.com每天能够处理4.4B个事务,21个节点(每个节点的配置是8核,48GB内存)的平均延迟为5到10毫秒,其构建方式是这样的:
从头开始构建的点对点分布式SQL数据库,没有单独的协调者(因此就不会出现单个的失败点)。ClustrixDB使用了分布式事务,事务使用了Paxos的一致性协议。ClustrixDB针对写使用了2阶段锁,还使用了分布式的多版本并发控制,用于确保读与写不会互相干扰。这可以保证分布式环境下单个节点数据库严格的ACID属性。
我们也向Twoo.com的CEO Toon Coppens提出了这样一个问题:为何最初的MySQL分片解决方案无法满足他们的要求,转而去选择一个NewSQL呢:
我们花了一些时间了解Netlog.com的架构,他们拥有成百个MySQL分片,重新平衡与管理这些分片的代价是非常高昂的,更不必说即时修改查询或是在所有分片上创建新查询时的不灵活性了,这种方式并不可取。我们希望一个查询就能将数据查出来。
虽然NoSQL因其性能、可伸缩性与可用性而广受赞誉,但其开发与数据重构的工作量要大于SQL存储。因此,有些人开始转向了NewSQL,它将NoSQL的优势与SQL的能力结合了起来。最为重要的是使用能够满足需要的解决方案。
- 10-26Whitewidow SQL漏洞扫描工具演示
- 10-26SQL黑客注入防御与绕过的多种姿势
- 12-23SQLServer数据库操作总结(sql语法的使用)
- 12-21C#连接Sqlite
- 12-21ORACLE数据库学习之SQL性能优化详解
- 12-21解决SQLSERVER2008数据库日志文件占用硬盘空间问题
- 01-11全球最受赞誉公司揭晓:苹果连续九年第一
- 12-09罗伯特·莫里斯:让黑客真正变黑
- 12-09谁闯入了中国网络?揭秘美国绝密黑客小组TA
- 12-09警示:iOS6 惊现“闪退”BUG
- 12-05亚马逊推出新一代基础模型 任意模态生成大模
- 12-05OpenAI拓展欧洲业务 将在苏黎世设立办公室
- 12-05微软质疑美国联邦贸易委员会泄露信息 督促其
- 12-05联交所取消宝宝树上市地位 宝宝树:不会对公
- 12-04企业微信致歉:文档打开异常已完成修复