[
https://issues.apache.org/jira/browse/RATIS-2320?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18069683#comment-18069683
]
Tsz-wo Sze commented on RATIS-2320:
-----------------------------------
Tried to benchmark multiple threaded writers but the results were not good,
i.e. the single thread cases are better.
- https://github.com/szetszwo/ratis/tree/MultiFileWriterBenchmark
- org.apache.ratis.benchmark.ReadWriteBenchmark
{code}
totalSize: 2GB
chunkSize: 128kB
tmpDir : tmp_ReadWriteBenchmark
SingleFileDoubleByteBufferThread [random]: 2148.606 ms
SingleFileDoubleByteBufferExecutor [random]: 2179.302 ms
SingleFileDoubleByteArrayThread [random]: 592.518 ms
SingleFileDoubleByteArrayExecutor [random]: 468.007 ms
MultiFileByteArray_2 [random]: 970.278 ms
MultiFileByteBuffer_2 [random]: 1410.135 ms
SingleFileByteArray [random]: 1478.742 ms
SingleFileByteBuffer [random]: 2687.411 ms
Sorted: [SingleFileDoubleByteArrayExecutor, SingleFileDoubleByteArrayThread,
MultiFileByteArray_2, MultiFileByteBuffer_2, SingleFileByteArray,
SingleFileDoubleByteBufferThread, SingleFileDoubleByteBufferExecutor,
SingleFileByteBuffer]
SingleFileDoubleByteBufferThread [random]: 2339.576 ms
SingleFileDoubleByteBufferExecutor [random]: 2278.057 ms
SingleFileDoubleByteArrayThread [random]: 625.461 ms
SingleFileDoubleByteArrayExecutor [random]: 664.312 ms
MultiFileByteArray_4 [random]: 699.564 ms
MultiFileByteBuffer_4 [random]: 1478.918 ms
SingleFileByteArray [random]: 2773.708 ms
SingleFileByteBuffer [random]: 4150.676 ms
Sorted: [SingleFileDoubleByteArrayThread, SingleFileDoubleByteArrayExecutor,
MultiFileByteArray_4, MultiFileByteBuffer_4,
SingleFileDoubleByteBufferExecutor, SingleFileDoubleByteBufferThread,
SingleFileByteArray, SingleFileByteBuffer]
SingleFileDoubleByteBufferThread [random]: 2579.288 ms
SingleFileDoubleByteBufferExecutor [random]: 3033.265 ms
SingleFileDoubleByteArrayThread [random]: 1581.597 ms
SingleFileDoubleByteArrayExecutor [random]: 1814.084 ms
MultiFileByteArray_8 [random]: 3594.418 ms
MultiFileByteBuffer_8 [random]: 844.449 ms
SingleFileByteArray [random]: 3623.475 ms
SingleFileByteBuffer [random]: 2615.935 ms
Sorted: [MultiFileByteBuffer_8, SingleFileDoubleByteArrayThread,
SingleFileDoubleByteArrayExecutor, SingleFileDoubleByteBufferThread,
SingleFileByteBuffer, SingleFileDoubleByteBufferExecutor, MultiFileByteArray_8,
SingleFileByteArray]
SingleFileDoubleByteBufferThread [random]: 2907.472 ms
SingleFileDoubleByteBufferExecutor [random]: 3665.446 ms
SingleFileDoubleByteArrayThread [random]: 2133.274 ms
SingleFileDoubleByteArrayExecutor [random]: 2267.345 ms
MultiFileByteArray_16 [random]: 5119.330 ms
MultiFileByteBuffer_16 [random]: 4772.853 ms
SingleFileByteArray [random]: 2109.156 ms
SingleFileByteBuffer [random]: 3590.026 ms
Sorted: [SingleFileByteArray, SingleFileDoubleByteArrayThread,
SingleFileDoubleByteArrayExecutor, SingleFileDoubleByteBufferThread,
SingleFileByteBuffer, SingleFileDoubleByteBufferExecutor,
MultiFileByteBuffer_16, MultiFileByteArray_16]
MultiFileByteArray_2 [ file]: 5497.417 ms
MultiFileByteBuffer_2 [ file]: 6174.950 ms
SingleFileByteArray [ file]: 771.020 ms
SingleFileByteBuffer [ file]: 2933.446 ms
Sorted: [SingleFileByteArray, SingleFileByteBuffer, MultiFileByteArray_2,
MultiFileByteBuffer_2]
MultiFileByteArray_4 [ file]: 5766.071 ms
MultiFileByteBuffer_4 [ file]: 3835.339 ms
SingleFileByteArray [ file]: 2721.481 ms
SingleFileByteBuffer [ file]: 1149.070 ms
Sorted: [SingleFileByteBuffer, SingleFileByteArray, MultiFileByteBuffer_4,
MultiFileByteArray_4]
MultiFileByteArray_8 [ file]: 4313.972 ms
MultiFileByteBuffer_8 [ file]: 6063.481 ms
SingleFileByteArray [ file]: 2386.332 ms
SingleFileByteBuffer [ file]: 1792.636 ms
Sorted: [SingleFileByteBuffer, SingleFileByteArray, MultiFileByteArray_8,
MultiFileByteBuffer_8]
MultiFileByteArray_16 [ file]: 4831.108 ms
MultiFileByteBuffer_16 [ file]: 4382.308 ms
SingleFileByteArray [ file]: 2927.349 ms
SingleFileByteBuffer [ file]: 2288.268 ms
Sorted: [SingleFileByteBuffer, SingleFileByteArray, MultiFileByteBuffer_16,
MultiFileByteArray_16]
{code}
> Use multiple threads to write RaftLog
> -------------------------------------
>
> Key: RATIS-2320
> URL: https://issues.apache.org/jira/browse/RATIS-2320
> Project: Ratis
> Issue Type: Sub-task
> Components: RaftLog
> Reporter: Tsz-wo Sze
> Assignee: Tsz-wo Sze
> Priority: Major
>
> {quote}
> Change the way how the Raft log is written to the disk. For example, we can
> create a layer that allows multiple threads to write to multiple files on
> disk simultaneously, and later reconstruct the log from multiple files. The
> downside is that the logic and implementation become more complicated.
> {quote}
> Above is an suggestion from the doc
> https://docs.google.com/document/d/1gy8Y0imrciEyrsHyQcDIxVt_vkOVAL_P1HBB8tW072E/edit?usp=sharing
> (Thanks Lewis and Lucas for testing Ratis!)
--
This message was sent by Atlassian Jira
(v8.20.10#820010)