NoSQL & NewSQL家族:后起之秀及RethinkDB的告别

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介:

目录:

【NoSQL家族

  • MongoDB
    MongoDB 3.4版本发布

  • Redis

    Redis 3.2版本发布

  • HBase
    Apache HBase v1.2.4发布

  • Geode
    Apache Geode 1.0版本正式发布

NewSQL家族】

  • TiDB
    TiDB近期将发布RC1版本

  • RethinkDB
    RethinkDB深情告别

  • 感谢名单

 

NoSQL家族

 

一、MongoDB

 

MongoDB 3.4版本发布

 

MongoDB 近日发布最新版本3.4,以下是3.4的新功能一览。

 

更多内容可以参考MongoDB中文社区:http://www.mongoing.com/archives/3586

 

1分片集群(Sharded Cluster)

 

 
Sharding Zones

 

分片集群里引入了 Zone 的概念,主要取代现在的 tag-aware sharding 机制,能将某些数据分配到指定的一个或多个 shard 上。

 

 
Faster Balancing

 

  • 使用wiredtiger 引擎时,moveChunk 的secondaryThrottle选项默认设置为 false,即不用等待迁移的数据复制到secondary节点

  • 支持并行的 chunk 迁移,对于包含 N 个 shard 的 sharding 集群,MongoDB 最多可以同时跑 N/2 个迁移任务。

 

2复制集(Replica Set)

 

 
支持 Linearizable Read Concern

 

"linearizable" Read Concern 级别保证,一定能读到 WriteConcern 为 majority,并且确认时间在读请求开始之前的数据,该级别仅在查询结果只有单个文档的情况下有效。

 

 
提升全量同步

 

  • 在拷贝数据的时候,同时建立所有的索引(以前版本只有_id索引是在同步数据时建立的)

  • 拷贝数据的阶段,secondary 不断拉取新的 oplog,确保 secondary 的 local 数据库有足够的空间来存储这些临时数据。

     

 
Decimal Type

 

MongoDB 3.4 新增对[decimal128 format]的支持,最多支持34位小数位。

 

 
Aggregation

 

MongoDB 在3.4版本增加了大量的 aggregation 操作符,特别是Facet Search和Graph Lookup 。

 

 
Collation and Case-Insensitive Indexes

 

MongoDB 3.4 开始支持 [collation](https://docs.mongodb.com/master/reference/collation/),在之前的版本里,文档里存储的字符串,不论是中文还是英文,不论大小写,一律按字节来对比,引入 collation 后,支持对字符串的内容进行解读,可以按使用的 locale 进行对比,也支持对比时忽略大小写。

 

 
视图(Views)

 

MongoDB 3.4里增加了对[只读视图](https://docs.mongodb.com/master/core/views/#reference-views)的支持,视图将集合里满足某个查询条件的数据虚拟成一个特殊的集合,用户可以在特殊的集合上做进一步的查询操作。

 

 
工具(MongoDB Tools)

 

MongoDB 3.4 引入 mongoreplay 工具,可用于监控并记录 mongod 上执行的命令并 replay 到另一个 mongod 实例上,该工具可用于代替 mongosniff。

 

对新版本功能感兴趣的同学可以下载 MongoDB-3.4 来试玩下。

 

二、Redis

 

提到Redis不得不提Redis的3.0版本,该版本于2015-4-1 GA,它的GA代表着Redis Cluster已经足够成熟,对传统“ZK+twemproxy+Redis+Redis-sentinel”这种复杂缓存架构带来较大的冲击。Redis cluster的架构如下图:

 

 

Redis Cluster特性如下:

  1. 高可用:集群自动恢复机制(强调一点就是每个主节点必须有从节点)。

  2. 高性能:集群不需要proxy代理,没有单redis节点中复杂的merge操作。

  3. 集群的扩展性,官方文档给出的是它能线性扩展到上千个节点。

  4. 丰富的集群命令:cluter addslots/delslots,cluster meet,cluster nodes, cluster info,cluster replicate、cluster setslot等。

 

Redis Cluster高可用、高性能、易扩展等特性,使得Redis Cluster已经越来越多的应用在各大互联网的生产环境。

 

相比于之前的Redis2.8版本,3.0版本还有以下的新增或者优化:

 

  1. 提升了AOF重写的速度;

  2. 升级LRU算法让keys更好的回收;

  3. 迁移连接缓存从而能更快的迁移keys,并且migrate操作提供了copy/replace选项;

  4. 灵活的内存设定:使用config set设定内存时接受不同的内存值表达,例如config set maxmemory 1gb;

  5. client pause timeout命令暂停客户端的命令;

  6. incr操作的性能提升等。

 

Redis 3.2版本发布

 

Redis最新版本为3.2.6(2016年12月6日),Redis 3.2这个大版本相对于3.0版本,最重要的是增加了GEO地理信息存储,底层是采用有序集合(sorted set)的方式存储,可以使用丰富的GEO命令实现“摇一摇”、“附近的人”等基于地理位置信息的功能。

 

除了上面的GEO,该版本还在下面几个方面进行了优化:

 

  1. Redis cluster:migrate性能提升10倍;Redis cluster slots rebalancing

  2. 在API接口实现上发生了重要的变化

  3. 新增BITFIELD命令

  4. 内存优化:同样的数据存储比之前消耗更少的内存。

  5. Lua脚本优化:复制功能以及远程Lua脚本调试器编写简单任务

 

三、HBase

 

HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。

 

HBase是Google Bigtable的开源实现,类似Google Bigtable利用GFS作为其文件存储系统,HBase利用Hadoop HDFS作为其文件存储系统;Google运行MapReduce来处理Bigtable中的海量数据,HBase同样利用Hadoop MapReduce来处理HBase中的海量数据;Google Bigtable利用 Chubby作为协同服务,HBase利用Zookeeper作为对应。

 

Apache HBase v1.2.4发布

 

Apache HBase v1.2.4 于2016年11月7日发布,HBase 1.2.4是HBase 1.2.x系列中的第四个维护版,在该版本中修复了自1.2.3发行以来的35个BUG,主要更新:

Sub-task

[HBASE-14734] - BindException when setting up MiniKdc

[HBASE-15984] - Given failure to parse a given WAL that was closed cleanly, replay the WAL.

[HBASE-16101] - Procedure v2 - Perf Tool for WAL

[HBASE-16522] - Procedure v2 - Cache system user and avoid IOException

[HBASE-16970] - Clarify misleading Scan.java comment about caching

Improvement

[HBASE-15315] - Remove always set super user call as high priority

[HBASE-16033] - Add more details in logging of responseTooSlow/TooLarge

[HBASE-16667] - Building with JDK 8: ignoring option MaxPermSize=256m

[HBASE-16972] - Log more details for Scan#next request when responseTooSlow

[HBASE-17004] - Refactor IntegrationTestManyRegions to use @ClassRule for timing out

[HBASE-17006] - Add names to threads for better debugability of thread dumps

[HBASE-17165] - Add retry to LoadIncrementalHFiles tool

Task

[HBASE-16340] - ensure no Xerces jars included

[HBASE-16518] - Remove old .arcconfig file

[HBASE-16748] - Release 1.2.4

[HBASE-16749] - HBase root pom.xml contains repo from people.apache.org/~garyh

 

完整更新日志:

https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=12338116&styleName=&projectId=12310753&Create=Create&atl_token=A5KQ-2QAV-T4JA-FDED%7C4402d8283e6ee19870bd680ad801c940e7e64bc7%7Clout

 

下载地址:http://apache.fayea.com/hbase/1.2.4/hbase-1.2.4-bin.tar.gz

 

四、Geode

 

Apache Geode 1.0版本正式发布

 

在2016年11月21日 Apache 基金会宣布 GemFire的开源版本 Apache Geode 已从 Apache 孵化器毕业, 正式成为 Apache 的顶级项目, Apache Geode 1.0 正式发布。

 

Geode增强了以前 GemFire 分布式系统的高可用和弹性收缩功能, 提升了它的管理和监控功能。

 

1、高可用功能增强

 

在分布式系统中, 由于网络故障导致, 成员节点的失联比较难于处理. 在Geode中, 增加了使用多播发现系统成员。

 

在出现大面积失联的情况下,集群中的节点可以自动重连协调器。

 

同时, Geode加强了Client API 自动重连集群的功能, 同时在断开连接的时间段,客户端向服务器发送的数据保持不丢失。

 

另外,Geode添加新的 API 可以对 Gateway 网关接收和发送数据进行负载均衡。

 

2、管理监控功能增强

 

Geode 新增加了易于使用的管理监控工具, 可以轻松地对 Geode 的性能进行监控。包括对统计当前的状态和历史性能, 提供命令行直接对集群中的节点进行管理。

 

 Geode有几个重要的更新:

 

  • 使用 Apache Log4j 2 更新内部日志系统

  • 增强了 SSL 安全配置和 LDAP 认证配置

  • 增强了PDX 序列化配置, 包括使用别名重命名 PDX 类

  • 增强了 Geode查询功能和索引创建, 包括索引提示和创建多索引的功能

  • 增强了Geode对内存数据的批处理功能

  • 增加了REST API Endpoints 和 SSL 配置功能

 

官方网站地址:http://geode.apache.org/

 

NewSQL家族

一、TiDB

 

TiDB 是基于 Google Spanner & F1 实现的分布式 NewSQL 数据库,目标定位支持100% 的 OLTP + 80%的 OLAP,除了底层的 RocksDB 存储引擎之外,分布式 SQL 解析层、分布式 KV 存储引擎(TiKV)完全自主设计和研发。

 

TiDB 是开源且网络接口和语法 MySQL 兼容的,可以简单理解为一个可以无限水平扩展的 MySQL,提供分布式事务、跨节点 JOIN、保证跨数据中心的数据的强一致性(ACID 跨行事务支持)、故障自恢复的高可用、提供更快的查询和写入吞吐;对业务没有任何侵入性,简化开发,利于维护和平滑迁移。

 

TiDB近期将发布RC1版本

 

TiDB 目前版本Beta 4,近期即将发布 RC1 版本,总体目标是让 TiDB 在性能、稳定性、安全性、文档方面达到可商用级别。

 

RC1 的几个主要改进:

 

  1. SQL 优化器改进,进一步下推更多算子,提升 MPP 性能

  2. 基于 myloader / mydumper 的数据导入提速

  3. 提升稳定性,完善了过载保护机制

  4. 与 Kubernetes 整合,实现在 K8S 上的数据库编排部署,以及一键部署工具

  5. 实现 TiDB 与 MySQL 互为主备的实时数据同步方案

 

更进一步文档请阅读:

https://github.com/pingcap/docs-cn

 

二、RethinkDB

 

RethinkDB深情告别

 

RethinkDB的开发工作始于2009年7月份,用C++、JavaScript和Bash编写。它采用AGPL开源许可证来发布。最后一个稳定版本是2016年5月2日发布的版本2.3.2。

 

近期RethinkDB对其为实时Web开发的开源、可扩展的JavaScript对象标注(JSON)数据库进行了一场深情告别。

 

该公司关闭后,RethinkDB团队随之搬家,预计工程团队会加入Stripe Inc.,而Stripe是完全成熟的软件平台和工具包,面向在线支付。

 

感谢名单

 

感谢本期提供宝贵信息和建议的专家朋友,排名不分先后。

 

原文发布时间为:2016-12-23

本文来自云栖社区合作伙伴DBAplus

相关实践学习
lindorm多模间数据无缝流转
展现了Lindorm多模融合能力——用kafka API写入,无缝流转在各引擎内进行数据存储和计算的实验。
云数据库HBase版使用教程
  相关的阿里云产品:云数据库 HBase 版 面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析、全文检索、时序时空查询等能力,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库,是为淘宝、支付宝、菜鸟等众多阿里核心业务提供关键支撑的数据库。 了解产品详情: https://cn.aliyun.com/product/hbase   ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
1月前
|
存储 缓存 NoSQL
常见的 NoSQL 数据库有哪些?
常见的 NoSQL 数据库有哪些?
51 2
|
2月前
|
存储 SQL JSON
介绍一下RDBMS和NoSQL数据库之间的区别
【10月更文挑战第21天】介绍一下RDBMS和NoSQL数据库之间的区别
139 2
|
2月前
|
存储 SQL NoSQL
数据库技术深度探索:从关系型到NoSQL的演变
【10月更文挑战第21天】数据库技术深度探索:从关系型到NoSQL的演变
90 1
|
2月前
|
存储 NoSQL 搜索推荐
nosql
【10月更文挑战第14天】nosql
33 2
|
2月前
|
NoSQL 前端开发 MongoDB
前端的全栈之路Meteor篇(三):运行在浏览器端的NoSQL数据库副本-MiniMongo介绍及其前后端数据实时同步示例
MiniMongo 是 Meteor 框架中的客户端数据库组件,模拟了 MongoDB 的核心功能,允许前端开发者使用类似 MongoDB 的 API 进行数据操作。通过 Meteor 的数据同步机制,MiniMongo 与服务器端的 MongoDB 实现实时数据同步,确保数据一致性,支持发布/订阅模型和响应式数据源,适用于实时聊天、项目管理和协作工具等应用场景。
|
2月前
|
存储 SQL 分布式计算
NoSQL 简介
10月更文挑战第10天
47 0
|
2月前
|
存储 NoSQL API
.NET NoSQL 嵌入式数据库 LiteDB 使用教程
.NET NoSQL 嵌入式数据库 LiteDB 使用教程~
|
4天前
|
存储 Oracle 关系型数据库
数据库传奇:MySQL创世之父的两千金My、Maria
《数据库传奇:MySQL创世之父的两千金My、Maria》介绍了MySQL的发展历程及其分支MariaDB。MySQL由Michael Widenius等人于1994年创建,现归Oracle所有,广泛应用于阿里巴巴、腾讯等企业。2009年,Widenius因担心Oracle收购影响MySQL的开源性,创建了MariaDB,提供额外功能和改进。维基百科、Google等已逐步替换为MariaDB,以确保更好的性能和社区支持。掌握MariaDB作为备用方案,对未来发展至关重要。
18 3
|
4天前
|
安全 关系型数据库 MySQL
MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!
《MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!》介绍了MySQL中的三种关键日志:二进制日志(Binary Log)、重做日志(Redo Log)和撤销日志(Undo Log)。这些日志确保了数据库的ACID特性,即原子性、一致性、隔离性和持久性。Redo Log记录数据页的物理修改,保证事务持久性;Undo Log记录事务的逆操作,支持回滚和多版本并发控制(MVCC)。文章还详细对比了InnoDB和MyISAM存储引擎在事务支持、锁定机制、并发性等方面的差异,强调了InnoDB在高并发和事务处理中的优势。通过这些机制,MySQL能够在事务执行、崩溃和恢复过程中保持
22 3
|
4天前
|
SQL 关系型数据库 MySQL
数据库灾难应对:MySQL误删除数据的救赎之道,技巧get起来!之binlog
《数据库灾难应对:MySQL误删除数据的救赎之道,技巧get起来!之binlog》介绍了如何利用MySQL的二进制日志(Binlog)恢复误删除的数据。主要内容包括: 1. **启用二进制日志**:在`my.cnf`中配置`log-bin`并重启MySQL服务。 2. **查看二进制日志文件**:使用`SHOW VARIABLES LIKE 'log_%';`和`SHOW MASTER STATUS;`命令获取当前日志文件及位置。 3. **创建数据备份**:确保在恢复前已有备份,以防意外。 4. **导出二进制日志为SQL语句**:使用`mysqlbinlog`
28 2