Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Data Structure Name

Configuration Name

Instance Name

1

moduleSyncWorkQueue

defaultQueueConfig

moduleSyncWorkQueue

2

moduleSyncStartedOnCmHandles

moduleSyncStartedConfig

moduleSyncStartedOnCmHandles

3

dataSyncSemaphores

dataSyncSemaphoresConfig

dataSyncSemaphores

4

trustLevelPerCmHandle

trustLevelPerCmHandleCacheConfig

hazelcastInstanceTrustLevelPerCmHandleMap

5

trustLevelPerDmiPlugin

trustLevelPerDmiPluginCacheConfig

hazelcastInstanceTrustLevelPerDmiPluginMap

6

cmNotificationSubscriptionCache

cmNotificationSubscriptionCacheMapConfig

hazelCastInstanceCmNotificationSubscription

current_config-20241008-200233.pngImage Added

Target Instance Configuration

...

  • What I want to achieve,

    • Cluster would still be the same but want to limit the number of instances.

    • We will have a single Hazelcast instance that has all the configurations of different data structures and we can get hold off a datastructure when needed using that instance.

    • It will be a single instance per JVM.

  • How we can achieve,

    • By having a common configuration i.e master configuration for all the type of data structure that we need. We still have same config. but we are giving it different names everytime.

    • CPS_NCMP_INSTANCE_CONFIG_NAME is the environment variable to set the common config name and it defaults to cps-and-ncmp-hz-instance-config.

    • During initialization check if the configuration is present or not, if present return the initialized instance to get hold off the required data structures.

target_config-20241008-200321.pngImage Added

Impacts

  • There would be just one member per JVM now as opposed to 6 instances per JVM.

  • For multiple instance setup , lets say 2 instances , with new setup we will have 2 members as opposed to 12 members.

    • Less members , less number of TCP connections in between them.

    • More members , more chatty the members are in order to replicate the data or choose the leader partition etc.

  • Less members meaning less data to replicate , and since everything is in memory hence expecting some heap space to be free.

  • Number of exposed ports should be just one per JVM as opposed to 6 per JVM. ( may need to change the charts config to free up the exposed ports )

...