FT_LAYOUT_VERSION_24=24,// Riddler: change logentries that log transactions to store TXNID_PAIRs instead of TXNIDs
FT_LAYOUT_VERSION_24=24,// Riddler: change logentries that log transactions to store TXNID_PAIRs instead of TXNIDs
FT_LAYOUT_VERSION_25=25,// SecretSquirrel: ROLLBACK_LOG_NODES (on disk and in memory) now just use blocknum (instead of blocknum + hash) to point to other log nodes. same for xstillopen log entry, basements store key/vals separately on disk
FT_LAYOUT_VERSION_25=25,// SecretSquirrel: ROLLBACK_LOG_NODES (on disk and in memory) now just use blocknum (instead of blocknum + hash) to point to other log nodes. same for xstillopen log entry
FT_LAYOUT_VERSION_26=26,// Hojo: basements store key/vals separately on disk for fixed klpair length BNs
FT_NEXT_VERSION,// the version after the current version
FT_NEXT_VERSION,// the version after the current version
FT_LAYOUT_VERSION=FT_NEXT_VERSION-1,// A hack so I don't have to change this line.
FT_LAYOUT_VERSION=FT_NEXT_VERSION-1,// A hack so I don't have to change this line.
FT_LAYOUT_MIN_SUPPORTED_VERSION=FT_LAYOUT_VERSION_13,// Minimum version supported
FT_LAYOUT_MIN_SUPPORTED_VERSION=FT_LAYOUT_VERSION_13,// Minimum version supported
// When we know the elements are fixed-length, we use the better dmt constructor.
// When we know the elements are fixed-length, we use the better dmt constructor.
// In practice, as of Jan 2014, we use the builder in two cases:
// In practice, as of Jan 2014, we use the builder in two cases:
// - When we know the elements are not fixed-length.
// - When we know the elements are not fixed-length.
// - During upgrade of a pre version 25 basement node.
// - During upgrade of a pre version 26 basement node.
// During upgrade, we will probably wildly overallocate because we don't account for the values that aren't stored in the dmt, so here we want to shrink the mempool.
// During upgrade, we will probably wildly overallocate because we don't account for the values that aren't stored in the dmt, so here we want to shrink the mempool.
// When we know the elements are not fixed-length, we still know how much memory they occupy in total, modulo alignment, so we want to allow for mempool overhead and worst-case alignment overhead, and not shrink the mempool.
// When we know the elements are not fixed-length, we still know how much memory they occupy in total, modulo alignment, so we want to allow for mempool overhead and worst-case alignment overhead, and not shrink the mempool.