This class is used to log the transactions in a file. We store LogEdit instances. Here is the hierarchy for LogEdit :
When an operation is executed (a modification, we don't log anything for searches), we will store two or three records :
Those elements will be serialized into a UserLogRecord, following these structures (the UserLogRecord will contains either a TxnStateChange or a DataChangeContainer) :
All those structure will be serialized using the minimal size, so we use Externizable classes and we use readExternal() and writeExternal() directly, to save some bytes and time (this serialization is done in a locked section).