mansikhara opened a new pull request, #249:
URL: https://github.com/apache/cassandra-analytics/pull/249

   …ace instance in the Cassandra 6.0 bridge
   
   AbstractSchemaBuilder created a missing keyspace instance by calling 
SchemaUpdater.openKeyspaceInstances(), which diffs the current cluster metadata 
against DistributedSchema.empty(). Every keyspace in the process therefore 
looks newly created and all of them are rebuilt, so each keyspace that already 
has an instance constructs its KeyspaceMetrics again, and every metric it 
re-registers makes Dropwizard's MetricRegistry.register throw 
IllegalArgumentException. Filling in those stack traces is the real cost, and 
it scales with the number of keyspaces the process has seen.
   
   This does not affect production, where a bulk job uses a single keyspace and 
builds its schema once. It is visible in tests: DataTypeTests opens a fresh 
keyspace per generated case, so the 6.0 core test job slowed down through the 
class until the CI step exceeded its deadline part way through. Two thread 
dumps taken fifteen seconds apart were both in Throwable.fillInStackTrace under 
MetricRegistry.register, and jstat ruled out memory pressure with zero full 
collections and seven seconds of GC across twelve minutes.
   
   openKeyspaceInstances() is replaced by openKeyspaceInstance(String), which 
diffs against the current keyspaces minus the one being opened, leaving exactly 
one keyspace in Keyspaces.diff().created so a single instance is built and no 
metric is registered twice. That also keeps the keyspace out of diff().altered, 
which is the property removeTables relies on to avoid Keyspace.dropCf 
initializing CompactionManager in client mode, so the CDC caller passes 
keyspaceMetadata.name and the blunt method is removed altogether.
   
   DataTypeTests on 6.0 goes from not completing to about ten minutes.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to