[ 
https://issues.apache.org/jira/browse/CASSANDRA-18049?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17699393#comment-17699393
 ] 

Michael Semb Wever commented on CASSANDRA-18049:
------------------------------------------------

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 on my macos (and appropriate stacktrace is 
printed from `{{{}PosixAPI.posix(){}}}` in the precondition), but everything 
works otherwise
 - introduced, 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: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to