<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>

                [TOC] # 讀寫流程 ## 日志寫 在執行 DML 操作時,為了保證事務性,會產生對應的 redo log,記錄對數據行的插入/更新/刪除操作,我們將這些日志稱之為 clog。 OceanBase 數據庫單臺物理機上啟動一個 observer 進程,有幾萬~十萬 partition,所有 partition 同時共用一個 clog 文件,當寫入的 clog 文件超過配置的閾值(默認為 64MB)時,會打開新的 clog 文件進行寫入。 observer 收到的某個 partition leader 的寫請求產生的 clog、其他節點 observer 同步過來的 clog(存在 partition 同在一個 paxos group),都寫入 log buffer 中,由單個 IO thread 批量刷入 clog 文件。 寫請求在 partition leader 所在 observer 上等待落盤同時并行同步給其他 observer, 多數派成功后返回 client 成功。 ![](https://img.kancloud.cn/45/4a/454a93e7feec908ab08e2e6577ce7e7b_1500x687.png) ## 數據寫 與傳統數據庫的刷臟頁機制不同,OceanBase 數據庫的存儲引擎基于 LSM Tree 架構,對于數據塊的寫主要是在轉儲和合并階段。在 MemTable 轉儲為 SSTable 時,也會在靜態數據中記錄當前的 clog 日志回放點,在轉儲完成之后,對應 clog 日志回放點之前的日志在理論上就可以被回收了,但通常這些日志文件并不會被立即刪除,而是等到日志空間不足時再進行日志文件的重用。 在進行轉儲/合并時,對于一些較大的 SSTable,我們可能會將一個 SSTable 的數據拆分到多個線程中并行進行轉儲/合并,對于一張用戶表,可以通過表級參數 tablet\_size 來調整并行合并的粒度,當 SSTable 的大小超過表的 tablet\_size 時,就會按照 tablet\_size 對數據進行拆分,開啟并行合并;但一般來說,并行合并的并行度不會超過配置的合并線程數。 ## 查詢流程 對于數據查詢,大體上可以分為以下這么幾種:單點查詢 Get、多點查詢 MultiGet、單 range 掃描、多 range 掃描,以及對于插入操作需要處理的 Exist 查詢。 Get/MultiGet/Exist 的查詢流程是類似的,如下圖所示: ![](https://img.kancloud.cn/db/00/db000ab73db2c6ad3cb51eb4ca8a9754_836x750.png) Scan/MultiScan的查詢流程是類似的,如下圖所示: ![](https://img.kancloud.cn/c6/06/c60615f7a7004ecc9000d39d05ee1513_824x606.png)
                  <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>

                              哎呀哎呀视频在线观看