[
https://issues.apache.org/jira/browse/CASSANDRA-8630?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14282315#comment-14282315
]
Oleg Anastasyev edited comment on CASSANDRA-8630 at 1/19/15 11:17 AM:
----------------------------------------------------------------------
So, here are numbers of tests from my laptop for uncompressed sstables:
With RAR patch the avg speed of compaction is
15.84 MB/s
without RAR patch:
14.32 MB/s
so, the RAR patch alone gives + 10% for the uncompressed case.
BTW read is called slightly more than write for compaction. So any optimization
to RAR would have more impact on compaction speed than for SW.
was (Author: m0nstermind):
So, here are numbers of tests from my laptop for uncompressed sstables:
With RAR patch the avg speed of compaction is
15.84 MB/s
without RAR patch:
14.32 MB/s
so, the RAR patch alone gives + 10% for the uncompressed case.
> Faster sequencial IO (on compaction, streaming, etc)
> ----------------------------------------------------
>
> Key: CASSANDRA-8630
> URL: https://issues.apache.org/jira/browse/CASSANDRA-8630
> Project: Cassandra
> Issue Type: Improvement
> Components: Core
> Reporter: Oleg Anastasyev
> Assignee: Oleg Anastasyev
> Labels: performance
> Attachments: 8630-FasterSequencialReadsAndWrites.txt, cpu_load.png
>
>
> When node is doing a lot of sequencial IO (streaming, compacting, etc) a lot
> of CPU is lost in calls to RAF's int read() and DataOutputStream's write(int).
> This is because default implementations of readShort,readLong, etc as well as
> their matching write* are implemented with numerous calls of byte by byte
> read and write.
> This makes a lot of syscalls as well.
> A quick microbench shows than just reimplementation of these methods in
> either way gives 8x speed increase.
> A patch attached implements RandomAccessReader.read<Type> and
> SequencialWriter.write<Type> methods in more efficient way.
> I also eliminated some extra byte copies in CompositeType.split and
> ColumnNameHelper.maxComponents, which were on my profiler's hotspot method
> list during tests.
> A stress tests on my laptop show that this patch makes compaction 25-30%
> faster on uncompressed sstables and 15% faster for compressed ones.
> A deployment to production shows much less CPU load for compaction.
> (I attached a cpu load graph from one of our production, orange is niced CPU
> load - i.e. compaction; yellow is user - i.e. not compaction related tasks)
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)