lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Simon Willnauer (JIRA)" <>
Subject [jira] [Commented] (LUCENE-8757) Better Segment To Thread Mapping Algorithm
Date Tue, 07 May 2019 13:36:00 GMT


Simon Willnauer commented on LUCENE-8757:

[~atris] I think the assertion in this part doesn't hold:

+    for (LeafReaderContext ctx : sortedLeaves) {
+      if (ctx.reader().maxDoc() > maxDocsPerSlice) {
+        assert group == null;
+        List singleSegmentSlice = new ArrayList();

if the previous segment was smallish then _group_ is non-null? I think you should test these
cases, maybe add a random test and randomize the order or the segments?

+        List singleSegmentSlice = new ArrayList();
+        singleSegmentSlice.add(ctx);
+        groupedLeaves.add(singleSegmentSlice);
can and should be replaced by:


otherwise it looks good.

> Better Segment To Thread Mapping Algorithm
> ------------------------------------------
>                 Key: LUCENE-8757
>                 URL:
>             Project: Lucene - Core
>          Issue Type: Improvement
>            Reporter: Atri Sharma
>            Priority: Major
>         Attachments: LUCENE-8757.patch, LUCENE-8757.patch
> The current segments to threads allocation algorithm always allocates one thread per
segment. This is detrimental to performance in case of skew in segment sizes since small segments
also get their dedicated thread. This can lead to performance degradation due to context switching
> A better algorithm which is cognizant of size skew would have better performance for
realistic scenarios

This message was sent by Atlassian JIRA

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message