Skip to content

atonce/JFile

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

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.)