[ https://issues.apache.org/jira/browse/CASSANDRA-10402?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jonathan Ellis resolved CASSANDRA-10402.
----------------------------------------
Resolution: Invalid
Java client is at https://github.com/datastax/java-driver
> reduce the memory usage of Metadata.tokenMap.tokenToHost
> --------------------------------------------------------
>
> Key: CASSANDRA-10402
> URL: https://issues.apache.org/jira/browse/CASSANDRA-10402
> Project: Cassandra
> Issue Type: Improvement
> Components: Drivers (now out of tree)
> Reporter: JosephGao
> Fix For: 2.1.x
>
>
> My application uses 2000+ keyspaces, and will dynamically create keyspaces and tables.
And then in java client, the Metadata.tokenMap.tokenToHost would use about 1g memory. so this
will cause a lot of full gc.
> As I see, the key of the tokenToHost is keyspace, and the value is a tokenId_to_replicateNodes
map.
> When I try to solve this problem, I find something not sure: * all keyspaces have
same 'tokenId_to_replicateNodes' map *.
> My replication strategy of all keyspaces is : simpleStrategy and replicationFactor
is 3
> So would it be possible if keyspaces use same strategy, the value of tokenToHost
map use a same map. So it would extremely reduce the memory usage
> ps: the following is effected code:
> for (KeyspaceMetadata keyspace : keyspaces)
> {
> ReplicationStrategy strategy = keyspace.replicationStrategy();
> Map<Token, Set<Host>> ksTokens = (strategy == null)
> ? makeNonReplicatedMap(tokenToPrimary)
> : strategy.computeTokenToReplicaMap(tokenToPrimary, ring);
> tokenToHosts.put(keyspace.getName(), ksTokens);
> }
> tokenToPrimary is all same, ring is all same, and if strategy is all same , strategy.computeTokenToReplicaMap
would return 'same' map but different object( cause every calling returns a new HashMap)
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
|