News for hackers. Stuff that matters.
Re:Datomic Is Now Free by twic on Thursday April 27, 2023 @04:44PM (#35734284)
I'm moderately confident you could mechanically transform a time-oblivious schema into a history-preserving one, and then write a view on top of it which gave a slice at a particular time. Moderately.
Re:Datomic Is Now Free by ysleepy on Thursday April 27, 2023 @05:50PM (#35735064)
That is essentially what MVCC does.
Re:Datomic Is Now Free by twic on Thursday April 27, 2023 @06:33PM (#35735371)
That is an extremely good point.
Re:Datomic Is Now Free by JohnBooty on Thursday April 27, 2023 @11:26PM (#35737161)
Yes, although AFAIK those hidden MVCC columns (xmin, xmax?) aren't very usable from an application standpoint -- the obsoleted rows only hang around until the next VACUUM, right?

I realize you're not claiming those columns are useful from an application perspective. Just curious to know if I'm wrong and they are....

Re:Datomic Is Now Free by twic on Friday April 28, 2023 @06:25AM (#35739499)
Oracle lets you use the MVCC data to query past states of the database, called "flashback":

https://docs.oracle.com/en/database/oracle/oracle-database/2...

You can configure how long the old data is kept:

https://docs.oracle.com/en/database/oracle/oracle-database/2...

Worked examples:

http://www.dba-oracle.com/t_rman_149_flasbback_query.htm

Re:Datomic Is Now Free by JohnBooty on Friday April 28, 2023 @10:02AM (#35741369)
Wow, super informative. Thank you so much.
Re:Datomic Is Now Free by ysleepy on Saturday April 29, 2023 @05:42AM (#35751487)
I meant MVCC is the proof that you can automate the transform of a schema into a versioned schema. How and if the DBMS exposes that is another concern.

The garbage collection / VACUUM part of an MVCC system is the harder part, saving all versions and querying a point in time is the easy one.