<commit_before>1.7 (2012-04-19)
----------------
o Changed so branched data directories end up in a sub-directory.
o Changed so informative log messages are not logged as errors.
o Fixed issue with relationship types not being created via master if performed on a slave.

1.7.M03 (2012-04-11)
--------------------
o Fixed problem with "Transaction already active" getting logged because of lock timeout.
o Added GCR cache.
o GCR cache arrays are now reused between restarts HA restarts.

1.7.M02 (2012-03-26)
--------------------
o Fixed issue with message log not getting closed properly.

1.7.M01 (2012-03-12)
--------------------
o Optimization where if a transaction is attempted to be killed, but isn't successful due to it being active (for example awaiting a lock)
  such a transaction is killed as soon as it's possible instead of awaiting the scheduled "tx finisher".
o Added config option for ha.max_concurrent_transactions_on_master. There was already
  an equivalent for clients, so those two go hand in hand.
o Failure to rotate logical log is treated as a kernel panic event (just as expected in this case).
o While copying a store from the master the broker is shut down to cancel out any noisy events from it during copy.
o Makes use of the start record checksum on transactions to detect branching of data. Yields more accurate checks.
o Refactored newMaster() slightly and added a retry loop to avoid getting stuck at shutdown state.
o Added Broker#restart and implemented in ZooKeeperBroker to handle ZK session expirations.
o Made ZK session timeout configurable.
o Removed a retry/wait which held a monitor on HighlyAvailableGraphDatabase which could delay a master switch by 'read timeout' seconds.
o Restructuring to use DI, configuration interfaces, less setters/getters, removed unecessary lifecycle classes,
  added proper life cycle support for services and lots and lots of other cleanups. This also removes the need for wrapping
  an entire HA graphdb in a wrapper to have the entities survive an internal restart.

1.6 (2012-01-20)
---------------
o New HA request type allows for copy of transaction interval from master to slave, to recover from missing logical log files.
o It is no longer required to run an update puller to trigger a master election when the master goes down abruptly.
o Multiple retries on store copy operations during startup, so that long copies that get interrupted have a chance to complete.

1.6.M03 (2012-01-12)
--------------------
o Corrected ZK Expired event handling. Now, instead of restarting the zookeeper client, the whole broker is restarted and newMaster is called.
  This leads to proper reconnect to the ZK quorum and parsing of the possibly updated cluster state.
o Added support for having one ZK cluster managing many HA clusters (controlled by ha.cluster_name config).
o Fixed issues with update puller being shutdown incorrectly and sometimes having references to stale objects.
o Added support for creating unique entities via Index#putIfAbsent.

1.6.M02 (2011-12-15)
--------------------
o Introduced ability to wait a while in some key points regarding master election to reduce the noise of possible exceptions
  during master switch.
o Uses the graphdb wrapper to make Index/Node/Relationship references able to survive master switches.
o Fixed bugs where master switch events would sometimes not react accordingly.
o "Old transactions" checker uses the lock read timeout as threshold.
o Fix for null returned from AbstractZooKeeperManager#getMaster(), instead returns a master which always fails with ComException.

1.6.M01 (2011-11-24)
--------------------
o Added entry about HAProxy in manual.
o Fixed an issue where pulling updates would fail if no master had been elected. Now it tries to find a new master instead.
o Exposes information about branched (and stashed) stores through JMX.

1.5.M02 (2011-10-10)
--------------------
o Uses new (faster, non-synchronized) way of extracting transactions when streaming transactions from master to slave.
o Neostore logical logs are included when doing a full store copy from master.
o Fixed a bug with old free ids not being invalidated correctly after master switch.
o Channels aren't tied to a transaction, this to prevent some deadlock scenarios where all channels were tied up and a transaction was to be committed.
o Fixed some possible deadlock scenarios involving at least XaResourceManager and XaLogicalLog.
o Listens to "tx manager not ok" events and does internal restart for those.
o How to handle cases of branched data is configurable: keep all, keep last, keep none.
o Rotates logs before internal restart (slave->master or master->slave) to reduce potential recovery (i.e. switch) times.
o Does some additional repairing of neostore fail after a full store copy from master so that log version is synced.

1.4.M03 (2011-05-26) 
--------------------
o Fixed bug that did not rollback tx associated with dead channels.
o Modified master election algo to be more robust against zookeeper hiccups.                          
o Fixed a synchronization bug in ZooClient that could cause waits on wrong monitor.

1.4.M02 (2011-05-12)
--------------------
o At startup, the Config.USE_MEMORY_MAPPED_LOG parameter is set to 'true' since HA member will benefit performance wise from memory mapping since they
  continuously scan the log.

1.3.M05 (2011-03-24)
--------------------
o Now possible to copy full store on Windows.
o Fixed a bug that caused no new master to be elected when communication problem occured to master.
o Cluster now respond faster to problems when a new master has to be elected.

1.3.M04 (2011-03-10)
--------------------
o Tests disabled if run on windows due to limitations in OS/filesystem.

1.3.M03 (2011-02-24)
--------------------
o ZooClient now knows about backup port to simplify taking backups from a running HA cluster.

1.3.M02 (2011-02-10)
------------------------
o Broke up dependency on neo4j-shell.
o Resolved issue with additional logical logs not being applied correctly after a master copy.
o Resolved issue with multiple threads trying to startup/copy store from master at the same time.
o Fixed potential problem with new master notification.
o Extracted the server/client communication parts from HA into a separate component, neo4j-com
o Some configuration changes related to the new online backup tool.

0.6-1.3.M01 (2011-01-27)
------------------------

o Support for sending requests of unlimited size between master and slave.
o Reduced memory usage of communication between master and slave.
o Database store files can be copied from master on the fly over the wire when a new slave starts for the first time to avoid having to do a copy before-hand.
o Much better traceability in multi-jvm tests.
o Fix for an issue with the HA management bean which could prevent it from loading.

0.5-1.2 (2010-12-29)
--------------------

o HighAvailability management bean loaded properly.

0.5-1.2.M06 (2010-12-21)
------------------------

o When a new master is chosen, slaves throws away the id allocations they got from the previous master. This fixes a problem where occupied ids where reused.
o Enabled (and fixed problem with) thread on master which checks for dead slave connections and rolls back those transactions, so that their locks are released.
  This fixes a problem where an HA cluster would seem to freeze up and become unresponsive to write requests.
o Adding Log4j and Netty license information.
o Also closes the executor containing the connections.
o Changed dependency scopes.
o Shuts down databases after verifying them.

0.5-1.2.M05 (2010-12-02)
------------------------

o initial release

<commit_msg>Update change logs<commit_after>1.8.M01 (2012-04-26)
--------------------
o Fix for a rare race condition in initialization code of zoo keeper client which could make
  a database unable to join its cluster sometimes.

1.7 (2012-04-19)
----------------
o Changed so branched data directories end up in a sub-directory.
o Changed so informative log messages are not logged as errors.
o Fixed issue with relationship types not being created via master if performed on a slave.

1.7.M03 (2012-04-11)
--------------------
o Fixed problem with "Transaction already active" getting logged because of lock timeout.
o Added GCR cache.
o GCR cache arrays are now reused between restarts HA restarts.

1.7.M02 (2012-03-26)
--------------------
o Fixed issue with message log not getting closed properly.

1.7.M01 (2012-03-12)
--------------------
o Optimization where if a transaction is attempted to be killed, but isn't successful due to it being active (for example awaiting a lock)
  such a transaction is killed as soon as it's possible instead of awaiting the scheduled "tx finisher".
o Added config option for ha.max_concurrent_transactions_on_master. There was already
  an equivalent for clients, so those two go hand in hand.
o Failure to rotate logical log is treated as a kernel panic event (just as expected in this case).
o While copying a store from the master the broker is shut down to cancel out any noisy events from it during copy.
o Makes use of the start record checksum on transactions to detect branching of data. Yields more accurate checks.
o Refactored newMaster() slightly and added a retry loop to avoid getting stuck at shutdown state.
o Added Broker#restart and implemented in ZooKeeperBroker to handle ZK session expirations.
o Made ZK session timeout configurable.
o Removed a retry/wait which held a monitor on HighlyAvailableGraphDatabase which could delay a master switch by 'read timeout' seconds.
o Restructuring to use DI, configuration interfaces, less setters/getters, removed unecessary lifecycle classes,
  added proper life cycle support for services and lots and lots of other cleanups. This also removes the need for wrapping
  an entire HA graphdb in a wrapper to have the entities survive an internal restart.

1.6 (2012-01-20)
---------------
o New HA request type allows for copy of transaction interval from master to slave, to recover from missing logical log files.
o It is no longer required to run an update puller to trigger a master election when the master goes down abruptly.
o Multiple retries on store copy operations during startup, so that long copies that get interrupted have a chance to complete.

1.6.M03 (2012-01-12)
--------------------
o Corrected ZK Expired event handling. Now, instead of restarting the zookeeper client, the whole broker is restarted and newMaster is called.
  This leads to proper reconnect to the ZK quorum and parsing of the possibly updated cluster state.
o Added support for having one ZK cluster managing many HA clusters (controlled by ha.cluster_name config).
o Fixed issues with update puller being shutdown incorrectly and sometimes having references to stale objects.
o Added support for creating unique entities via Index#putIfAbsent.

1.6.M02 (2011-12-15)
--------------------
o Introduced ability to wait a while in some key points regarding master election to reduce the noise of possible exceptions
  during master switch.
o Uses the graphdb wrapper to make Index/Node/Relationship references able to survive master switches.
o Fixed bugs where master switch events would sometimes not react accordingly.
o "Old transactions" checker uses the lock read timeout as threshold.
o Fix for null returned from AbstractZooKeeperManager#getMaster(), instead returns a master which always fails with ComException.

1.6.M01 (2011-11-24)
--------------------
o Added entry about HAProxy in manual.
o Fixed an issue where pulling updates would fail if no master had been elected. Now it tries to find a new master instead.
o Exposes information about branched (and stashed) stores through JMX.

1.5.M02 (2011-10-10)
--------------------
o Uses new (faster, non-synchronized) way of extracting transactions when streaming transactions from master to slave.
o Neostore logical logs are included when doing a full store copy from master.
o Fixed a bug with old free ids not being invalidated correctly after master switch.
o Channels aren't tied to a transaction, this to prevent some deadlock scenarios where all channels were tied up and a transaction was to be committed.
o Fixed some possible deadlock scenarios involving at least XaResourceManager and XaLogicalLog.
o Listens to "tx manager not ok" events and does internal restart for those.
o How to handle cases of branched data is configurable: keep all, keep last, keep none.
o Rotates logs before internal restart (slave->master or master->slave) to reduce potential recovery (i.e. switch) times.
o Does some additional repairing of neostore fail after a full store copy from master so that log version is synced.

1.4.M03 (2011-05-26) 
--------------------
o Fixed bug that did not rollback tx associated with dead channels.
o Modified master election algo to be more robust against zookeeper hiccups.                          
o Fixed a synchronization bug in ZooClient that could cause waits on wrong monitor.

1.4.M02 (2011-05-12)
--------------------
o At startup, the Config.USE_MEMORY_MAPPED_LOG parameter is set to 'true' since HA member will benefit performance wise from memory mapping since they
  continuously scan the log.

1.3.M05 (2011-03-24)
--------------------
o Now possible to copy full store on Windows.
o Fixed a bug that caused no new master to be elected when communication problem occured to master.
o Cluster now respond faster to problems when a new master has to be elected.

1.3.M04 (2011-03-10)
--------------------
o Tests disabled if run on windows due to limitations in OS/filesystem.

1.3.M03 (2011-02-24)
--------------------
o ZooClient now knows about backup port to simplify taking backups from a running HA cluster.

1.3.M02 (2011-02-10)
------------------------
o Broke up dependency on neo4j-shell.
o Resolved issue with additional logical logs not being applied correctly after a master copy.
o Resolved issue with multiple threads trying to startup/copy store from master at the same time.
o Fixed potential problem with new master notification.
o Extracted the server/client communication parts from HA into a separate component, neo4j-com
o Some configuration changes related to the new online backup tool.

0.6-1.3.M01 (2011-01-27)
------------------------

o Support for sending requests of unlimited size between master and slave.
o Reduced memory usage of communication between master and slave.
o Database store files can be copied from master on the fly over the wire when a new slave starts for the first time to avoid having to do a copy before-hand.
o Much better traceability in multi-jvm tests.
o Fix for an issue with the HA management bean which could prevent it from loading.

0.5-1.2 (2010-12-29)
--------------------

o HighAvailability management bean loaded properly.

0.5-1.2.M06 (2010-12-21)
------------------------

o When a new master is chosen, slaves throws away the id allocations they got from the previous master. This fixes a problem where occupied ids where reused.
o Enabled (and fixed problem with) thread on master which checks for dead slave connections and rolls back those transactions, so that their locks are released.
  This fixes a problem where an HA cluster would seem to freeze up and become unresponsive to write requests.
o Adding Log4j and Netty license information.
o Also closes the executor containing the connections.
o Changed dependency scopes.
o Shuts down databases after verifying them.

0.5-1.2.M05 (2010-12-02)
------------------------

o initial release


{'fraction_non_alphanumeric': 0.08681445412608918, 'fraction_numerical': 0.030625320348539212, 'mean_word_length': 3.2940852819807427, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1623449', 'n_tokens_mistral': 4131, 'n_tokens_neox': 3749, 'n_words': 2309}