193
京東網上商城
NoSQL & NewSQL家族:後起之秀及RethinkDB的告別
目錄:
【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中文社區:https://www.mongoing.com/archives/3586
1、分片集群(Sharded Cluster)

分片集群裏引入了 Zone 的概念,主要取代現在的 tag-aware sharding 機製,能將某些數據分配到指定的一個或多個 shard 上。

-
使用wiredtiger 引擎時,moveChunk 的secondaryThrottle選項默認設置為 false,即不用等待遷移的數據複製到secondary節點
-
支持並行的 chunk 遷移,對於包含 N 個 shard 的 sharding 集群,MongoDB 最多可以同時跑 N/2 個遷移任務。
2、複製集(Replica Set)

"linearizable" Read Concern 級別保證,一定能讀到 WriteConcern 為 majority,並且確認時間在讀請求開始之前的數據,該級別僅在查詢結果隻有單個文檔的情況下有效。

-
在拷貝數據的時候,同時建立所有的索引(以前版本隻有_id索引是在同步數據時建立的)
-
拷貝數據的階段,secondary 不斷拉取新的 oplog,確保 secondary 的 local 數據庫有足夠的空間來存儲這些臨時數據。

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

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

MongoDB 3.4 開始支持 [collation](https://docs.mongodb.com/master/reference/collation/),在之前的版本裏,文檔裏存儲的字符串,不論是中文還是英文,不論大小寫,一律按字節來對比,引入 collation 後,支持對字符串的內容進行解讀,可以按使用的 locale 進行對比,也支持對比時忽略大小寫。

MongoDB 3.4裏增加了對[隻讀視圖](https://docs.mongodb.com/master/core/views/#reference-views)的支持,視圖將集合裏滿足某個查詢條件的數據虛擬成一個特殊的集合,用戶可以在特殊的集合上做進一步的查詢操作。

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特性如下:
-
高可用:集群自動恢複機製(強調一點就是每個主節點必須有從節點)。
-
高性能:集群不需要proxy代理,沒有單redis節點中複雜的merge操作。
-
集群的擴展性,官方文檔給出的是它能線性擴展到上千個節點。
-
豐富的集群命令:cluter addslots/delslots,cluster meet,cluster nodes, cluster info,cluster replicate、cluster setslot等。
Redis Cluster高可用、高性能、易擴展等特性,使得Redis Cluster已經越來越多的應用在各大互聯網的生產環境。
相比於之前的Redis2.8版本,3.0版本還有以下的新增或者優化:
-
提升了AOF重寫的速度;
-
升級LRU算法讓keys更好的回收;
-
遷移連接緩存從而能更快的遷移keys,並且migrate操作提供了copy/replace選項;
-
靈活的內存設定:使用config set設定內存時接受不同的內存值表達,例如config set maxmemory 1gb;
-
client pause timeout命令暫停客戶端的命令;
-
incr操作的性能提升等。
Redis 3.2版本發布
Redis最新版本為3.2.6(2016年12月6日),Redis 3.2這個大版本相對於3.0版本,最重要的是增加了GEO地理信息存儲,底層是采用有序集合(sorted set)的方式存儲,可以使用豐富的GEO命令實現“搖一搖”、“附近的人”等基於地理位置信息的功能。
除了上麵的GEO,該版本還在下麵幾個方麵進行了優化:
-
Redis cluster:migrate性能提升10倍;Redis cluster slots rebalancing
-
在API接口實現上發生了重要的變化
-
新增BITFIELD命令
-
內存優化:同樣的數據存儲比之前消耗更少的內存。
-
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
下載地址:https://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 配置功能
官方網站地址:https://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 的幾個主要改進:
-
SQL 優化器改進,進一步下推更多算子,提升 MPP 性能
-
基於 myloader / mydumper 的數據導入提速
-
提升穩定性,完善了過載保護機製
-
與 Kubernetes 整合,實現在 K8S 上的數據庫編排部署,以及一鍵部署工具
-
實現 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
最後更新:2017-05-13 08:42:09