List of usage examples for org.apache.cassandra.io.compress SnappyCompressor instance
SnappyCompressor instance
To view the source code for org.apache.cassandra.io.compress SnappyCompressor instance.
Click Source Link
From source file:com.fullcontact.cassandra.io.compress.CompressedRandomAccessReaderTest.java
License:Apache License
private void testResetAndTruncate(File f, boolean compressed, int junkSize) throws IOException { final String filename = f.getAbsolutePath(); try {/*from ww w .j a v a 2 s. co m*/ SSTableMetadata.Collector sstableMetadataCollector = SSTableMetadata.createCollector() .replayPosition(null); SequentialWriter writer = compressed ? new CompressedSequentialWriter(f, filename + ".metadata", false, new CompressionParameters(SnappyCompressor.instance), sstableMetadataCollector) : new SequentialWriter(f, CompressionParameters.DEFAULT_CHUNK_LENGTH, false); writer.write("The quick ".getBytes()); FileMark mark = writer.mark(); writer.write("blue fox jumps over the lazy dog".getBytes()); // write enough to be sure to change chunk for (int i = 0; i < junkSize; ++i) { writer.write((byte) 1); } writer.resetAndTruncate(mark); writer.write("brown fox jumps over the lazy dog".getBytes()); writer.close(); assert f.exists(); RandomAccessReader reader = compressed ? CompressedRandomAccessReader.open(new Path(filename), new CompressionMetadata(filename + ".metadata", f.length(), fs), false, fs) : RandomAccessReader.open(new Path(f.getPath()), fs); String expected = "The quick brown fox jumps over the lazy dog"; assertEquals(expected.length(), reader.length()); byte[] b = new byte[expected.length()]; reader.readFully(b); assert new String(b).equals(expected) : "Expecting '" + expected + "', got '" + new String(b) + "'"; } finally { // cleanup if (f.exists()) f.delete(); File metadata = new File(filename + ".metadata"); if (compressed && metadata.exists()) metadata.delete(); } }
From source file:com.fullcontact.cassandra.io.compress.CompressedRandomAccessReaderTest.java
License:Apache License
@Test public void testDataCorruptionDetection() throws IOException { String CONTENT = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam vitae."; File file = new File("testDataCorruptionDetection"); file.deleteOnExit();//from ww w.j av a2 s. c o m File metadata = new File(file.getPath() + ".meta"); metadata.deleteOnExit(); SSTableMetadata.Collector sstableMetadataCollector = SSTableMetadata.createCollector().replayPosition(null); SequentialWriter writer = new CompressedSequentialWriter(file, metadata.getPath(), false, new CompressionParameters(SnappyCompressor.instance), sstableMetadataCollector); writer.write(CONTENT.getBytes()); writer.close(); // open compression metadata and get chunk information CompressionMetadata meta = new CompressionMetadata(metadata.getPath(), file.length(), fs); CompressionMetadata.Chunk chunk = meta.chunkFor(0); RandomAccessReader reader = CompressedRandomAccessReader.open(new Path(file.getPath()), meta, false, fs); // read and verify compressed data assertEquals(CONTENT, reader.readLine()); // close reader reader.close(); Random random = new Random(); RandomAccessFile checksumModifier = null; try { checksumModifier = new RandomAccessFile(file, "rw"); byte[] checksum = new byte[4]; // seek to the end of the compressed chunk checksumModifier.seek(chunk.length); // read checksum bytes checksumModifier.read(checksum); // seek back to the chunk end checksumModifier.seek(chunk.length); // lets modify one byte of the checksum on each iteration for (int i = 0; i < checksum.length; i++) { checksumModifier.write(random.nextInt()); checksumModifier.getFD().sync(); // making sure that change was synced with disk final RandomAccessReader r = CompressedRandomAccessReader.open(new Path(file.getPath()), meta, false, fs); Throwable exception = null; try { r.readLine(); } catch (Throwable t) { exception = t; } assertNotNull(exception); assertEquals(exception.getClass(), CorruptSSTableException.class); assertEquals(exception.getCause().getClass(), CorruptBlockException.class); r.close(); } // lets write original checksum and check if we can read data updateChecksum(checksumModifier, chunk.length, checksum); reader = CompressedRandomAccessReader.open(new Path(file.getPath()), meta, false, fs); // read and verify compressed data assertEquals(CONTENT, reader.readLine()); // close reader reader.close(); } finally { if (checksumModifier != null) checksumModifier.close(); } }
From source file:me.tango.cassandra.bench.SchemaLoader.java
License:Apache License
private static void useCompression(List<KSMetaData> schema) { for (KSMetaData ksm : schema) { for (CFMetaData cfm : ksm.cfMetaData().values()) { cfm.compressionParameters(new CompressionParameters(SnappyCompressor.instance)); }// w w w.j a v a2 s. com } }