The Puffy Data Transactor
is loosely modeled
after the one used in Datomic
That is, it's a single sequential process which serializes all write access.
Any process can can access Puffy Data in read mode. For example:
inf_data = PuffyData.inflate(def_tuple)
function uses the Deflated Tuple
to identify the base Blob and desired view.
It uses one or more Cached Blobs
to reconstruct the Inflated Data
Only the Transactor
process can access Puffy Data in write mode.
And, because there is only one such process, race conditions are avoided.
stores the Inflated Data
as a new Cached Blob
then updates the index data in ETS
(in case of a crash):
To be continued...
This wiki page is maintained by Rich Morin
an independent consultant specializing in software design, development, and documentation.
Please feel free to email
comments, inquiries, suggestions, etc!