In the move vm repository, I know that there exist different caches such as AccountCache or TransactionDataCache, but how, when and where does the diem blockchain actually interact with said cache and store the changes in the cache in persistent state?
I am trying to port the move language to a different blockchain. I thought about manually implementing the DataStore trait (https://github.com/diem/move/blob/725168d7522a3abeeb8664b4f1498552b3657286/language/move-vm/types/src/data_store.rs) but that would mean that I would lose the cache functionality of the vm itself, which is what I am trying to avoid. That's why I just want to interact with the cache and then store the changeset in my kv database if needed.