0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

事務性日志結構文件系統(tǒng)的設計及實現(xiàn)

SSDFans ? 來源:SSDFans ? 2023-10-16 16:01 ? 次閱讀

本文發(fā)表于FAST 2022,探討日志結構文件系統(tǒng)層面的事務支持。本文主要對F2FS進行了支持事務的修改,實現(xiàn)了支持ACID事務特性的文件系統(tǒng)層面支持。本文通過實驗測試了SQLite和ROCKSDB在支持事務的日志結構文件系統(tǒng)上的運行效率,結果顯示本文實現(xiàn)的事務支持可以簡化應用編程復雜度,顯著提高應用性能。

01背景及動機

目前的應用程序在運行涉及多個文件修改的事務時對于系統(tǒng)的沖突一致性有很高的要求。但是由于在文件系統(tǒng)層面的事務支持的缺失,現(xiàn)在的應用必須在上層使用復雜的協(xié)議來保證事務在涉及多個文件的更新操作時的一致性,從而引入了更多的寫請求和同步命令,對于應用的運行性能會造成很大影響。

當前的事務支持非常有限,部分解決方案只能滿足事務ACID(原子性、一致性、孤立性、持久性)的部分特性,一些方法以犧牲應用性能為代價來支持事務的全部特性,還有一些方案依賴硬件上的配合來實現(xiàn)事務的支持,因此本文想要實現(xiàn)一種不對性能產(chǎn)生影響,也不需要底層硬件配合的操作系統(tǒng)層面的事務支持。

02exF2FS的設計及實現(xiàn)

本文定義了事務性日志結構文件系統(tǒng)應該滿足的三條限制并在F2FS中進行了逐個實現(xiàn):

1. Membership-Oriented Transaction

a)功能解釋:文件系統(tǒng)支持每個事務可以涉及多個文件的修改,而不局限于在一個事務中只能進行一個事務的修改。

b)實現(xiàn)方法:在內核中新定義一個事務文件組的對象,對一個事務涉及的所有文件和臟頁進行管理,具體架構如下圖所示

71ca11d0-64a1-11ee-939d-92fbcf53809c.png

新定義了一個內核實體:事務文件組,包含一個事務涉及的所有需要修改的文件、需要寫回的臟頁(數(shù)據(jù)頁+結點頁),用于優(yōu)化頁面寫回和垃圾回收的塊重定位記錄的鏈表和用于事務持久化的主提交塊。

exF2FS通過事務文件組這個對象,應用可以指定需要包含在一個事務中的文件,從而支持可以涉及多個文件的修改的事務。

2. Stealing enabled Transaction

a)功能解釋:允許未提交事務的臟頁的寫回,可以用比較小的內存占用實現(xiàn)涉及數(shù)據(jù)量比較大的事務。

b)實現(xiàn)方法:

i.延遲被寫回的頁面的非法化,防止垃圾回收將舊位置的數(shù)據(jù)刪除;

ii.將涉及未提交事務的節(jié)點頁保留在內存中,進行標記防止檢查點在事務提交之前將其持久化。

71ee2c96-64a1-11ee-939d-92fbcf53809c.png

3. Shadow Garbage Collection

a)功能解釋:垃圾回收模塊可以透明地遷移選中的回收塊,對進行中的事務不會造成任何影響。

b)實現(xiàn)方法:保留一塊專門的頁緩存區(qū)域用于與事務相關的頁面的垃圾回收,同時針對選中的被回收塊類型的不同采用不同的回收策略。

7211b27e-64a1-11ee-939d-92fbcf53809c.png

03實驗評估

1. 設備IO請求次數(shù)的減少

722aac3e-64a1-11ee-939d-92fbcf53809c.png

從實驗結果可以看出,原始的F2FS支持的SQLite事務在進行執(zhí)行三條插入操作的事務時會引入32次寫請求和15次的同步請求,整個事務的執(zhí)行時間需要耗時55ms;而對于優(yōu)化后的exF2FS,其產(chǎn)生的寫請求只有三次,且事務的執(zhí)行時間縮短到了1.6ms,在執(zhí)行時間和請求次數(shù)的減少上體現(xiàn)出了很明顯的優(yōu)化效果。

2. 吞吐量的提升

72405a0c-64a1-11ee-939d-92fbcf53809c.png

以執(zhí)行插入操作為例,exF2FS的事務執(zhí)行的吞吐量可以達到原始F2FS在持久化日志模式(圖中F2FS PERSISTENT)下的24倍。

3. 每個事務產(chǎn)生的寫量的減少

724de80c-64a1-11ee-939d-92fbcf53809c.png

在全部的六種事務支持方法中,exF2FS產(chǎn)生了最少的總寫量,與原始F2FS在持久化日志模式的事務支持相比,exF2FS的多文件事務的寫量可以減少5/6.

04總結

這項工作成功地解決了日志結構文件系統(tǒng)中事務支持的三個主要問題:多文件支持、內存占用的節(jié)省和透明垃圾回收。使用本文提出的事務日志結構文件系統(tǒng),我們可以大大簡化應用程序編程,并可以在包括 SQLite、RocksDB 和應用程序安裝在內的許多流行應用程序中顯著提高應用程序性能。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 文件系統(tǒng)

    關注

    0

    文章

    294

    瀏覽量

    20293
  • 應用程序
    +關注

    關注

    38

    文章

    3322

    瀏覽量

    58747
  • 日志
    +關注

    關注

    0

    文章

    143

    瀏覽量

    10823
  • SQlite
    +關注

    關注

    0

    文章

    81

    瀏覽量

    16315

原文標題:聊聊日志結構文件系統(tǒng)層面的事務支持

文章出處:【微信號:SSDFans,微信公眾號:SSDFans】歡迎添加關注!文章轉載請注明出處。

收藏 0人收藏

    評論

    相關推薦
    熱點推薦

    嵌入式文件系統(tǒng)μC/FS的日志使用

    ,基于FAT的文件系統(tǒng)解決方案可能是增加系統(tǒng)可靠的一個的來源,為了提供掉電保護,F(xiàn)AT實現(xiàn)需配備日志模塊。
    發(fā)表于 09-19 16:41

    Arm事務性內存擴展概述

    本指南介紹事務性內存,它允許自動執(zhí)行代碼,而無需始終實現(xiàn)限制性能的同步方法。 ARM事務內存擴展(TME)是事務內存的ARM實現(xiàn)。 現(xiàn)代復雜
    發(fā)表于 08-17 07:57

    XfS文件系統(tǒng),XfS文件系統(tǒng)是什么意思

    XfS文件系統(tǒng),XfS文件系統(tǒng)是什么意思 XfS文件系統(tǒng)是SGI開發(fā)的高級日志文件系統(tǒng),XFS極具伸縮
    發(fā)表于 03-29 10:39 ?4349次閱讀

    FAT文件系統(tǒng)的組織結構

    FAT文件系統(tǒng)的組織結構,很好的學習資料,快來下載吧
    發(fā)表于 02-16 16:35 ?2次下載

    Linux日志文件系統(tǒng)解析

    時,如何提供更好的完整。此外本文還介紹了現(xiàn)行的幾種日志文件 系統(tǒng)和下一代日志文件系統(tǒng)。 定義
    發(fā)表于 11-01 15:23 ?0次下載
    Linux<b class='flag-5'>日志</b><b class='flag-5'>文件系統(tǒng)</b>解析

    可以了解的Linux 文件系統(tǒng)結構

    Linux中的文件是什么?它的文件系統(tǒng)又是什么?那些配置文件又在哪里?我下載好的程序保存在哪里了?在 Linux 中文件系統(tǒng)是標準結構的嗎?
    發(fā)表于 04-27 14:06 ?812次閱讀
    可以了解的Linux <b class='flag-5'>文件系統(tǒng)</b><b class='flag-5'>結構</b>

    Linux系統(tǒng)日志文件中的JFS文件系統(tǒng)

    嵌入式linux中文站向大家介紹一下JFS文件系統(tǒng)。Linux系統(tǒng)日志文件中的JFS系統(tǒng), JFS 由IBM 公司開發(fā),最初出現(xiàn)在AIX 操
    發(fā)表于 05-05 14:10 ?5282次閱讀
    Linux<b class='flag-5'>系統(tǒng)</b><b class='flag-5'>日志</b><b class='flag-5'>文件</b>中的JFS<b class='flag-5'>文件系統(tǒng)</b>

    汽車電子系統(tǒng)中閃存文件系統(tǒng)的應用設計與研究

    事務文件系統(tǒng)可以通過處理設備中的事務日志來動態(tài)建立文件系統(tǒng)的層次結構。這種操作發(fā)生在
    的頭像 發(fā)表于 04-06 15:11 ?2027次閱讀
    汽車電子<b class='flag-5'>系統(tǒng)</b>中閃存<b class='flag-5'>文件系統(tǒng)</b>的應用設計與研究

    文件系統(tǒng)中的日志系統(tǒng)是如何實現(xiàn)

    日志 本文來聊聊文件系統(tǒng)中的日志系統(tǒng),來看一個簡單的日志系統(tǒng)是如何
    的頭像 發(fā)表于 09-29 11:04 ?2431次閱讀
    <b class='flag-5'>文件系統(tǒng)</b>中的<b class='flag-5'>日志</b><b class='flag-5'>系統(tǒng)</b>是如何<b class='flag-5'>實現(xiàn)</b>的

    xv6的文件系統(tǒng)是如何實現(xiàn)

    文件系統(tǒng) 。本文直接來看 xv6 的文件系統(tǒng)這部分是如何實現(xiàn)的。 文件系統(tǒng)布局 再來系統(tǒng)的看看 xv6
    的頭像 發(fā)表于 10-12 18:00 ?2721次閱讀
     xv6的<b class='flag-5'>文件系統(tǒng)</b>是如何<b class='flag-5'>實現(xiàn)</b>的

    FATFS文件系統(tǒng)詳解

    采用的獨特的文件系統(tǒng)結構CDFS:CDFS是大部分的光盤的文件系統(tǒng)exFATFATFS文件系統(tǒng)FATFS是一個完全免費開源的FAT 文件系統(tǒng)
    發(fā)表于 11-29 09:51 ?30次下載
    FATFS<b class='flag-5'>文件系統(tǒng)</b>詳解

    基于OpenHarmony3.1的LittleFS文件系統(tǒng)hdf驅動實現(xiàn)

    ?? ? LittleFS是一個小型的Flash文件系統(tǒng),它結合日志結構(log-structured)文件系統(tǒng)和COW(copy-on-write)
    的頭像 發(fā)表于 09-30 18:32 ?1923次閱讀

    基于OpenHarmony3.1的LittleFS文件系統(tǒng)hdf驅動實現(xiàn)

    一、簡介LittleFS是一個小型的Flash文件系統(tǒng),它結合日志結構(log-structured)文件系統(tǒng)和COW(copy-on-write)
    的頭像 發(fā)表于 06-22 09:42 ?1417次閱讀
    基于OpenHarmony3.1的LittleFS<b class='flag-5'>文件系統(tǒng)</b>hdf驅動<b class='flag-5'>實現(xiàn)</b>

    【嵌入式SD NAND】基于FATFS/Littlefs文件系統(tǒng)日志框架實現(xiàn)

    文章目錄 【嵌入式】基于FATFS/Littlefs文件系統(tǒng)日志框架實現(xiàn) 1. 概述 2. 設計概要 3. 設計實現(xiàn) 3.1 初始化 `init` 3.2
    的頭像 發(fā)表于 03-14 18:13 ?1319次閱讀
    【嵌入式SD NAND】基于FATFS/Littlefs<b class='flag-5'>文件系統(tǒng)</b>的<b class='flag-5'>日志</b>框架<b class='flag-5'>實現(xiàn)</b>

    【嵌入式SD NAND】基于FATFS/Littlefs文件系統(tǒng)日志框架實現(xiàn)

    文章目錄【嵌入式】基于FATFS/Littlefs文件系統(tǒng)日志框架實現(xiàn)1.概述2.設計概要3.設計實現(xiàn)3.1初始化`init`3.2日志
    的頭像 發(fā)表于 03-14 18:12 ?1481次閱讀
    【嵌入式SD NAND】基于FATFS/Littlefs<b class='flag-5'>文件系統(tǒng)</b>的<b class='flag-5'>日志</b>框架<b class='flag-5'>實現(xiàn)</b>

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品