Skip to content

Conversation

@dkropachev
Copy link
Owner

No description provided.

Bret McGuire and others added 30 commits July 12, 2023 17:34
…voked: schemaListener1.onSessionReady (apache#1670)

ListenersIT.java:
- Add 500ms wait on SchemaListener#onSessionReady call verification
- Add latch to wait for MySchemaChangeListener#onSessionReady
- Add some comments around which listeners/methods need synchronizations and why/not
jackson-jaxrs-json-provider to 2.13.4 to address recent CVEs

Additional:
- Remove unused maven property legacy-jackson.version
Disable should_inject_session_in_listeners test. The problem with this
test is that it immediately checks the CqlSession after it was built,
but there is still some session initialization pending in the
background.
…se @BackendRequirement (apache#1667)

Refactor @BackendRequirement test skipping logic into new rule, BackendRequirementRule.
…ust not send frame with WARNING flag for native protocol version < 4 (apache#1669)

NullSavingStrategyIT.java:
- Remove V3 protocol configuration from class SessionRule
- Create new session configured with V3 protocol in @BeforeClass method to use in tests
…ts with specified jvm (apache#1719)

Additionally:
- Set --jvm_version=8 when running dse 6.8.19+ with graph workloads (DSP-23501)
- Update commons-configuration2 to 2.9.0 + deps in BundleOptions to support java17
- Update felix framework version to 7.0.1 for java17 (FELIX-6287)
- Pick up newer bndlib for ArrayIndexOutOfBounds error printed with OsgiGraphIT (bndtools/bnd issue#3405)
  - Update pax-url-wrap to 2.6.4 (and bring pax-url-reference up to the same version)
  - Force newer tinybundles version 3.0.0 (default 2.1.1 version required older bndlib)
apache#1689)

* add support for publishing percentile time series for the histogram metrics cql-requests, cql-messages and throttling delay.

Motivation:

Histogram metrics is generating too many metrics overloading the promethous servers. if application has 500 Vms
and 1000 cassandra nodes, The histogram metrics generates 100*500*1000 = 50,000,000 time series every 30 seconds.
This is just too much metrics.  Let us say we can generate percentile 95 timeseries for for every cassandra nodes,
then we only have 1*500 = 500 metrics and in applciation side, we can ignore the _bucket time series. This way there
will be very less metrics.

Modifications:
add configurable pre-defined percentiles to Micrometer Timer.Builder.publishPercentiles. This change is being added to
cql-requests, cql-messages and throttling delay.

Result:
Based on the configuration, we will see additonal quantile time series for cql-requests, cql-messages and throttling delay
histogram metrics.

* add support for publishing percentile time series for the histogram metrics cql-requests, cql-messages and throttling delay.

Motivation:

Histogram metrics is generating too many metrics overloading the promethous servers. if application has 500 Vms
and 1000 cassandra nodes, The histogram metrics generates 100*500*1000 = 50,000,000 time series every 30 seconds.
This is just too much metrics.  Let us say we can generate percentile 95 timeseries for for every cassandra nodes,
then we only have 1*500 = 500 metrics and in applciation side, we can ignore the _bucket time series. This way there
will be very less metrics.

Modifications:
add configurable pre-defined percentiles to Micrometer Timer.Builder.publishPercentiles. This change is being added to
cql-requests, cql-messages and throttling delay.

Result:
Based on the configuration, we will see additonal quantile time series for cql-requests, cql-messages and throttling delay
histogram metrics.

* using helper method as suggested in review

* fixes as per review comments

* add configuration option which switches aggregable histogram generation on/off for all metric flavors [default=on]

* updating java doc

* rename method to publishPercentilesIfDefined

* renmae method

---------

Co-authored-by: Nagappa Paraddi <[email protected]>
…ndra-java-driver.html )

 patch by Mick Semb Wever; reviewed by Henry Hughes for CASSANDRA-18611
Upgrades netty to 4.1.100.Final
Upgrades snappy to 1.1.10.5
patch by Henry Hughes; reviewed by Mick Semb Wever for CASSANDRA-18969
patch by Claude Warren; reviewed by Henry Hughes, Mick Semb Wever for CASSANDRA-18969
patch by Claude Warren; reviewed by Henry Hughes, Mick Semb Wever for CASSANDRA-18969
renovate bot and others added 26 commits September 16, 2025 22:07
1. Update dependencies in pyproject.toml
2. Run `poetry lock`
3. Update workflow python to `3.13`
The main issue is that it uses `cache.size()`.
While it may not be a bad idea to use that, the documentation
mentions that it returns an approximate size of the cache.
`CqlPrepareAsyncProcessor` actually invalidates the prepare requests that
finish with errors (see `process` method). Such is the case with this test.
The `PreparedStatement` gets cached for a really short period and then
invalidated because of the exception.
Depending on the exact timings it would be correct for the cache to report
either size 0 or size 1. Additionally the moment when the size gets updated
may differ from the moments modifications to the cache contents are made.

This change is a quick workaround that should
achieve the same end result as the setup in PreparedStatementCachingIT.
Here we use reflection to forcibly change the cache used by the
request processor. Same type, but has removal listener added to it.
Instead of relying on the uncertain cache size the test will listen for
the removal from the cache.

The alternative would be reimplementing similar setup as in
PreparedStatementCachingIT with some changes. That means
having a test version of DefaultDriverContext, CqlPrepareAsyncProcessor,
SessionBuilder and necessary methods, so that we could inject the listener
without the reflection.

The other option is moving this test method to the PreparedStatementCachingIT,
but then the cache's remove callback which is used there throughout the class
needs to be adjusted specifically for this method.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.