NAME
IO::Journal - Perl interface for journalled file operations
VERSION
Version 0.1 ($Id: ISAAC.pm 6045 2009-04-07 02:34:58Z FREQUENCY@cpan.org $)
DESCRIPTION
To ensure reliability, some file systems and databases provide support for something known as journalling. The idea is to ensure data consistency by creating a log of actions to be taken (called a Write Ahead Log) before committing them to disk. That way, if a transaction were to fail, the write ahead log could be used to finish writing the data.
While this functionality is often available with full-fledged databases, often it is not completely necessary, yet reliability can be desirable. Other times, the filesystem does not provide support for journalling, but it can still be desirable. Thankfully, Alberto Bertogli published a userspace C library called libjio that can provide these features in a small (less than 1500 lines of code) library with no external dependencies.
This package has been published as a stub for the actual module and as a bit of a land grab. Expect a working version in a few weeks.
SYNOPSIS
use IO::Journal;
# This is my current idea of what the interface will look like. It
# may change prior to the actual release.
my $file = IO::Journal->new('filename.txt');
$file->print('...');
# or
print $file ('...');
$file->commit;
AUTHOR
Jonathan Yu <frequency@cpan.org>
CONTRIBUTORS
Your name here ;-)
ACKNOWLEDGEMENTS
Special thanks to Alberto Bertogli <albertito@blitiri.com.ar> for developing this useful library and for releasing it into the public domain.
SUPPORT
You can find documentation for this module with the perldoc command.
perldoc IO::Journal
You can also look for information at:
AnnoCPAN: Annotated CPAN documentation
CPAN Ratings
Search CPAN
CPAN Request Tracker
CPAN Testing Service (Kwalitee Tests)
CPAN Testers Platform Compatibility Matrix
REPOSITORY
You can access the most recent development version of this module at:
http://svn.ali.as/cpan/trunk/IO-Journal
If you are a CPAN developer and would like to make modifications to the code base, please contact Adam Kennedy <adamk@cpan.org>, the repository administrator. I only ask that you contact me first to discuss the changes you wish to make to the distribution.
FEEDBACK
Please send relevant comments, rotten tomatoes and suggestions directly to the maintainer noted above.
If you have a bug report or feature request, please file them on the CPAN Request Tracker at http://rt.cpan.org. If you are able to submit your bug report in the form of failing unit tests, you are strongly encouraged to do so. Regular bug reports are always accepted and appreciated via the CPAN bug tracker.
SEE ALSO
http://blitiri.com.ar/p/libjio/, libjio's C project page, which has the full source code and accompanying Python bindings.
CAVEATS
I have never developed an IO:: type module before this one, so I'm not completely aware of the interfaces yet. I hope to make it compatible with conventional interfaces like IO::Handle, but I might make a mistake.
KNOWN BUGS
There are no known bugs as of this release.
LICENSE
Copyleft 2009 by Jonathan Yu <frequency@cpan.org>. All rights reversed.
I, the copyright holder of this package, hereby release the entire contents therein into the public domain. This applies worldwide, to the extent that it is permissible by law.
In case this is not legally possible, I grant any entity the right to use this work for any purpose, without any conditions, unless such conditions are required by law.
The full details of this can be found in the LICENSE file included in this package.
DISCLAIMER OF WARRANTY
The software is provided "AS IS", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the software.