klsince opened a new pull request, #12241: URL: https://github.com/apache/pinot/pull/12241
This was to refine https://github.com/apache/pinot/pull/12105 We can't just reuse the SegmentLocks in RealtimeSegmentManager.handleUpsert() to synchronize the segment replacement logic. Because many methods of partitionUpsertMetadataManager takes this lock internally, but after taking snapshot RW lock. If we take segmentLock here (before taking snapshot RW lock), we can get into deadlock with the other threads calling other methods of partitionUpsertMetadataManager, like deleteSegment. So this PR added a private UpsertSegmentLocks just to sync segment replacement inside handleUpsert() method. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
