[
https://issues.apache.org/jira/browse/CASSANDRA-18049?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17699393#comment-17699393
]
Michael Semb Wever edited comment on CASSANDRA-18049 at 3/12/23 8:53 PM:
-------------------------------------------------------------------------
dtest failures are fixed.
- needed newer version of openhft-posix to failover nicely when jffi (libffi)
cannot load.
- precondition put in to check loading of posix (also will print correct error
message at startup)
- auditlog and fqltool tests do chronicle-queue file-shrinking synchronously
(as can throw exception if cq4 file is first deleted)
Patches as same as above, with cassandra-dtest added
-
[https://github.com/apache/cassandra-dtest/compare/trunk...thelastpickle:cassandra-dtest:mck/18049]
Notes
- the {{background.releaser}} is kept enabled as a background thread, per
default
-- `{{BackgroundResourceReleaser.stop()}}` is added to {{BinLog.stop()}}
- if libjffi dylib fails to load (e.g. on my macos), an appropriate stacktrace
is printed from `{{{}PosixAPI.posix(){}}}` via the precondition), everything
works otherwise
- introduced (but not used yet), the default sync to disk mode for
chronicle-bytes is async, ref
[MappedBytesStore.java|https://github.com/OpenHFT/Chronicle-Bytes/blob/chronicle-bytes-2.23.33/src/main/java/net/openhft/chronicle/bytes/MappedBytesStore.java#L49]
-- if the user configures audit or fql logging to be blocking should we then
always be using {{SyncMode.SYNC}} ?
-- alternatively, if the user wants blocking AND paranoid disk sync, they can
manually set `{{-DmappedFile.defaultSyncMode=SYNC}}` (and we should document
this in cassandra.yaml)
- System property {{chronicle.announcer.disable=true}} hardcoded to avoid the
chronicle INFO announcement/advertisement
- the 8x faster version of {{BytesInternal.contentEqual*(..)}} (and
{{BytesStore.equals(..)}}) on jdk11+ (using SIMD comparison instruction) needs
`{{--illegal-access=permit --add-exports java.base/jdk.internal.ref=ALL-UNNAMED
--add-exports java.base/jdk.internal.util=ALL-UNNAMED}}`, ref
[here|https://github.com/OpenHFT/Chronicle-Bytes/compare/chronicle-bytes-2.20.111...chronicle-bytes-2.23.33#diff-7be2a8746677c85a85b22da547a6132e51ba0a5b61538f9b19d3e8f6da43be20R115]
-- this opens for CASSANDRA-13903
- chronicle-wire has a list of required exports
[here|https://github.com/OpenHFT/Chronicle-Wire/blob/cba6efbb26656f76a8978901e2792e9bc5866106/demo/java17setup.sh],
our use of chronicle-wire is limited to {{WireIn}}, {{WireOut}}, {{ValueOut}},
{{WriteMarshallable}}, and {{ReadMarshallable}}.
dependency upgrade diffs:
- chronicle-bytes:
https://github.com/OpenHFT/Chronicle-Bytes/compare/chronicle-bytes-2.20.111...chronicle-bytes-2.23.33
- chronicle-core:
https://github.com/OpenHFT/Chronicle-Core/compare/chronicle-core-2.20.126...chronicle-core-2.23.36
- chronicle-queue:
https://github.com/OpenHFT/Chronicle-Queue/compare/chronicle-queue-5.20.123...chronicle-queue-5.23.37
- chronicle-threads:
https://github.com/OpenHFT/Chronicle-Threads/compare/chronicle-threads-2.20.111...chronicle-threads-2.23.25
- chronicle-wire:
https://github.com/OpenHFT/Chronicle-Wire/compare/chronicle-wire-2.20.117...chronicle-wire-2.23.39
A _quick_ scan of these and little stands out (as is expected from only minor
semver changes). Changes are predominantly
license/copyright/annotations/exception-handling/error-messages/tests/demo/jmh/code-formatting.
Internal improvements exist for handling of single-threaded, chunked and/or
sparse mapped files, jdk9 and jdk11, and reference counting and releasing.
Dependency changes (will be passed by dev@):
- Added
-- affinity-3.23ea1.jar
-- asm-analysis-9.2.jar
-- asm-commons-9.2.jar
-- asm-tree-9.2.jar
-- asm-util-9.2.jar
-- jffi-1.3.9.jar
-- jna-platform-5.5.0.jar
-- jnr-a64asm-1.0.0.jar
-- jnr-constants-0.10.3.jar
-- jnr-ffi-2.2.11.jar
-- jnr-x86asm-1.0.2.jar
-- posix-2.24ea4.jar
- Upgraded
-- chronicle-bytes-2.20.111.jar --> chronicle-bytes-2.23.33.jar
-- chronicle-core-2.20.126.jar --> chronicle-core-2.23.36.jar
-- chronicle-queue-5.20.123.jar --> chronicle-queue-5.23.37.jar
-- chronicle-threads-2.20.111.jar --> chronicle-threads-2.23.25.jar
-- chronicle-wire-2.20.117.jar --> chronicle-wire-2.23.39.jar
The Posix dependency pulls in all \*ffi and asm\* transitive dependencies.
was (Author: michaelsembwever):
dtest failures are fixed.
- needed newer version of openhft-posix to failover nicely when jffi (libffi)
cannot load.
- precondition put in to check loading of posix (also will print correct error
message at startup)
- auditlog and fqltool tests do chronicle-queue file-shrinking synchronously
(as can throw exception if cq4 file is first deleted)
Patches as same as above, with cassandra-dtest added
-
[https://github.com/apache/cassandra-dtest/compare/trunk...thelastpickle:cassandra-dtest:mck/18049]
Notes
- the {{background.releaser}} is kept enabled as a background thread, per
default
-- `{{BackgroundResourceReleaser.stop()}}` is added to {{BinLog.stop()}}
- if libjffi dylib fails to load (e.g. on my macos), an appropriate stacktrace
is printed from `{{{}PosixAPI.posix(){}}}` via the precondition), everything
works otherwise
- introduced (but not used yet), the default sync to disk mode for
chronicle-bytes is async, ref
[MappedBytesStore.java|https://github.com/OpenHFT/Chronicle-Bytes/blob/chronicle-bytes-2.23.33/src/main/java/net/openhft/chronicle/bytes/MappedBytesStore.java#L49]
-- if the user configures audit or fql logging to be blocking should we then
always be using {{SyncMode.SYNC}} ?
-- alternatively, if the user wants blocking AND paranoid disk sync, they can
manually set `{{-DmappedFile.defaultSyncMode=SYNC}}` (and we should document
this in cassandra.yaml)
- System property {{chronicle.announcer.disable=true}} hardcoded to avoid the
chronicle INFO announcement/advertisement
- the 8x faster version of {{BytesInternal.contentEqual*(..)}} (and
{{BytesStore.equals(..)}}) on jdk11+ (using SIMD comparison instruction) needs
`{{--illegal-access=permit --add-exports java.base/jdk.internal.ref=ALL-UNNAMED
--add-exports java.base/jdk.internal.util=ALL-UNNAMED}}`, ref
[here|https://github.com/OpenHFT/Chronicle-Bytes/compare/chronicle-bytes-2.20.111...chronicle-bytes-2.23.33#diff-7be2a8746677c85a85b22da547a6132e51ba0a5b61538f9b19d3e8f6da43be20R115]
-- this opens for CASSANDRA-13903
- chronicle-wire has a list of required exports
[here|https://github.com/OpenHFT/Chronicle-Wire/blob/cba6efbb26656f76a8978901e2792e9bc5866106/demo/java17setup.sh],
our use of chronicle-wire is limited to {{WireIn}}, {{WireOut}}, {{ValueOut}},
{{WriteMarshallable}}, and {{ReadMarshallable}}.
dependency upgrade diffs:
- chronicle-bytes:
https://github.com/OpenHFT/Chronicle-Bytes/compare/chronicle-bytes-2.20.111...chronicle-bytes-2.23.33
- chronicle-core:
https://github.com/OpenHFT/Chronicle-Core/compare/chronicle-core-2.20.126...chronicle-core-2.23.36
- chronicle-queue:
https://github.com/OpenHFT/Chronicle-Queue/compare/chronicle-queue-5.20.123...chronicle-queue-5.23.37
- chronicle-threads:
https://github.com/OpenHFT/Chronicle-Threads/compare/chronicle-threads-2.20.111...chronicle-threads-2.23.25
- chronicle-wire:
https://github.com/OpenHFT/Chronicle-Wire/compare/chronicle-wire-2.20.117...chronicle-wire-2.23.39
A _quick_ scan of these and little stands out (as is expected from only minor
semver changes). Changes are predominantly
license/copyright/annotations/exception-handling/error-messages/tests/demo/jmh/code-formatting.
Internal improvements exist for handling of single-threaded, chunked and/or
sparse mapped files, jdk9 and jdk11, and reference counting and releasing.
Dependency changes (will be passed by dev@):
- Added
-- affinity-3.23ea1.jar
-- asm-analysis-9.2.jar
-- asm-commons-9.2.jar
-- asm-tree-9.2.jar
-- asm-util-9.2.jar
-- jffi-1.3.9.jar
-- jna-platform-5.5.0.jar
-- jnr-a64asm-1.0.0.jar
-- jnr-constants-0.10.3.jar
-- jnr-ffi-2.2.11.jar
-- jnr-x86asm-1.0.2.jar
-- posix-2.24ea4.jar
- Upgraded
-- chronicle-bytes-2.20.111.jar --> chronicle-bytes-2.23.33.jar
-- chronicle-core-2.20.126.jar --> chronicle-core-2.23.36.jar
-- chronicle-queue-5.20.123.jar --> chronicle-queue-5.23.37.jar
-- chronicle-threads-2.20.111.jar --> chronicle-threads-2.23.25.jar
-- chronicle-wire-2.20.117.jar --> chronicle-wire-2.23.39.jar
The Posix dependency pulls in all *ffi and asm* transitive dependencies.
> Update Chronicle Queue
> ----------------------
>
> Key: CASSANDRA-18049
> URL: https://issues.apache.org/jira/browse/CASSANDRA-18049
> Project: Cassandra
> Issue Type: Task
> Reporter: Ekaterina Dimitrova
> Assignee: Michael Semb Wever
> Priority: Normal
> Fix For: 5.x
>
>
> According to [this|https://chronicle.software/chronicle-support-java-17]
> article:
> {code:java}
> Starting from chronicle-bom-2.22ea26, all new releases can be run under Java
> 17 when run on the class path (but not yet under the module path).{code}
> This BOM is newer than what we currently have in both 4.1 and trunk. 4.1
> points in comments to
> [https://mvnrepository.com/artifact/net.openhft/chronicle-bom/1.16.23] which
> I believe was just forgotten to be updated/removed. The versions we see
> correspond to this BOM
> [https://mvnrepository.com/artifact/net.openhft/chronicle-bom/2.20.226]
> It is still older than chronicle-bom-2.22ea26 so we need to upgrade. I
> suggest we also add a comment again which BOM is considered, this makes
> things easier.
> Further to running CI, review of the CHANGE logs needs to happen to ensure we
> do not miss anything that can impact us and it is not caught by our tests.
> For testing with JDK17, please, contact [~e.dimitrova] for latest branch and
> CI config (at this point feature branch in the cassandra repo does not exist)
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]