亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 5873 | 回復: 1
打印 上一主題 下一主題

[MongoDB] Riak與MongoDB的對比 [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2012-02-22 15:54 |只看該作者 |倒序瀏覽
Riak與MongoDB的對比



本文來自Riak所屬的Basho公司的技術WiKi,文章從幾個方面對Riak和MongoDB進行了對比,這不是一篇PK文章,NoSQLFan翻譯給大家,希望本文能讓您對Riak和MongoDB有更多的了解。

來源地址:wiki.basho.com



機制與概念上的異同
Riak和MongoDB在使用特性上有下面幾個相同點:

都是文檔型的數據模型
具體存儲方式都不是以文檔型進行存儲
寫性能及寫吞吐都很高
雖然上面幾點看起來二者挺像,但在內部實現上兩者卻是相去甚遠。比如Riak是一個分布式的存儲,而MongoDB可以理解為是一個單一的數據庫系統(tǒng),同時加上了Replication和Sharding功能。MongoDB的內部數據結構上還是文檔,而Riak是不用關心存儲內容的二進制。MongoDB提供GridFS機制來存儲二進制內容,而Riak的二進制內容與普通內容存儲方式一樣。MongoDB的寫入方式是 in-place方式,修改一個文檔是原子性的,而Riak是通過quormNRW的機制保證寫入操作安全性的。

http://www.mongodb.org/display/DOCS/Home
http://blog.mongodb.org/post/248 ... odb-update-in-place
http://www.mongodb.org/display/DOCS/Updating#Updating-Update
復制備份及橫向擴展
Riak主要通過一致性hash算法來實現其數據的復制及分片,一致性hash機制是Riak的核心思想之一。在Riak中,每個節(jié)點都是對等的,所以其不存在單點故障。

Add Nodes to Riak
Consistent Hashing
而MongoDB在1.6版本后也推出了強有力的復制備份功能

1.主從復制
http://www.mongodb.org/display/DOCS/Master+Slave
2.Replica Sets
Replica Sets是MongoDB的重頭功能之一,它讓幾個節(jié)點組成一個集合,在這個集合中的節(jié)點中有一個主機提供寫入,其它節(jié)點會從主機上備份數據,主機故障后會自動在從機中選取產生新的主機。

http://www.mongodb.org/display/DOCS/Replica+Sets
而在數據分片上,MongoDB提供了一種叫auto-sharding的機制,使數據在多個節(jié)點間可以均勻分布,提供動態(tài)添加刪除節(jié)點的功能。

http://www.mongodb.org/display/DOCS/Sharding
http://www.mongodb.org/display/DOCS/Sharding+Introduction
http://en.wikipedia.org/wiki/Sharding
數據分片的自動調整
Riak基于一致性hash策略,在有節(jié)點從hash環(huán)上移除后,其數據會自動分攤整個環(huán)上的其它節(jié)點上。其負載也就被均勻分攤了。而MongoDB也支持在Sharding中摘除節(jié)點后的自動數據遷移,具體見此文:

http://www.mongodb.org/display/D ... ding-Removingashard
性能對比
Riak的存儲引擎本身是作為插件的形式掛載的,Riak支持BitCask,InnoDB和LevelDB等存儲引擎,使用默認的BitCask引擎,你可以在性能和數據持久化的選擇上進行調節(jié)。相比之下,MongoDB由于采用了mmap機制,如果索引和熱數據能被內存完全裝下,那么其操作基本上相當于內存操作,所以MongoDB的當機性能是相當高的。

http://www.mongodb.org/display/DOCS/Durability+and+Repair
http://blog.mongodb.org/post/381927266/what-about-durability
數據模型
Riak的數據存儲沒有特定的格式需求,它允許你存儲不同體積的文檔型數據,另外Riak還可以在數據間創(chuàng)建link來為數據建立關聯(lián)。

Data Storage in Riak
MongoDB的數據是以BSON格式存儲的,你可以在MongoDB中存儲任意JSON格式的文檔,在存儲時會被轉成BSON進行存儲,另外二進制數據也可以轉換成相應的一種BSON數據類型進行存儲,GridFS正是基于這種類型來實現的。

查詢語句及分布式操作
Riak只提供key-value式的數據操作接口,它支持key-value數據的各種操作,也支持link-walking和MapReduce操作,像二級索引這種東西,在Riak里是不存在的,因為Riak根本不關心它存的數據是什么樣的,value對它來說只是一串數據。

https://wiki.basho.com/display/RIAK/MapReduce
MongoDB提供與關系型數據庫類似的各種數據操作(除了關聯(lián)查詢),其索引機制更是與關系型數據庫幾乎一模一樣。同時MongoDB也提供MapReduce的操作接口,用以處理一些批量任務。

http://www.mongodb.org/display/DOCS/Indexes
http://www.mongodb.org/display/DOCS/Querying
http://www.mongodb.org/display/DOCS/MapReduce
沖突解決策略
Riak使用vector-clock機制來進行沖突檢測,所以其沖突解決的選擇權是留給應用層來做的。應用層可以決定兩個用戶對同一行數據的更新哪一個會勝出。

Vector Clocks
MongoDB使用的是最近更新者勝出的方式,相對來說更簡單直接。

http://www.mongodb.org/display/DOCS/Atomic+Operations
API
Riak提供給非Erlang的客戶端兩種操作方式

1. HTTP
2. Protocol Buffers
MongoDB的協(xié)議是自己制定的一套特有協(xié)議,其客戶端由其所屬的10gen公司開發(fā)并維護,基本主流的語言都有相應的官方客戶端。

http://www.mongodb.org/display/DOCS/Mongo+Wire+Protocol
最后,七夕看這篇文章的都是尼瑪折翼的梁山好漢,各位七夕快樂。

論壇徽章:
0
2 [報告]
發(fā)表于 2012-02-24 17:32 |只看該作者
謝謝分享
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP