1. 程式人生 > >一個迄今為止最快的並發鍵值存儲庫FASTER誕生

一個迄今為止最快的並發鍵值存儲庫FASTER誕生

for ali 位置 bsp 阻止 sig 器) bucket hub

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數據庫,它使用簡單的鍵/值方法進行數據存儲。它包含兩項重要創新:

  • 緩存友好,並發和無鎖存的哈希索引。它維護日誌中記錄的邏輯指針。FASTER哈希索引是指向一個緩存行大小的 hash buckets數組,每個都有8字節的條目來保存哈希標簽。它還包含指向存儲記錄的邏輯指針。。
  • 一個新的並發和混合日誌記錄分配器這有助於支持包括快速存儲(例如雲存儲和SSD)和主存儲器的索引。

是什麽讓FASTER與眾不同?

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

因此,FASTER甚至能夠超越英特爾TBB hash map等純內存數據結構。微軟表示,它的性能遠遠優於今天流行的諸如RocksDB和Redis等鍵值存儲的緩存系統。

除此之外,FASTER還為故障恢復提供支持,因為它包含一個恢復策略,有助於將系統以低成本恢復到最近的一致狀態。這與傳統數據庫系統中的恢復機制不同,因為它不涉及阻止或創建單獨“預寫的日誌”。

有關更多信息,請查看官方研究報告。

FASTER項目Github地址:https://github.com/Microsoft/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/

一個迄今為止最快的並發鍵值存儲庫FASTER誕生