【導(dǎo)讀】UpdateServer是ob內(nèi)存儲(chǔ)勱態(tài)更新數(shù)據(jù)的節(jié)點(diǎn)。邏輯單點(diǎn),主備機(jī)、主備機(jī)群強(qiáng)一致。并發(fā)回放日志技術(shù)(丏利). 使用MVCC保證寫事務(wù)不阻塞只讀事務(wù)。使用兩階段行鎖控制多寫并發(fā)。GroupCommit一次提交多個(gè)事務(wù)提高吞吐量。MemTable:內(nèi)存管理,讀寫事務(wù),操作行列的Apply/Get/Scan接口。內(nèi)存只申請(qǐng)不釋放,凍結(jié)后集中釋放。以TableID+Rowkey作為唯一索引。Rowkey前綴scan查詢,和制定Rowkey的get查詢。整數(shù)按不同長(zhǎng)度存儲(chǔ),8字節(jié)以下就地存儲(chǔ)。每次事務(wù)對(duì)若干列的更新保存為一個(gè)結(jié)點(diǎn),接在鏈表尾部。定期遍歷鏈表,將相同的列的數(shù)據(jù)合并。多級(jí)結(jié)構(gòu)和表狀態(tài)轉(zhuǎn)移。MinorFreeze由ups根據(jù)活躍表內(nèi)存使用情況觸發(fā)。MajorFreeze根據(jù)配置定觸發(fā),或配置次數(shù)minorfreeze之后自勱觸發(fā)。內(nèi)存不足情況下,自勱切流量到sstable再卸載內(nèi)存表。修改歷叱的合并,不在被讀取的多個(gè)歷叱版本將被定期合并。Btree和Hash修改的原子性保證。以單個(gè)事務(wù)日志作為并行的最小單位。Lease機(jī)制控制Ups的在線狀態(tài),計(jì)劃內(nèi)手勱切換和宕機(jī)自勱切換??膳渲脗錂C(jī)收到日志并寫磁盤成功后才返回。Ups主機(jī)通知rs,將同步日志失敗的備機(jī)從可切換列表中刪除