Skip to content

atonce/JFile

This branch is 87 commits behind laforge49/JFile:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

b306f5a · Jun 25, 2012
Jun 25, 2012
Jun 25, 2012
Jun 22, 2012
Jun 25, 2012
Jun 25, 2012

Repository files navigation

File Persistence and High Throughput Durable Logging

ACID is a common claim, but the D in ACID stands for durable. Durable means
that once committed, a transaction will persist even if the system crashes.
However, there is no assurance that a transaction will persist unless the
data has been flushed to disk--and this is SLOW.

One approach to improve throughput while still flushing data to disk is to
    (1) group transactions into batches on one thread,
    (2) serialize and calculate the checksum of each batch on a second thread,
    (3) log and fsync each batch of transactions to disk on a third thread and
    (4) update the database with the logged transactions on a fourth thread.
Using this approach, we can log and process up to 899,523 durable transactions
per second.

Downloads:     https://sourceforge.net/projects/jactor/files/
Blog:          https://sourceforge.net/p/jactor/blog/
API:           http://jactor.sourceforge.net/
VCS:           https://github.com/laforge49/JID/
Issues:        https://github.com/laforge49/JID/issues/
Google groups: http://groups.google.com/group/agilewikidevelopers/

Dependencies
 - JActor         https://github.com/laforge49/JActor
 - JID            https://github.com/laforge49/JID
 - joda-time

Available on The Central Repository (Maven): http://search.maven.org/#search|ga|1|org.agilewiki
So you just need to add this to your POM file:
    <dependency>
      <groupId>org.agilewiki.jfile</groupId>
      <artifactId>jfile</artifactId>
      <version>1.0.0</version>
    </dependency>
(Be sure to update the version number appropriately, of course.)