Details
-
Bug
-
Status: Resolved
-
Low
-
Resolution: Fixed
-
None
-
None
-
Low
Description
I just upgraded my dev-environment to C* 1.2. Unfortunetaly 1.2 makes my JUnit tests slow again, due to a blocking-flush in saveTruncationRecord().
With Cassandra 1.1 truncate was very fast due to: CASSANDRA-4153
My proposal is to make saveTruncationRecord() only flush when durableWrites are enabled.
My assumption is that if somebody turn off durable writes then he does not mind if truncate is not guaranteed to be durable either.
I successfully tested the following patch with my testsuite. Its as fast as it was with 1.1 (maybe even faster!):
@@ -186,5 +186,8 @@ public class SystemTable String req = "UPDATE system.%s SET truncated_at = truncated_at + %s WHERE key = '%s'"; processInternal(String.format(req, LOCAL_CF, truncationAsMapEntry(cfs, truncatedAt, position), LOCAL_KEY)); - forceBlockingFlush(LOCAL_CF); + + KSMetaData ksm = Schema.instance.getKSMetaData(cfs.table.name); + if (ksm.durableWrites) // flush only when durable_writes are enabled + forceBlockingFlush(LOCAL_CF); }
Attachments
Attachments
Issue Links
- is related to
-
CASSANDRA-7511 Always flush on TRUNCATE
- Resolved
- relates to
-
CASSANDRA-4153 Optimize truncate when snapshots are disabled or keyspace not durable
- Resolved