protected ODurablePage.TrackMode getTrackMode() {
final ODurablePage.TrackMode trackMode;
final OStorageTransaction transaction = storage.getStorageTransaction();
final OTransaction clientTx;
if (transaction != null)
clientTx = transaction.getClientTx();
else
clientTx = null;
if (storage instanceof ODirectMemoryStorage && transaction == null)
return ODurablePage.TrackMode.NONE;
// very risky and not durable case which may lead to data corruption.
if (clientTx instanceof OTransactionOptimistic && !clientTx.isUsingLog())
trackMode = ODurablePage.TrackMode.NONE;
else if (writeAheadLog == null)
trackMode = ODurablePage.TrackMode.NONE;
else
trackMode = ODurablePage.TrackMode.FULL;