Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
More flexible support for reading multiple versions of log entries
Being able to read log entries from different versions is great since it makes migration and rolling upgrades easier, sometimes even transparent. Currently Neo4j supports reading of multiple versions, although not quite. This commit will clean up and greatly simplify the way log entry versioning works as a whole, to go from this: - Each log has a header specifying format version. A format version is really the format version of the commands contained in the log, where all commands, i.e. all transactions are assumed to have the same version. - Each log entry (START,COMMIT,...) has a version which specifies in which format the entry data is in (not the command data, which is still controlled by the header of the log). - Code full of log reader factories and dispatchers to try to be dynamic in selecting which log entry reader to use. Even though it looked dynamic any given log could only contain COMMAND log entries of one version. - Confused class naming where log entry parsers where named after header format version. to something like: - Each log entry (START,COMMIT,...) has a version which specifies in which format the entry data is in (including command data). - Get appropriate reader(s) from LogEntryVersion.byVersion() LogEntryVersion also has a more detailed summary of how these things work now. After this commit any log can contain any number of log entries all with different versions, mixed if so necessary. This allows for basically seamless (non-)migration from one version to another if the only change in format is in the log format. Rolling upgrades work by adhering to the usual rules of master upgrading last and only writes through master during rolling upgrade.
- Loading branch information
1 parent
ffcd017
commit d7bc110
Showing
77 changed files
with
1,013 additions
and
1,754 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
80 changes: 0 additions & 80 deletions
80
community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/log/LogDeserializer.java
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.