<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                TokuDB的日志跟InnoDB不一樣,它有兩類文件: 1. redo-log文件(以.tokulog[序號]為擴展名) 2. rollback日志文件(tokudb.rollback) 接下來就簡單嘮嘮這兩類文件的內部細節。 **1) redo-log** 記錄的不是頁而是對Fractal-Tree索引的操作日志。 log格式: ~~~ | length | command | lsn | content | crc| ~~~ content里記錄的是具體的日志內容,比如insert操作,content就是: ~~~ | file-no | txnid | key | value| ~~~ TokuDB在做恢復的時候,會找到上次checkpoint時的LSN位置,然后讀取log逐條恢復。 為了確保log的安全性,redo-log也支持從后往前解析。 當一個log的MAX_LSN小于已完成checkpoint的LSN時,就表明這個log文件可以安全刪除了。 那么問題來了: 如果用戶執行了一個“大事務”,比如delete一個大表,耗時很長,log文件豈不是非常多,一直等到事務提交再做清理? 不用的,這就是tokudb.rollback的作用了。 **2) tokudb.rollback** 用戶的事務操作(insert/delete/update寫操作)都會寫一條日志到tokudb.rollback,存儲的格式是: ~~~ |txnid | key| ~~~ 記錄日志偽碼如下: ~~~ void ft_insert(txn,...) { if (txn) { toku_logger_save_rollback_cmdinsert(...); } if (do_logging && logger) { toku_log_enq_insert(....); } } ~~~ 如果是事務,每個操作會寫2條日志(1條redo,1條rollback)。 如果用戶執行了commit/rollback,TokuDB會根據txnid在tokudb.rollback里查到key(如果該entry不在cache里),再根據key在索引文件里找到相應的事務信息并做相應的commit/rollback操作。 tokudb.rollback可以看做是一個事務的undo日志,記錄的是的關系映射。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看