cmccabe opened a new pull request #10070:
URL: https://github.com/apache/kafka/pull/10070


   The quorum controller stores metadata in the KIP-500 metadata log, not in 
Apache ZooKeeper.  Each controller node is a voter in the metadata quorum.  The 
leader of the quorum is the active controller, which processes write requests.  
The followers are standby controllers, which replay the operations written to 
the log.  If the active controller goes away, a standby controller can take its 
place.
   
   Like the ZooKeeper-based controller, the quorum controller is based on an 
event queue backed by a single-threaded executor.  However, unlike the ZK-based 
controller, the quorum controller can have multiple operations in flight-- it 
does not need to wait for one operation to be finished before starting another. 
 Therefore, calls into the QuorumController return CompleteableFuture objects 
which are completed with either a result or an error when the operation is 
done.  The QuorumController will also time out operations that have been 
sitting on the queue too long without being processed.  In this case, the 
future is completed with a TimeoutException.
   
   The controller uses timeline data structures to store multiple "versions" of 
its in-memory state simultaneously.  "Read operations" read the latest 
committed state -- essentially, they are reading from a slightly older 
in-memory snapshot of the state.  "Write operations" read and write the latest 
state.  However, we can not return a successful result for a write operation 
until its state has been committed to the log.  Therefore, if a client receives 
an RPC response, it knows that the requested operation has been performed, and 
can not be undone by a controller failover.


----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to