日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Caffe代码导读(2):LMDB简介

發布時間:2025/3/21 198 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Caffe代码导读(2):LMDB简介 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

閃電般的內存映射型數據庫管理(LMDB)

簡介

LMDB是基于二叉樹的數據庫管理庫,建模基于伯克利數據庫的應用程序接口,但做了大幅精簡。整個數據庫都是內存映射型的,所有數據獲取返回數據都是直接從映射的內存中返回,所以獲取數據時沒有malloc或memcpy發生。因此該數據庫仍是非常簡單的,因為它不需要自己的頁面緩存層,并且非常高效、省內存。它在語義上完全符合ACID(原子性、一致性、隔離性、持久性)。當內存映射為只讀時,數據庫完整性不會被應用程序的迷失指針寫破壞。

?

該庫也是線程可見的,支持來自多進程/線程的并發讀/寫訪問。數據頁使用寫時復制策略,故沒有活動數據頁被覆蓋寫入。這也提供了保護機制,經歷系統崩潰后不需要特殊恢復過程。寫入過程為完全串行的;一次只有一個寫會話是活動的,這保證了寫入者不可能死鎖。數據庫結構是多個版本,所以讀出者運行時不加鎖。寫入這不會阻塞讀出者,讀出者也不會阻塞寫入者。

?

不像其他熟知的數據庫機制(使用寫前會話日志或數據僅追加寫),LMDB操作時不需要保持會話。前面兩種都需要周期性地檢查或者壓縮他們的日志或數據庫文件,否則會無限增長。LMDB記錄數據庫內的空頁面,在新的寫入操作時重用他們,所以正常使用時數據庫尺寸不會無限增加。

?

內存映射可以用作只讀映射或讀寫映射。默認為只讀映射,這提供了對破壞完全的免疫力。使用讀寫模式提供了更高的寫性能,但增加了被惡意寫入破壞數據庫的可能性。當然如果你的應用代碼是已知無bug的,那么這不是個嚴重的問題。

總結

以上是生活随笔為你收集整理的Caffe代码导读(2):LMDB简介的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。