nicktelford opened a new pull request, #20955:
URL: https://github.com/apache/kafka/pull/20955

   These are the new interfaces detailed in KIP-1035: "StateStore managed 
changelog offsets".
   
   This PR introduces the interfaces changes, but makes otherwise no 
consequential behavioural changes.
   
   Outside of `StateStore.java`, _all_ changes are essentially just a rename of 
all invocations of `StateStore#flush` to instead call `StateStore#commit`.
   
   The `changelogOffsets` being passed in these invocations is currently 
unused: the behaviour of `StateStore#commit` remains identical to 
`StateStore#flush` before these changes.
   
   A new implementation of `StateStore#commit` that actually uses these 
offsets, along with changes to the use-site (in `ProcessorStateManager` and 
`GlobalStateManager`) will come in a later PR.
   
   Many strings, including documentation, and some variable names, have also 
been renamed (from "flush" to "commit"), to maintain consistency with the 
method they relate to.
   
   One exception is the `flush-rate` metric, which has not been renamed, 
because it will instead be deprecated in favour of a new `commit-rate` metric, 
which will be introduced in another PR.
   
   ---
   
   The only change in behaviour is as follows: calling `StateStore#flush` from 
within a `Processor` is now a guaranteed no-op.
   
   In the future, this will throw an `UnsupportedOperationException`, but to 
ensure no changes to end-user experience, we currently make it a no-op.
   
   Previously, any call to `StateStore#flush` from a `Processor` would have 
made no difference to program semantics, but likely would introduce performance 
problems for RocksDB. This is because it would force a flush of RocksDB 
memtables to disk on every invocation, which if naively used could be on 
_every_ `Record`.
   
   Consequently, making this a no-op should not make a difference for 
end-users, except potentially improving performance if they were incorrectly 
calling this method.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to