.NET的存儲引擎(虛擬文件系統):TmStorage

TmStorage 是一個用 .NET 開發的虛擬文件系統,用來存儲流數據。使用扁平結構進行數據存儲,通過類型為 GUID 的流 id 來引用數據。

TmStorage支持完整的事務。在未來它還將支持高速緩存和快照

TmStorage 使用一個主文件用來存儲所有流數據。主文件被分成多個可變長度的段,每個段只由一個流來占用。每個流由 0 到多個段組成。

.NET的存儲引擎(虛擬文件系統):TmStorage

每個段包含一個段的元數據,這些元數據存放在段的起始位置,包含如下信息:

  • 段大小 (Int64)

  • 下一個段的位置,如果是最后一個段則為 null(Int64)

  • 元數據的校驗和 (Int)

為了防止碎片化嚴重,段大小固定為 512 字節的整數倍。

使用實例:

Image image = Image.FromFile("c:\\image.png");
Storage storage = new Storage("c:\\images.storage", "c:\\images.storagelog");
Guid streamId = Guid.NewGuid();

storage.StartTransaction();
try{
    Stream stream = storage.CreateStream(streamId);
    image.Save(stream, ImageFormat.Png);
    stream.Close();

    storage.CommitTransaction();
}finally{
    storage.RollbackTransaction();
}

項目主頁:http://www.baiduhome.net/lib/view/home/1416634112305

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!