1. 程式人生 > >[轉]RocksDB介紹:一個比LevelDB更彪悍的引擎

[轉]RocksDB介紹:一個比LevelDB更彪悍的引擎

RocksDB基本介紹:


嵌入式資料庫RocksDB是Facebook基於LevelDB開發的一種嵌入式Key-value儲存系統,該資料庫能夠充分利用快閃記憶體的效能,大大提升應用伺服器的速度。

Rocksdb. 這個開源引擎是基於 Google 的 leveldb 1.5 版本, 但據稱做了許多優化, 效能相對 leveldb 有了很大的提升, 而且解決了 leveldb 主動限制寫的問題.

Facebook用RocksDB來驅動一些面向使用者的應用,這些應用由於需要通過網路訪問外部儲存而效能低下,此外Facebook還用RocksDB來解決固態硬碟IO利用率不高相關的一些問題。Facebook的資料庫工程師Dhruba Borthakur在其個人部落格介紹了RocksDB的設計原由和原理,但實際上催生RocksDB的最大動力來自伺服器快閃記憶體儲存卡的價格大幅下滑,Facebook的定製伺服器已經開始全面採用快閃記憶體。

隨著快閃記憶體儲存時代的到來,一些新的應用可以在快閃記憶體中管理並快速訪問自己的資料集,無需通過網路訪問外部資料。這些新應用使用的就是我們所說的嵌入式資料庫。

資料庫查詢如果在本地快閃記憶體中進行,速度理論上會比通過資料中心內部網路查詢快一倍,因為資料庫中心內部網路有50微妙的延遲。

RocksDB的能夠充分利用快閃記憶體的高IOPS效能,同時也能利用多核伺服器的計算效能,Facebook目前已經在RocksDB的GitHub頁面上釋出了RocksDB在Fusion-io伺服器上的跑分基準測試結果,Facebook聲稱其速度比Google的LevelDB嵌入式key-value儲存系統快很多。

RocksDB和LevelDB的區別:

關於LevelDB的資料網上還是比較豐富的,如果你尚未聽說過LevelDB,那請稍微預習一下,因為RocksDB實際上是在LevelDB之上做的改進。本文主要側重在架構上對RocksDB對LevelDB改進的地方做個簡單介紹並新增一些個人的看法,更詳細的資訊讀者可參考其官網:http://rocksdb.org/

RocksDB是在LevelDB原來的程式碼上進行改進完善的,所以在用法上與LevelDB非常的相似。如下,就是簡單的把原來Leveldb資訊替換為Rocksdb,從繼承的角度看,Rocksdb就像是Leveldb的後輩。

RocksDB:

12345678
910111213141516
#include "rocksdb/db.h"rocksdb::DB*db;rocksdb::Options options;options.create_if_missing=true;rocksdb::Status status=rocksdb::DB::Open(options,"/tmp/testdb",&db);assert(status.ok());status=db->Get(rocksdb::ReadOptions(),key1,&value);status=db->Put(rocksdb::WriteOptions(),key2
,value);
status=db->Delete(rocksdb::WriteOptions(),key1);delete db;

LevelDB:

12345678910111213141516#include "leveldb/db.h"leveldb::DB*db;leveldb::Options options;options.create_if_missing=true;leveldb::Status status=leveldb::DB::Open(options,"/tmp/testdb",&db);assert(status.ok());status=db->Get(leveldb::ReadOptions(),key1,&value);

相關推薦

[]RocksDB介紹一個LevelDB引擎

RocksDB基本介紹:嵌入式資料庫RocksDB是Facebook基於LevelDB開發的一種嵌入式Key-value儲存系統,該資料庫能夠充分利用快閃記憶體的效能,大大提升應用伺服器的速度。Rocksdb. 這個開源引擎是基於 Google 的 leveldb 1.5 版

一個cygwin爽的東西msys2

msys2下載 msys2官網,直接在官網下載相應版本即可,安裝完成啟動之後大概這個樣子 msys2   不過預設的終端實在不咋好看,也不好用,所以推薦使用conemu conemu安裝與配置 conemu官網,選擇相應的版本下載安裝即可。 啟動conemu,

人生努力重要的是選擇,與時俱進是成功的源泉。

如果有一天你隔壁開火鍋店的張三,賣手機賣得比你好,你不用覺得驚訝。因為,這是一個跨界的時代,每一個行業都在整合,都在交叉,都在相互滲透。 移動網際網路改變生活 未來我們的生活會是什麼樣子呢?我們設想一下,晚上帶著家人去吃飯,拿出手機點選附近餐廳,看完餐廳介紹,對比

QList介紹(QListQVector快,這是由它們在內存中的存儲方式決定的。QStringList是在QList的基礎上針對字符串提供額外的函數。at()操作操作符[]快,因為它不需要深度復制)非常實用

都是 int 快速 link tar pen 默認 last from FROM:http://apps.hi.baidu.com/share/detail/33517814 今天做項目時,需要用到QList來存儲一組點。為此,我對QList類的說明進行了如下翻譯。

】TeXmacs一個真正“所見即所得”的排版系統

min 重新 -c href .org 所見 思維 pac acs TeXmacs:一個真正“所見即所得”的排版系統 好久沒有推薦過自己喜歡的軟件了,現在推薦一款我在美國做數學作業的私家法寶:TeXmacs。我恐怕不可能跟以前那麽有閑心寫個長篇的 TeXmacs 說明文

Java程序員 選擇努力重要

Java 程序人生 有人說,這個社會是一個極為殘酷的社會, 殘酷到,它只認可選擇否認努力; 殘酷到,它只看功勞不看苦勞; 作為程序員,我們的出路在哪裏 作為程序猿, 在這樣一個互聯網時代背景下,我們是很幸運的,我們能夠拿著比別的職業更高的工資,坐在高檔寫字樓,在冬暖夏涼辦公環境下,在鍵盤上揮舞著手

北京java程式設計師,分享一個努力能決定人生的公式

  之前在羅振宇在公號上分享過一個“人生演算法”,他的公式是這樣的: 成就=核心演算法*大量重複動作的平方 這就是我要分享的比努力更能決定人生的公式。   如果說人生就是一條單向列車,想要更好更快的到達目的地,需要兩個因素。 核心演算法:即一條相對而

Roger VerBCHBCE適合機構投資者

據外媒ambcrypto報道,bitcoin.com網站建立者Roger Ver在接受採訪時表示,BCH比BCE更適合機構投資者,並將原因解釋為:最初驅動比特幣價格攀升和大規模採用的基本面已經不存在了,現在這個基本面存在於比特幣現金中。Roger Ver是早期的比特幣參與

程式設計師跳槽面試看見公司老大也來面試,網友老大尷尬

程式設計師跳槽已經成了重要的一個話題,只有極少的一部分的程式設計師才會在一家公司呆上10年以上,更多的程式設計師把騰訊、阿里這樣的網際網路大型公司當成職業生涯的目標 所以發生了下面的場景,一個程式設計師去阿里面試,既然在休息室遇到老大,他也來面試。好尷尬。~確認過眼神,你是

物致DIYOpenMV4——OpenMV3快,高,強的影象識別DIY神器來了!

物致DIY:OpenMV4——比OpenMV3更快,更高,更強的影象識別DIY神器來了! 2018年10月26日 10:16:36 物致-皈依 閱讀數:762 版權宣告:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/a18156289516/arti

Java併發程式設計Lock(synchronized靈活的同步)

Lock 是 java.util.concurrent.locks 包下的介面,Lock  實現提供了比使用 synchronized 方法和語句可獲得的更廣泛的鎖定操作,它能以更優雅的方式處理執行緒同步問題,我們拿Java執行緒(二)中的一個例子簡單的實現一下和 s

Mustache模板技術,一個freemarker輕量級的模板引擎

一、初識Mustache 同樣也是看Dropwizard才知道這個東西的,以前一直是知道諸如freemarker這樣的模板引擎,這個是頭一次聽說,但是聽周圍的朋友說最早這個東西是出自於JS的,Dropwizard推薦使用這個東西,而且到mustache官網看了一下,發現十

[]哈佛教授勤奮重要的是學習力

管理 sina 清晰 心情 有效 全部 小時 培養 href 本文轉自:http://blog.sina.com.cn/s/blog_181b5b47e0102xmyt.html 從來沒有一個時代,像今天這樣需要不斷地、隨時隨地、快速高效地學習。 那種依靠在學校時學到的知

程式設計師吐槽一個不到五千人的網際網路小廠,年底裁員京東

一名程式設計師在某網際網路公司工作,到年底卻遇到了裁員,於是吐槽了一番:年底遇到了跟京東一樣的待遇,裁員,在一個不到5000人的網際網路小廠,不同的是,我們公司裁員的指標是20%比京東更狠。現在hr讓我自動提離職申請,說這個月的考勤自由,有點焦慮,有點慌。各位大佬,遇到這種情況是怎麼處理的呢?

一個故事告訴你特幣的原理及運作機制

轉自:http://blog.codinglabs.org/artic ... -easy.html#jtss-tqq週末花時間看了一些比特幣原理相關的資料,雖然不敢說把每個細節都完全搞懂了,不過整體思路和關鍵部分的主要原理還是比較明白。寫一篇文章分享給大家。這篇文章的定位會比較科普,儘量用類比的

Android SwipeRefreshLayout漂亮和強大的下拉刷新控件Android-MaterialRefreshLayout

swipe app ant log functions done span simple list 這是一個下拉刷新的控件,它比SwipeRefreshLayout更加漂亮和強大。它易於使用並且支持API LEVEL >= 8。希望你能夠喜歡。 Now let me

ResNeXt——與 ResNet 相比,相同的參數個數,結果一個 101 層的 ResNeXt 網絡,和 200 層的 ResNet 準確度差不多,但是計算量只有後者的一半

模式 這樣的 cap dfa 不同 dual 重復 ORC 但是 from:https://blog.csdn.net/xuanwu_yan/article/details/53455260 背景 論文地址:Aggregated Residual Transformati

第一篇博客一個雙色球遊戲 、以及個人介紹

面向 都是 ued 計算機專業 bean b- view 需要 第一次 一、雙色球小遊戲 雙色球類(6紅1藍): 1 package top.liaoyingpeng.bean; 2 3 import java.util.Arrays; 4 5 publi

讀書筆記—情商為什麼情商智商重要

情商:為什麼情商比智商更重要 作者:【美】丹尼爾·戈爾曼 版權資訊 智商高,情商也高的人,春風得意。智商不高,情商高的人,貴人相助。智商高,情商不高的人,懷才不遇。智商不高,情商也不高的人,一事無成。 專家導讀1 和諧領導力體系:自己與自己和諧、自己與他人和諧、個人與組織和諧。這三個層次的和諧分

Screen好用的神器tmux

安裝並啟動 tmux tmux 應用程式的名稱來源於終端(terminal)複用器(muxer)或多路複用器(multiplexer)。換句話說,它可以將您的單終端會話分成多個會話。 它管理視窗和窗格: 視窗(window)是一個單一的檢視 - 也就是終端中顯示的各種東西。 窗格(pane)是該