[guardian-dev] IOCipher Checkpointing

Hans-Christoph Steiner hans at guardianproject.info
Tue Mar 22 05:27:37 EDT 2016



Robert Wiley:
> Hi,
> 
> I've been playing around with IOCipher for a while and it's really great!

Thanks, we're glad its useful!

> Couple of questions if anyone has the time.
> 
> Is there anyway to manually ask the database to perform a checkpoint and
> write the contents of the write ahead log to the database?

It should do that automatically, unless your app is under extreme,
parallel, concurrent write load.  That's what our tests have
consistently shown us, at least.


> I've noticed that the WAL file seems to grow continually and can get quite
> large and only seems to get written back to the database if the app
> (Android) is fully closed (force closed by the user or the OS kills it).

The WAL log only grows by design, to make it more efficient.  That does
not mean that it is all being used at any given time.  Once stuff in the
WAL is written to the database, that area in WAL is marked as free and
will be reused in the future.  If I remember correctly, doing a SQLite
vacuum will shrink the WAL down to what is currently being used.


> Also when should I be using be using beingTransaction and
> completeTransaction? are these only for writing files to the container (ie.
> call startTransaction, write file contents, call completeTransaction)?

Unless you are doing something really complicated, you should need to
even think about this stuff.  If you keep all of your writes in a single
thread, that'll reduce complexity and keep it running efficiently.
Multiple threads reading is fine.

.hc

-- 
PGP fingerprint: EE66 20C7 136B 0D2C 456C  0A4D E9E2 8DEA 00AA 5556
https://pgp.mit.edu/pks/lookup?op=vindex&search=0xE9E28DEA00AA5556


More information about the guardian-dev mailing list