From 23c913f4642cc2463966f86dba6a24b987bc0f0a Mon Sep 17 00:00:00 2001 From: Gabriel Garcia Date: Thu, 27 Apr 2017 23:33:28 -0400 Subject: [PATCH] Provide a method for flushing a CQLSSTableWriter. --- .../cassandra/io/sstable/AbstractSSTableSimpleWriter.java | 5 +++++ .../org/apache/cassandra/io/sstable/CQLSSTableWriter.java | 7 +++++++ .../cassandra/io/sstable/SSTableSimpleUnsortedWriter.java | 5 +++++ .../apache/cassandra/io/sstable/SSTableSimpleWriter.java | 5 +++++ 4 files changed, 22 insertions(+) diff --git a/src/java/org/apache/cassandra/io/sstable/AbstractSSTableSimpleWriter.java b/src/java/org/apache/cassandra/io/sstable/AbstractSSTableSimpleWriter.java index 9a8f968e6935..15bd2489f507 100644 --- a/src/java/org/apache/cassandra/io/sstable/AbstractSSTableSimpleWriter.java +++ b/src/java/org/apache/cassandra/io/sstable/AbstractSSTableSimpleWriter.java @@ -128,5 +128,10 @@ PartitionUpdate getUpdateFor(ByteBuffer key) throws IOException * @return an update on partition {@code key} that is tied to this writer. */ abstract PartitionUpdate getUpdateFor(DecoratedKey key) throws IOException; + + /** + * Request that buffered contents are flushed to disk. + */ + abstract void flush() throws IOException; } diff --git a/src/java/org/apache/cassandra/io/sstable/CQLSSTableWriter.java b/src/java/org/apache/cassandra/io/sstable/CQLSSTableWriter.java index a19523572067..0d308d85b528 100644 --- a/src/java/org/apache/cassandra/io/sstable/CQLSSTableWriter.java +++ b/src/java/org/apache/cassandra/io/sstable/CQLSSTableWriter.java @@ -314,6 +314,13 @@ public com.datastax.driver.core.UserType getUDType(String dataType) return (com.datastax.driver.core.UserType) UDHelper.driverType(userType); } + /** + * Flushes the data currently buffered. + */ + public void flush() throws IOException { + writer.flush(); + } + /** * Close this writer. *

diff --git a/src/java/org/apache/cassandra/io/sstable/SSTableSimpleUnsortedWriter.java b/src/java/org/apache/cassandra/io/sstable/SSTableSimpleUnsortedWriter.java index 23e18b5e2f03..e5968bd3b6ce 100644 --- a/src/java/org/apache/cassandra/io/sstable/SSTableSimpleUnsortedWriter.java +++ b/src/java/org/apache/cassandra/io/sstable/SSTableSimpleUnsortedWriter.java @@ -122,6 +122,11 @@ public void add(Row row) }; } + void flush() throws IOException + { + sync(); + } + @Override public void close() throws IOException { diff --git a/src/java/org/apache/cassandra/io/sstable/SSTableSimpleWriter.java b/src/java/org/apache/cassandra/io/sstable/SSTableSimpleWriter.java index 7fbd79df1866..874f8f17cc91 100644 --- a/src/java/org/apache/cassandra/io/sstable/SSTableSimpleWriter.java +++ b/src/java/org/apache/cassandra/io/sstable/SSTableSimpleWriter.java @@ -74,6 +74,11 @@ PartitionUpdate getUpdateFor(DecoratedKey key) throws IOException return update; } + void flush() + { + // Nothing to do here. This writer does not buffer. + } + public void close() { try