Class Util
java.lang.Object
org.apache.zookeeper.server.persistence.Util
A collection of utility methods for dealing with file name parsing,
low level I/O file operations and marshalling/unmarshalling.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic String
Extracts the value of the dbFormatConversion attribute.static File
getLogDir
(Properties props) Extracts transaction log directory property value from the container.static File
getSnapDir
(Properties props) Extracts snapshot directory property value from the container.static long
getZxidFromName
(String name, String prefix) Extracts zxid from the file name.static boolean
isLogFileName
(String fileName) Returns true if fileName is a log file name.static boolean
isSnapshotFileName
(String fileName) Returns true if fileName is a snapshot file name.static URI
makeFileLoggerURL
(File dataDir, File dataLogDir) Given two directory files the method returns a well-formed logfile provider URI.static URI
makeFileLoggerURL
(File dataDir, File dataLogDir, String convPolicy) static String
makeLogName
(long zxid) Creates a valid transaction log file name.static String
makeSnapshotName
(long zxid) Creates a snapshot file name.static String
makeURIString
(String dataDir, String dataLogDir, String convPolicy) static byte[]
marshallTxnEntry
(TxnHeader hdr, Record txn, TxnDigest digest) Serializes transaction header and transaction data into a byte buffer.static byte[]
Reads a transaction entry from the input archive.sortDataDir
(File[] files, String prefix, boolean ascending) Sort the list of files.static void
writeTxnBytes
(OutputArchive oa, byte[] bytes) Write the serialized transaction record to the output archive.
-
Constructor Details
-
Util
public Util()
-
-
Method Details
-
makeURIString
-
makeFileLoggerURL
Given two directory files the method returns a well-formed logfile provider URI. This method is for backward compatibility with the existing code that only supports logfile persistence and expects these two parameters passed either on the command-line or in the configuration file.- Parameters:
dataDir
- snapshot directorydataLogDir
- transaction log directory- Returns:
- logfile provider URI
-
makeFileLoggerURL
-
makeLogName
Creates a valid transaction log file name.- Parameters:
zxid
- used as a file name suffix (extension)- Returns:
- file name
-
makeSnapshotName
Creates a snapshot file name.- Parameters:
zxid
- used as a suffix- Returns:
- file name
-
getSnapDir
Extracts snapshot directory property value from the container.- Parameters:
props
- properties container- Returns:
- file representing the snapshot directory
-
getLogDir
Extracts transaction log directory property value from the container.- Parameters:
props
- properties container- Returns:
- file representing the txn log directory
-
getFormatConversionPolicy
Extracts the value of the dbFormatConversion attribute.- Parameters:
props
- properties container- Returns:
- value of the dbFormatConversion attribute
-
getZxidFromName
Extracts zxid from the file name. The file name should have been created using one of themakeLogName(long)
ormakeSnapshotName(long)
.- Parameters:
name
- the file name to parseprefix
- the file name prefix (snapshot or log)- Returns:
- zxid
-
readTxnBytes
Reads a transaction entry from the input archive.- Parameters:
ia
- archive to read from- Returns:
- null if the entry is corrupted or EOF has been reached; a buffer (possible empty) containing serialized transaction record.
- Throws:
IOException
-
marshallTxnEntry
public static byte[] marshallTxnEntry(TxnHeader hdr, Record txn, TxnDigest digest) throws IOException Serializes transaction header and transaction data into a byte buffer.- Parameters:
hdr
- transaction headertxn
- transaction datadigest
- transaction digest- Returns:
- serialized transaction record
- Throws:
IOException
-
writeTxnBytes
Write the serialized transaction record to the output archive.- Parameters:
oa
- output archivebytes
- serialized transaction record- Throws:
IOException
-
sortDataDir
Sort the list of files. Recency as determined by the version component of the file name.- Parameters:
files
- array of filesprefix
- files not matching this prefix are assumed to have a version = -1)ascending
- true sorted in ascending order, false results in descending order- Returns:
- sorted input files
-
isLogFileName
Returns true if fileName is a log file name.- Parameters:
fileName
-
-
isSnapshotFileName
Returns true if fileName is a snapshot file name.- Parameters:
fileName
-
-