A Flush() will proceed down the graph and perform both serialization and an IpldStore#Put() on every node that has either an expLinks or expValues array. This is safe because those are always created when mutating. But it's not efficient because they are also created when reading node data. A get will result in creating both expLinks and expValues all the way down to the relevant leaf. So load + get + flush is going to result in saves of all nodes on the path from the root to that value. ForEach, ForEachAt and FirstSetIndex is going to do the same thing.
A
Flush()
will proceed down the graph and perform both serialization and anIpldStore#Put()
on every node that has either anexpLinks
orexpValues
array. This is safe because those are always created when mutating. But it's not efficient because they are also created when reading node data. Aget
will result in creating bothexpLinks
andexpValues
all the way down to the relevant leaf. So load + get + flush is going to result in saves of all nodes on the path from the root to that value.ForEach
,ForEachAt
andFirstSetIndex
is going to do the same thing.