Ryan Ruel created CURATOR-690:
---------------------------------

             Summary: CuratorCache fails to load the cache if there are more 
than 64K child ZNodes
                 Key: CURATOR-690
                 URL: https://issues.apache.org/jira/browse/CURATOR-690
             Project: Apache Curator
          Issue Type: Improvement
          Components: Recipes
    Affects Versions: 5.5.0
            Reporter: Ryan Ruel
             Fix For: 5.6.0


If there are more than 64K nodes in a tree which CuratorCache is watching, the 
following exception is thrown:


{code:java}
java.lang.IllegalStateException: Attempt to register more than 65535 parties 
for 
org.apache.curator.framework.recipes.cache.CuratorCacheImpl$1@52354867[phase = 
0 parties = 65535 arrived = 0]{code}

As shown in the exception, this is due to the fact that 
java.util.concurrent.Phaser hard-limits the maximum number of Phaser 
registrants to 0xfff (64K).

A note in the Phaser documentation indicates why this limit exist and proposes 
a solution using Tiered Phasers:

"Implementation notes: This implementation restricts the maximum number of 
parties to 65535. Attempts to register additional parties result in 
IllegalStateException. However, you can and should create tiered phasers to 
accommodate arbitrarily large sets of participants."



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to