Inspired by the talk on slashdot recently about google using solid state
("ram")
disks I wanted to play around w/ Lucene runnning purely out of memory.
Could anyone glance at this and verify that this code is correct.
Goal is to convert an existing, on-disk, index to a RAMDirectory, which
presumably is purely in memory.
If the code is correct I'd suggest someone w/ CVS powers adding it to
the
source base - maybe a static method in RAMDirectory itself.
public static RAMDirectory convert( String path)
throws IOException
{
final RAMDirectory ram = new RAMDirectory();
final Directory d = FSDirectory.getDirectory( path, false);
final String[] ar = d.list();
for ( int i = 0; i< ar.length; i++)
{
// make place on ram disk
OutputStream os = ram.createFile( ar[ i]);
// read current file
InputStream is = d.openFile( ar[ i]);
// and copy to ram disk
int len = (int) is.length();
byte[] buf = new byte[ len];
is.readBytes( buf, 0, len);
os.writeBytes( buf, len);
// graceful cleanup
is.close();
os.close();
}
return ram;
}
--
To unsubscribe, e-mail: <mailto:lucene-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:lucene-dev-help@jakarta.apache.org>
("ram")
disks I wanted to play around w/ Lucene runnning purely out of memory.
Could anyone glance at this and verify that this code is correct.
Goal is to convert an existing, on-disk, index to a RAMDirectory, which
presumably is purely in memory.
If the code is correct I'd suggest someone w/ CVS powers adding it to
the
source base - maybe a static method in RAMDirectory itself.
public static RAMDirectory convert( String path)
throws IOException
{
final RAMDirectory ram = new RAMDirectory();
final Directory d = FSDirectory.getDirectory( path, false);
final String[] ar = d.list();
for ( int i = 0; i< ar.length; i++)
{
// make place on ram disk
OutputStream os = ram.createFile( ar[ i]);
// read current file
InputStream is = d.openFile( ar[ i]);
// and copy to ram disk
int len = (int) is.length();
byte[] buf = new byte[ len];
is.readBytes( buf, 0, len);
os.writeBytes( buf, len);
// graceful cleanup
is.close();
os.close();
}
return ram;
}
--
To unsubscribe, e-mail: <mailto:lucene-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:lucene-dev-help@jakarta.apache.org>