Andrew Kornev updated ZOOKEEPER-38:
Status: Patch Available (was: Open)
Attached are the patches for the db file header and the CRC [ZOOKEEPER-32]
features, and the unit tests. The patches are generated against the latest code
in Source Forge SVN.
The patch introduces a new zookeeper package: the persistence layer. The
package declares a number of public (zookeeper server scope) interfaces:
TxnLogFactory, DBInfo, LogReader and LogWriter. The ZooKeeperServer,
SyncProcessor and QuorumPeer classes are now relying exclusively on these
interfaces to perform snapshotting and logging operations. All of the existing
persistence-related code has been factored out to the new package
peristence.log which provides the implementations of the above public
The persistence.ProviderRegistry class is used during the server initialization
to obtain an instance of TxnLogFactory based on the user-provided URI. From
that moment on, the server uses the factory to access LogReader and LogWriter
This is my strong belief that this design improves decoulping and separation of
concerns. As a result this will allow us to provide new implementations of the
persistence layer more easily. Also, this is a step toward improved testability
and simpler code structure, which ideally should make it easier for people to
contribute to the project.
> headers (version+) in log/snap files
> Key: ZOOKEEPER-38
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-38
> Project: Zookeeper
> Issue Type: New Feature
> Components: server
> Reporter: Patrick Hunt
> Assignee: Andrew Kornev
> Fix For: 3.0.0
> Attachments: db-header-crc-1.patch, db-header-crc-unittest.patch
> Moved from SourceForge to Apache.
This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.