0
Whenever a transaction is received by a node, the node verifies its validity. To that end, it checks for each transaction input whether that input is part of the UTXO set. It is my understanding that the UTXO set is stored in the chainstate database, which is held in a LevelDB structure.
I previously thought that he UTXO set was kept available in memory, but since I've learned that it is currently about 1.2GiB in size that seems unlikely.
So, I assume the chainstate-db is stored on disk, but accessed multiple times per second to check transaction inputs. What amount of memory usage does this induce on a node?
It needs to be stored on disk to preserve it when closing and then opening the application. However most (or on systems with enough memory: all) of it is also in RAM. Every time it needs to scan through the UTXO set, it will load the used chunks into memory and keep them there as long as possible. I imagine after a few scans most of it will be in memory. If it does not fit in memory, it will quickly increase the disk I/O and slow everything down. – Jannes – 2016-04-26T10:10:34.277