The source code is as follows:
//! -dbcache default (MiB) static const int64_t nDefaultDbCache = 450;//! -dbbatchsize default (bytes)static const int64_t nDefaultDbBatchSize = 16 << 20;//! max. -dbcache (MiB)static const int64_t nMaxDbCache = sizeof(void*) > 4 ? 16384 : 1024;//! min. -dbcache (MiB)static const int64_t nMinDbCache = 4;//! Max memory allocated to block tree DB specific cache, if no -txindex (MiB)static const int64_t nMaxBlockDBCache = 2;//! Max memory allocated to block tree DB specific cache, if -txindex (MiB)// Unlike for the UTXO database, for the txindex scenario the leveldb cache make// a meaningful difference: https://github.com/bitcoin/bitcoin/pull/8273#issuecomment-229601991static const int64_t nMaxTxIndexCache = 1024;//! Max memory allocated to all block filter index caches combined in MiB.static const int64_t max_filter_index_cache = 1024;//! Max memory allocated to coin DB specific cache (MiB)static const int64_t nMaxCoinsDBCache = 8;
I have 5 questions.
- What do these caches represent?
- What is the relationship between UTXO cache and these caches?
- What is the relationship between levelDB's own cache and UTXO cache?
- What is the current UTXO cache size?
- What does the memtable in levelDB correspond to in the Bitcoin system?