I have a few questions on about the members on LogFileKey and how they're used to implement (sorted) log recovery. My purpose in asking is related to extracting LogEntryKey/LogEntryValue pairs with LogEvents.MUTATION and LogEvents.MANY_MUTATIONS for a specific table (extent).

I'm reading through the SortedLogRecovery class, specifically the findLastStartToFinish and playbackMutations methods. The confusing members to me right now are the `tid` and `seq` members which are a part of every LogFileKey (meaning, they are included regardless of the value of the LogEvents member).

Looking at SortedLogRecover.playbackMutations, it appears that if I know what extent matches with a `tid` (from a DEFINE_TABLET LogEvents), any mutations (MUTATION or MANY_MUTATIONS) with that `tid` are for that extent. Is that correct?

Assuming that's the case (as it appears from the code), when dealing with a WAL which is not yet sorted (what I'm trying to do with replication), I can still use that `tid` to know which mutations are associated with that extent? Is it possible to see a new DEFINE_TABLE LogFileKey come through with more mutations using the old `tid` (in other words, is it possible that two `tids` with mutations for the same extent could be interspersed in an unsorted WAL)?

Reply via email to