GitHub PushEvent at 2014-10-12 18:23:25
Repository: neo4j
Actor: tinwelint
Payload: {"shas":[["6a3ed83a095b6f113acaa3feffc6ba41c756955b","1cfe25a1af55d49242b8aee168675c41b644153f@neotechnology.com","Guards for concurrent shutdown when applying batches on slaves\n\nCommitting and applying a batch of transactions in\nTransactionCommittingResponseUnpacker would:\n- 1. append a batch of transactions\n- 2. force\n- 3. then finally mark as committed and apply each one\n\nIf there would occur a clean shutdown during or after 1 or 2, but before 3\nthere might be transactions appended to the log, but never applied, not\neven the next start of the db, since there would be no recovery performed.\nA similar problem could occur for rotation where force (2) would check\nrotation which would effectively exhibit very similar problems.\n\nThis commit adds synchronized using the same monitor as append and shutdown\nfor one whole transaction batch to guard for concurrent shutdown. Also\nTransactionAppender#force (2) is changed to not check rotation, and\ninstead the TransactionCommittingResponseUnpacker checking rotation before\ncommitting and applying each batch, i.e. no possibility of rotation\nhappening in between append and commit-and-apply.","Mattias Persson",true]],"size":1,"ref":"refs/heads/2.2-slave-batch-commit-fix","head":"6a3ed83a095b6f113acaa3feffc6ba41c756955b"}