An uncommitted transaction is writing this cell; contains the location of primary lock ◦ c:write ▪ Commited data present; stores the Bigtable timestamp of the data ◦ c:data ▪ Stores the data itself ◦ c:notify ▪ Hint: observers may need to run ◦ c:ack_O ▪ Observer “O” has run; stores start timestamp of successful last run
techniques to increase the timestamp oracle’s throughput, and also we use a Raft group to tolerate node failure, but there are still some disadvantages to allocating timestamps from a single node. • One disadvantage is that the timestamp oracle can’t be scaled to multiple nodes. • There are some potential solutions for this final case, such as Google Spanner’s TrueTime mechanism and HLCs (Hybrid Logical Clocks). https://tikv.org/deep-dive/distributed-transaction/timestamp-oracle/ より抜粋
r/w 回数を比較 ◦ PercolatorによるACIDトランザクションのオーバヘッドがどのくらいなのか? • Percolator introduces overhead relative to Bigtable, a factor of four overhead on writes due to 4 round trips: ◦ Percolator -> Timestamp Server -> Percolator -> Tentative Write -> Percolator -> Timestamp Server -> Percolator -> Commit -> Percolator
Percolator用にカスタマイズ • CPUコア数に対するスループット ◦ ほぼリニアにスケール *TPC benchmark E standard specification version 1.9.0.Tech. rep., Transaction Processing Performance Council, September 2009