Oracle、NoSQL 效应以及对横向扩展 RDBMS 的需求

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡/ 赠书活动

目前,正在 星球 内带小伙伴们做第一个项目:全栈前后端分离博客项目,采用技术栈 Spring Boot + Mybatis Plus + Vue 3.x + Vite 4手把手,前端 + 后端全栈开发,从 0 到 1 讲解每个功能点开发步骤,1v1 答疑,陪伴式直到项目上线,目前已更新了 204 小节,累计 32w+ 字,讲解图:1416 张,还在持续爆肝中,后续还会上新更多项目,目标是将 Java 领域典型的项目都整上,如秒杀系统、在线商城、IM 即时通讯、权限管理等等,已有 870+ 小伙伴加入,欢迎点击围观

Datastax 是一家 Cassandra (NoSQL) 提供商,它撰写了一份 分析报告 ,解释了甲骨文为何苦苦挣扎,错过了 2015 年第四季度的数据,而且收入与 2014 年相比持平。

Datastax 表示,这是由于越来越多的企业工作负载部署在 NoSQL 上,利用非结构化数据以及横向扩展、灵活性和低成本。而甲骨文(尽管他们在 NoSQL 和 MySQL 上进行了投资)并没有很好地响应这一新需求。

对 Oracle 来说更糟糕的是,与企业 NoSQL 的兴起同时出现的是企业要求“数据库响应工作负载”而不是相反的需求。 Datastax 围绕“主/从”(通常是对 复制 的引用)创造了一个双关语,指出以前,企业必须将他们的工作负载适应任何“大数据库”供应商提供的(例如 Oracle、Microsoft、IBM、SAP 等)。 ),现在企业有权要求“大数据库”提供具有 NoSQL 一些关键特性的 SQL RDBMS:

  • 持续正常运行时间
  • 地域分布
  • 缩放,尤其是写入缩放
  • Burst/Flex:能够“立即通知”横向扩展
  • 无论用户或数据负载如何,恒定的数据库性能
  • 在没有存储过载的情况下处理不同的数据类型
  • 在不“超出我的预算”的情况下完成上述所有操作

当然,这里的假设是 NoSQL 可以处理上述所有问题——这个假设可能有点站不住脚。并非所有 NoSQL DBMS 都能满足上述要求,尤其是在没有“用硬件解决问题”的情况下,然后您就“打破”了预算。

另一个更大的假设:“非结构化数据”表明不需要确认的、一致的交易。企业之所以将绝大多数工作负载部署在 RDBMS 数据库上,是因为这些数据库旨在 保证 实时一致的事务处理。

当你想收钱时,使用 SQL 数据库。为什么?

RDBMS 已有四十年的历史,它告诉每个人数据库创建一致的事务。实际上,这称为“ACID 合规性”,NoSQL 数据库不提供这种功能。换句话说,虽然 NoSQL 数据库可以很好地处理非结构化数据和横向扩展,但它们在跨数据库所有节点实时维护 ACID 合规性、事务性、数据一致性和引用完整性方面非常糟糕。

因此,您可以通过部署 NoSQL 数据库赚很多钱,但是当您真正想要收这笔钱​​时,您将使用 SQL 数据库。

但!有中间立场吗? 您能否获得 RDBMS 的 ACID 事务性,以及像 NoSQL 数据库一样的规模和灵活性?事实上,你可以。 Datastax 遗漏了一类 RDBMS,即“横向扩展 RDBMS”或“NewSQL”。 ClustrixDB 是一个横向扩展的 RDBMS。

像 ClustrixDB 这样的横向扩展 RDBMS 可以处理所描述的许多挑战:

  • ClustrixDB 不是主从架构,而是对等的。所有节点始终完全一致,数据在集群中至少存储两次以实现 HA
  • ClustrixDB 不是共享存储、CPU 或内存,而是无共享。每个节点都有自己的编译器、查询执行引擎、数据和集群中所有数据所在位置的数据映射。传入查询被路由到工作负载最低的节点,编译后的查询片段被路由到数据所在的节点,从而最大限度地减少数据移动并最大化并行性
  • 扩展就像添加线性扩展读写的节点一样简单。这称为“Flex-Up”,可以通过单个(非常)短的数据库“暂停”来添加或删除多个节点
  • 高速摄取由自动后台数据分配和平衡处理。将其视为“透明的自动分片”,无需任何 DBA 开销或应用程序更改。
  • ClustrixDB 专为不间断运行而设计,无需数据库暂停或应用程序中断即可处理在线模式更改和节点丢失。

ClustrixDB 在全球范围内有数百个安装,每月处理数万亿个事务。我们为 FlipKart 的 SKU 数据库、100 强互联网零售商 Choxi 的电子商务数据库以及 Twoo/Massive Media 的后端提供支持。

结论

1. 企业中非结构化数据的兴起正在推动 NoSQL 数据库的采用,企业也开始要求其 SQL RDBMS 具有类似 NoSQL 的功能。功能如:

  • 规模、部署、可用性
  • 爆破/弯曲的增量定价
  • 大规模并行分布/无共享,

2. Oracle、SQL Server、SQL、IBM 等“大数据库”供应商无法提供满足这些要求的横向扩展 SQL RDBMS。


编者注:最初由 Dave Anselmi 在 ClustrixDB 博客上撰写。