jakemctigue / tungsten-replicator

Automatically exported from code.google.com/p/tungsten-replicator
0 stars 0 forks source link

Upgrade THL to use buffered I/O #28

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
THL log file access is implemented using the Java RandomFile class, which 
treats files as a long array.  This class does not use buffered I/O and makes 
heavy use of disk metadata operations, which results in painfully slow behavior 
on slow, highly contended, or NFS-mounted disk.   Also, it makes it hard to 
support a single-writer, many-readers model due to the high level of disk I/O 
for reads. 

The THL will be rewritten to use standard Java stream classes with buffered I/O 
for both reading and writing, with the following user-visible behavior: 

1. THL performance will not be bound by performance of the underlying disk 
subsystem. 
2. The THL will support multiple readers reading the same region of the log 
without causing additional I/O overhead for each reader. 
3. Users will be able to control the I/O buffer size and optionally select 
compression of files on disk to reduce storage requirements.  
4. Otherwise the semantics of the THL will be unchanged. 

Original issue reported on code.google.com by berkeley...@gmail.com on 21 Apr 2011 at 11:45

GoogleCodeExporter commented 9 years ago

Original comment by berkeley...@gmail.com on 25 Apr 2011 at 3:20

GoogleCodeExporter commented 9 years ago
Added initial gob of code to implement reading from and writing to stream 
classes.  This allows us to see better what the log is doing.  Also upgraded 
unit tests on the log.  

Original comment by berkeley...@gmail.com on 5 May 2011 at 5:15

GoogleCodeExporter commented 9 years ago

Original comment by berkeley...@gmail.com on 11 Aug 2011 at 1:04