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

DBAplus社群 2016-12-23 10:36:12

 

目录:

【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是完全成熟的软件平台和工具包,面向在线支付。

 

感谢名单

 

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

 

 

回复“newsletter”至DBAplus社群订阅号(dbaplus)可下载本期Newsletter完整版

 

欢迎提供Newsletter信息,发送至邮箱:newsletter@dbaplus.cn

欢迎技术文章投稿,发送至邮箱:editor@dbaplus.cn

最新评论
访客 2023年08月20日

230721

访客 2023年08月16日

1、导入Mongo Monitor监控工具表结构(mongo_monitor…

访客 2023年08月04日

上面提到: 在问题描述的架构图中我们可以看到,Click…

访客 2023年07月19日

PMM不香吗?

访客 2023年06月20日

如今看都很棒

活动预告