ChainBase-快速版本控制的事務性資料庫
特征
- 支持具有多個索引的多個物件(表) (基于boost :: multi_index_container)
- 狀態在多個程序之間是持久且可共享的
- 具有撤銷更改功能的嵌套事務寫入
并發訪問
默認情況下,ChainBase不提供任何同步,并具有與任何boost :: multi_index_container相同的并發限制,這意味著兩個或多個執行緒可以同時讀取資料庫,但是所有寫操作必須由互斥鎖保護,
如果注意在資料庫上使用行程間鎖定,則多個行程可能會打開同一資料庫,
##持久性
默認情況下,僅在請求或程式退出時才將資料重繪到磁盤,只要程式在呼叫db.modify()或db.create()的程序中不會崩潰,資料庫的內容就應保持一致狀態,這意味著您應最大程度地減少用于 創建 和(或) 修改 狀態的lambda的復雜性,
如果作業系統崩潰或計算機掉電,則資料庫將處于不確定狀態,具體取決于作業系統能夠將哪些記憶體頁面同步到磁盤,
ChainBase設計用于與區塊鏈應用程式一起使用,在區塊鏈應用程式中,區塊的日志可用于在斷電時保護狀態,可以重播此塊日志以重新生成完整的資料庫狀態,
與其它區塊鏈資料庫比較
區塊鏈應用程式依賴于每秒能夠進行數百萬次讀/寫操作的高性能資料庫, 另外,區塊鏈在“最終一致性”的基礎上運行,這意味著根據所使用的共識協議,對資料庫所做的任何更改都可能在未知的時間內被逆轉,
例如位元幣使用的libbitcoin資料庫,使用類似的技術(記憶體映射檔案)可實作較高的性能,但它無法實作多個索引 或 撤消歷史記錄,
例如以太坊使用的LevelDB資料庫, 它提供了一個簡單的鍵/值資料庫,但是相對于記憶體映射檔案實作而言,性能較差,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/253540.html
標籤:區塊鏈
上一篇:區塊鏈技術主要特點
下一篇:計算機安全、密碼學復習(攻擊分類、安全服務分類、AES、公鑰加密、素數、RSA、訊息認證、散列函式、MD5、直接數字簽名、仲裁數字簽名、對稱密碼學、資訊戰、隱寫術)
