this repo has no description
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

Track known committed version on Storage servers

garrison f89abc4f a2dfff6e

+12 -1
+9
lib/servers/storage.ex
··· 48 48 started: boolean, 49 49 data_version: integer, 50 50 durable_version: integer, 51 + known_committed_version: integer, 51 52 52 53 peek_nonce: reference, 54 + peek_tlog_i: non_neg_integer, 53 55 54 56 xks: XKS.t, 55 57 shard_map: SparseShardMap.t, ··· 62 64 :started, 63 65 :data_version, 64 66 :durable_version, 67 + :known_committed_version, 65 68 66 69 :peek_nonce, 67 70 :peek_tlog_i, ··· 189 192 started: false, 190 193 data_version: startup_version, 191 194 durable_version: startup_version, 195 + known_committed_version: startup_version, 192 196 193 197 peek_nonce: nil, 194 198 # TODO: would be good to randomize this but we don't know the replication factor here ··· 453 457 454 458 state = apply_batches(state, result.batches) 455 459 SimProcess.send_after self(), :peek_retry, 1 460 + 461 + # Update KCV and allow XKS to persist memtables below that version 462 + state = %{state | known_committed_version: max(state.known_committed_version, result.known_committed_version)} 463 + XKS.set_max_persist_version(state.xks, state.known_committed_version) 464 + 456 465 %{state | data_version: result.end_version, peek_nonce: nil} 457 466 end 458 467
+1
lib/servers/tlog.ex
··· 274 274 result = %PeekResult{ 275 275 tlog_id: state.id, 276 276 nonce: nonce, 277 + known_committed_version: state.known_committed_version, 277 278 start_version: start_version, 278 279 end_version: end_version, 279 280 batches: batches,
+2 -1
lib/structs.ex
··· 116 116 @type t :: %__MODULE__{ 117 117 tlog_id: non_neg_integer, 118 118 nonce: reference, 119 + known_committed_version: non_neg_integer, 119 120 start_version: non_neg_integer, 120 121 end_version: non_neg_integer, 121 122 batches: list, 122 123 } 123 - @enforce_keys [:tlog_id, :nonce, :start_version, :end_version, :batches] 124 + @enforce_keys [:tlog_id, :nonce, :known_committed_version, :start_version, :end_version, :batches] 124 125 defstruct @enforce_keys 125 126 end 126 127