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

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ### 漸進式rehash 擴展或收縮哈希表需要將 ht[0]里面的所有鍵值對 rehash 到 ht[1]里面, 但是, 這個 rehash 動作并不是一次性、集中式地完成的, 而是分多次、漸進式地完成的。 這樣做的原因在于,如果哈希表里保存的鍵值對數量很大時, 如:四百萬、四千萬甚至四億個鍵值對, 那么一次性將這些鍵值對全部 rehash 到 ht[1] 的話,龐大的計算量(需要重新計算鏈表在桶中的位置)可能會導致服務器在一段時間內停止服務(redis是單線程的,如果全部移動會引起客戶端長時間阻塞不可用)。 因此, 為了避免 rehash 對服務器性能造成影響, 服務器不是一次性將 ht[0]里面的所有鍵值對全部 rehash 到 ht[1], 而是分多次、漸進式地將 ht[0]里面的鍵值對慢慢地 rehash 到 ht[1] 以下是哈希表漸進式rehash的詳細步驟: (1)為ht[1]分配空間,讓dict字典同時持有 ht[0] 和 ht[1] 兩個哈希表。 (2)在字典中維持一個索引計數器變量rehashidx,并將它的值設置為0,表示rehash工作正式開始。 (3)在rehash進行期間,每次對字典執行添加、刪除、查找或者更新操作時,程序除了執行指定的操作以外,還會順帶將ht[0]哈希表在 rehashidx索引(table[rehashidx]桶上的鏈表)上的所有鍵值對rehash到ht[1]上,當rehash工作完成之后,將rehashidx屬性的值增一,表示下一次要遷移鏈表所在桶的位置。 (4)隨著字典操作的不斷執行,最終在某個時間點上,ht[0]的所有桶對應的鍵值對都會被rehash至ht[1],這時程序將rehashidx屬性的值設為-1,表示rehash操作已完成。 漸進式 rehash 的好處在于它采取分而治之的方式, 將 rehash 鍵值對所需的計算工作均灘到對字典的每個添加、刪除、查找和更新操作上, 從而避免了集中式 rehash 而帶來的龐大計算量
                  <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>

                              哎呀哎呀视频在线观看