Alien-Libjio
view release on metacpan or search on metacpan
libjio/doc/guide.rst view on Meta::CPAN
be as intuitive as possible, so the text is structured as a guide to present
the reader all the common structures and functions the way they're normally
used.
Definitions
-----------
This is a library which provides a transaction-oriented I/O API.
We say this is a transaction-oriented API because we make transactions the
center of our operations, and journaled because we use a journal (which takes
the form of a directory with files on it) to guarantee coherency even after a
crash at any point.
In this document, we think of a transaction as a list of *(buffer, length,
offset)* to be written to a file. That triplet is called an *operation*, so we
can say that a transaction represents an ordered group of operations on the
same file.
The act of *committing* a transaction means writing all the elements of that
list; and *rolling back* means to undo a previous commit, and leave the data
just as it was before doing the commit.
The library provides several guarantees, the most relevant and useful being
that at any point of time, even if the machine crash horribly, a transaction
will be either fully applied or not applied at all.
( run in 1.800 second using v1.01-cache-2.11-cpan-d7a12ab2c7f )