[infinispan-issues] [JBoss JIRA] (ISPN-12172) Make the number of segments dynamic

Dan Berindei (Jira) issues at jboss.org
Mon Jul 27 10:21:00 EDT 2020


Dan Berindei created ISPN-12172:
-----------------------------------

             Summary: Make the number of segments dynamic
                 Key: ISPN-12172
                 URL: https://issues.redhat.com/browse/ISPN-12172
             Project: Infinispan
          Issue Type: Bug
          Components: Configuration, Core
    Affects Versions: 11.0.1.Final
            Reporter: Dan Berindei
            Assignee: Dan Berindei
             Fix For: 12.0.0.Final


Now that the data container and stores store segment information, it's becoming harder and harder to change the number of segments to accommodate a growth in the number of nodes and preserve all the data.

We should investigate removing the {{numSegments}} configuration attribute and using an {{effectiveNumSegments}} that is the first power of 2 that's bigger than 10 * <cluster size> (customizable, maybe?) and at least as big as the previous {{effectiveNumSegments}}.

The number of segments increase would be decided by the coordinator on join and would require state transfer, as {{SyncConsistentHashFactory}} would not assign the split segments to exactly the same owners (although it would have to be pretty close in order to make this practical).

We would like to avoid updating the segment of every persisted entry on {{effectiveNumSegments}} changes, so the segment stored in persisted entries should be computed based on the maximum value we will allow for {{effectiveNumSegments}}, e.g. 2^16. We would then use a shift+mask to obtain the "effective segment" of the key, and range queries when obtaining all the keys in a segment.

 



--
This message was sent by Atlassian Jira
(v7.13.8#713008)



More information about the infinispan-issues mailing list