與鎖的比較 相同點 如果用鎖保護臨界區(qū),那么同一時刻只會有一個線程在臨界區(qū)內搁凸,其他線程都在臨界區(qū)外面屠阻。lock-free 是所有線程都可以進臨界區(qū),但是最后只有一個線程可以繼...
索引 索引為什么我們需要索引實現(xiàn)優(yōu)缺點怎么正確地使用索引 為什么我們需要索引 加快數(shù)據(jù)庫的查詢速度又憨。 實現(xiàn) 索引的基本原理:保存一些元數(shù)據(jù)作為路標翠霍,幫助我們快速查找數(shù)據(jù)。如果...
層級壓縮 為什么需要壓縮 因為 sstable 文件越來越多蠢莺,會耗盡磁盤空間寒匙,并且也會影響查找效率,所以需要壓縮和合并 sstable躏将。我們把修改锄弱、刪除都當作添加操作導致了 ...
leveldb 的基本原理 背景 leveldb 是一個持久化的鍵值存儲數(shù)據(jù)庫引擎。google 將 leveldb 和 paxos 結合祸憋,搞出了一個分布式存儲系統(tǒng) bigT...
安全性 安全性是指Raft需要保證每個狀態(tài)機需要以相同的順序執(zhí)行相同的命令会宪。我們前面所說的領導者選舉和日志復制的機制并不足以保證這個要求。 選舉約束 前面所講的選舉機制蚯窥,還存...
領導者選舉 什么是領導者 Raft 首先選舉一個服務器作為領導者,然后讓這個領導者全面負責可復制日志的管理赎瞎。領導者需要從客戶端接受日志條目牌里,將這些日志條目復制到別的服務器,告...
Quorum NWR 自定義一致性 Quorum NWR 自定義一致性問題原理實現(xiàn)應用 問題 我們已經有一個 AP 型的 KV 系統(tǒng)了务甥,現(xiàn)在要求數(shù)據(jù)具有強一致性牡辽,怎么辦?重新...
Gossip 協(xié)議實現(xiàn)最終一致性 背景 有些系統(tǒng)對可用性比較敏感敞临,例如監(jiān)控主機和業(yè)務運行的告警系統(tǒng)态辛,我們希望系統(tǒng)在極端條件(例如集群中只有一個節(jié)點可用)下也能正常運行。根據(jù) ...
Basic Paxos [TOC] 什么是Basic Paxos 確定一個值 Basic Paxos描述的是多個節(jié)點如何就某個值達成共識。 三種角色 在Basic Paxos...
bthread_start_background 函數(shù)在后端創(chuàng)建一個bthread,但是該bthread沒有立刻運行鹃祖,而是等待空閑的worker pthread將其偷過來運行...
bthread概述 [TOC] TaskControl TaskControl用于管理brpc創(chuàng)建的worker pthread溪椎。 初始化 創(chuàng)建一個 TaskControl ...
butex butex是一種類似于futex的同步原語,由brpc實現(xiàn) 。但futex只能夠用于同步pthread校读,而butex除了pthread沼侣,還可以同步bthread。...