Tahle tvá úvaha o transparentní perzistenci mě vrací o 15 let zpátky, kdy jsem objektové databáze řešil v projektech. Těch problémů bylo víc, třeba existence více kopií stejného objektu v paměti (tehdy ještě nebyl Rust zajišťující unikátní měnitelné reference). Třeba ty typově bezpečné dotazy se běžně řešily přetěžováním operátorů.
Pojďme si o těch problémech pokecat. Zajímá mě to.
Celá ta má úvaha je postavená na tom, že data persisteuju implicitně. Jinak všechny techniky, které známe se budou používat podobně.
třeba existence více kopií stejného objektu v paměti
Úplně nevím, v čem by měl být problém...
Pět referencí na stejný objekt? (jsme v OOP), ok, bude pět referencí na stejný objekt i v jiné instanci. Změním hodnotu v první referenci, změní se i v těch devíti ostatních.
Čtyři kopie jednoho objektu? ok, bude pět separé objektů i v druhé instanci. Změním hodnotu jednoho objektu, změní se hodnota právě toho stejného objektu v druhé instanci.
Co když třeba najdu objekt v kolekci, pošlu ho kanálem (CSP) na jiný stroj a tam ho změním?
Když ho pošlu tím kanálem, ztratím nad ním vlastnictví? Pokud ne, tak se mi změní v instanci, ze které jsem jej poslal, i v druhé instanci.