天天看點

每秒高達1.6億次操作的并發鍵值存儲庫 FASTER 誕生

每秒高達1.6億次操作的并發鍵值存儲庫 FASTER 誕生

FASTER

在過去十年中,雲中的資料密集型應用程式和服務有了巨大的增長。資料在各種邊設施(例如,裝置,浏覽器和伺服器)上建立,并由雲應用程式處理用來獲得資料價值或做出決策。應用程式和服務可以處理收集的資料,也可以實時監控資料。這些應用程式通常是更新密集型的,并且涉及大量的狀态,超出了适合主存儲器的處理能力。但是,它們在其通路模式中顯示出重要的時間局部性(時間局部性解釋維基百科=>https://en.wikipedia.org/wiki/Locality_of_reference)。一種用于點運算的新的鍵值存儲。FASTER将高速緩存優化的并發哈希索引與“混合日志”結合在一起:跨越主記憶體和存儲的并發日志結構記錄存儲,并且支援記憶體中“熱插拔”的快速就地更新。FASTER擴充了标準鍵值存儲接口,以處理讀取 - 修改 - 寫入,blind 更新和基于CRDT的更新。實驗表明,與目前廣泛部署的存儲庫相比,FASTER在單台機器上實作了更高的吞吐量(每秒高達1.6億次操作),并且當工作負載大小适合記憶體大小時,他的性能将遠勝于純記憶體資料結構的性能。

背景

微軟研究團隊于2018年6月份在SIGMOD 宣布了一項名為FASTER的新的key-value存儲庫。FASTER支援快速和頻繁的資料查找。它還有助于解決在當今雲時代的應用程式更新大量狀态資訊的問題。

讓我們以物聯網為一種場景。數十億裝置報告和更新狀态,如每個裝置的性能計數器。這将導緻應用程式未充分利用機器上的存儲庫和網絡等資源。他能更快地幫助解決此問題, 因為它利用這些應用程式中的時間位置來控制系統記憶體占用量。

根據微軟的說法,“FASTER是一個單節點共享記憶體鍵值存儲庫”。鍵值存儲是NoSQL資料庫,它使用簡單的鍵/值方法進行資料存儲。它包含兩項重要創新:

  • 緩存友好,并發和latch-free (闩鎖釋放,解釋連結:https://www.dbtan.com/2010/05/latch-free.html)的哈希索引。它維護日志中記錄的邏輯指針。FASTER哈希索引是指向一個緩存行大小的 hash buckets數組,每個都有8位元組的條目來儲存哈希标簽。它還包含指向存儲記錄的邏輯指針。。
  • 一個新的并發和混合日志記錄配置設定器。這有助于支援包括快速存儲(例如雲存儲和SSD)和主存儲器的索引。

是什麼讓FASTER與衆不同?

傳統的鍵值存儲利用日志結構記錄資料。但是,FASTER是不同的,因為它有一個混合日志,它結合了日志結構和讀取副本更新(适用于外部存儲)和就地更新(适用于性能更高的記憶體)。是以,位于存儲器中的混合日志的頭部使用讀取 - 複制 - 更新,而主存儲器中的混合日志尾部使用就地更新。記憶體中有一個位于這兩個區域之間的隻讀區域。它為核心記錄提供了另一個被複制回尾部的機會。這捕獲了更新的臨時位置,并允許在記憶體中自動的收集熱記錄。

是以,FASTER甚至能夠超越英特爾TBB hash map等純記憶體資料結構。微軟表示,它的性能遠遠優于今天流行的諸如RocksDB和Redis等鍵值存儲的緩存系統。

除此之外,FASTER還為故障恢複提供支援,因為它包含一個恢複政策,有助于将系統以低成本恢複到最近的一緻狀态。這與傳統資料庫系統中的恢複機制不同,因為它不涉及阻止或建立單獨“預寫的日志”。

有關更多資訊,請檢視官方研究報告。

FASTER項目Github位址:https://github.com/Microsoft/FASTER

每秒高達1.6億次操作的并發鍵值存儲庫 FASTER 誕生

 價值:

有人會問,有了這個FASTER,既然他速度這樣快是不是可以代替redis或者mongodb,答案是目前不能,因為FASTER是核心級的,和Google的leveldb差不多層級,FASTER速度非常快毋庸置疑,但是目前缺少更高複雜業務場景的支援,比如叢集,資料一緻性之類的商用需求,不過如此誘人的性能必定吸引更多的人去投入FASTER中開發出類似redis和mongodb的産品出來,性能也必定更強,說不定redis後期底層就用FASTER改寫了。🤭

翻譯參考:

https://hub.packtpub.com/say-hello-to-faster-a-new-key-value-store-for-large-state-management-by-microsoft/

https://www.microsoft.com/en-us/research/publication/faster-concurrent-key-value-store-place-updates/

https://www.microsoft.com/en-us/research/blog/microsoft-unveils-faster-key-value-store-large-state-management/

每秒高達1.6億次操作的并發鍵值存儲庫 FASTER 誕生

作者:Chaunce

來源:http://www.cnblogs.com/xiaoliangge/

GitHub:https://github.com/liuyl1992

個人位址:http://blog.chaunce.top

公衆号請搜:架構師進階俱樂部 SmartLife_com

每秒高達1.6億次操作的并發鍵值存儲庫 FASTER 誕生

聲明:原創部落格請在轉載時保留原文連結或者在文章開頭加上本人部落格位址,如發現錯誤,歡迎批評指正。凡是轉載于本人的文章,不能設定打賞功能等盈利行為

繼續閱讀