[
https://issues.apache.org/jira/browse/IGNITE-9693?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16629186#comment-16629186
]
Ivan Rakov commented on IGNITE-9693:
------------------------------------
[~ivandasch], I've looked through your changes. A few comments:
1. Do we really need to park and unpark FileCompressorWorkers manually? Needed
synchronization can be implemented with BlockingQueue.
2. segmentAware.lastCompressedIdx is called prematurely - we put index in
queue, but there's no guarantee that segment is actually compressed.
IgniteWriteAheadLogManager#lastCompactedSegment method will report wrong
results.
3. deleteObsoleteRawSegments will be called concurrently from multiple threads,
this will cause many attempts to delete one file and permanent "Failed to
remove obsolete WAL segment" warnings spam.
4. FileCompressor#shutdown doesn't wait for shutdown of FileCompressorWorkers.
As a result, FileCompressorWorker may try to record event when
GridEventStorageManager is already stopped.
Also, is there a guarantee that park() call will instantly return if interrupt
flag was set *before* the call? I read park() javadoc twice and didn't find
proofs - seems like FileCompressorWorker may hang on park() on node stop.
5. FileWriteAheadLogManager.FileCompressor#run - minor code style violations:
no space after "for", no blank line before "if", tryReserveNextSegmentOrWait -
no space before "{".
6. This is arguable, but since we have a bunch FileCompressorWorker threads, it
feels like there's no need to keep FileCompressor thread. Putting segment
indexes to queue is the only useful work that FileCompressor performs.
> Scale up wal compression workers to increase performance
> --------------------------------------------------------
>
> Key: IGNITE-9693
> URL: https://issues.apache.org/jira/browse/IGNITE-9693
> Project: Ignite
> Issue Type: Improvement
> Reporter: Sergey Kosarev
> Assignee: Ivan Daschinskiy
> Priority: Major
> Fix For: 2.8
>
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)