[
https://issues.apache.org/jira/browse/CASSANDRA-18648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17743030#comment-17743030
]
Berenguer Blasi commented on CASSANDRA-18648:
---------------------------------------------
[~edimitrova] I am invoking your poly-JDK magic to see if you can read these
tea leaves and tell us if this j11 only failure (j8 works ok) is probably jamm
related (as it says), it should all be ok post-jamm fixing and we should only
create a ticket to check it works once that is done?
{noformat}
[java] # Fork: 1 of 1
[java] # Warmup Iteration 1: WARNING: An illegal reflective access
operation has occurred
[java] WARNING: Illegal reflective access by org.github.jamm.MemoryMeter
(file:/home/bereng/work/repos/bdpWS/ldtdeser/build/lib/jars/jamm-0.3.2.jar) to
field java.net.InetSocketAddress.holder
[java] WARNING: Please consider reporting this to the maintainers of
org.github.jamm.MemoryMeter
[java] WARNING: Use --illegal-access=warn to enable warnings of further
illegal reflective access operations
[java] WARNING: All illegal access operations will be denied in a future
release
[java] DEBUG
[org.apache.cassandra.test.microbench.DeletionTimeDeSerBench.testE2EDeSerializeDT-jmh-worker-1]
2023-07-14 06:57:56,711 InternalLoggerFactory.java:63 - Using SLF4J as the
default logging framework
[java] DEBUG
[org.apache.cassandra.test.microbench.DeletionTimeDeSerBench.testE2EDeSerializeDT-jmh-worker-1]
2023-07-14 06:57:56,713 InternalThreadLocalMap.java:83 -
-Dio.netty.threadLocalMap.stringBuilder.initialSize: 1024
[java] DEBUG
[org.apache.cassandra.test.microbench.DeletionTimeDeSerBench.testE2EDeSerializeDT-jmh-worker-1]
2023-07-14 06:57:56,713 InternalThreadLocalMap.java:86 -
-Dio.netty.threadLocalMap.stringBuilder.maxSize: 4096
[java] ERROR
[org.apache.cassandra.test.microbench.DeletionTimeDeSerBench.testE2EDeSerializeDT-jmh-worker-1]
2023-07-14 06:57:56,726 FileUtils.java:102 - FATAL: Cassandra is unable to
access required classes. This usually means it has been run without the aid of
the standard startup scripts or the scripts have been edited. If this was
intentional, and you are attempting to use Java 11+ you may need to add the
--add-exports and --add-opens jvm options from either jvm11-server.options or
jvm11-client.options
[java] java.lang.IllegalAccessException: access to public member failed:
jdk.internal.ref.Cleaner.clean[Ljava.lang.Object;@11a22f60/invokeVirtual, from
org.apache.cassandra.io.util.FileUtils (unnamed module @d33ab56)
[java] at
java.base/java.lang.invoke.MemberName.makeAccessException(MemberName.java:942)
[java] at
java.base/java.lang.invoke.MethodHandles$Lookup.checkAccess(MethodHandles.java:2201)
[java] at
java.base/java.lang.invoke.MethodHandles$Lookup.checkMethod(MethodHandles.java:2141)
[java] at
java.base/java.lang.invoke.MethodHandles$Lookup.getDirectMethodCommon(MethodHandles.java:2285)
[java] at
java.base/java.lang.invoke.MethodHandles$Lookup.getDirectMethodNoSecurityManager(MethodHandles.java:2278)
[java] at
java.base/java.lang.invoke.MethodHandles$Lookup.unreflect(MethodHandles.java:1747)
[java] at
org.apache.cassandra.io.util.FileUtils.<clinit>(FileUtils.java:95)
[java] at
org.apache.cassandra.io.util.BufferedDataOutputStreamPlus.close(BufferedDataOutputStreamPlus.java:290)
[java] at
org.apache.cassandra.test.microbench.DeletionTimeDeSerBench.testE2EDeSerializeDT(DeletionTimeDeSerBench.java:132)
[java] at
org.apache.cassandra.test.microbench.generated.DeletionTimeDeSerBench_testE2EDeSerializeDT_jmhTest.testE2EDeSerializeDT_avgt_jmhStub(DeletionTimeDeSerBench_testE2EDeSerializeDT_jmhTest.java:234)
[java] at
org.apache.cassandra.test.microbench.generated.DeletionTimeDeSerBench_testE2EDeSerializeDT_jmhTest.testE2EDeSerializeDT_AverageTime(DeletionTimeDeSerBench_testE2EDeSerializeDT_jmhTest.java:174)
[java] at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[java] at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[java] at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[java] at java.base/java.lang.reflect.Method.invoke(Method.java:566)
[java] at
org.openjdk.jmh.runner.BenchmarkHandler$BenchmarkTask.call(BenchmarkHandler.java:453)
[java] at
org.openjdk.jmh.runner.BenchmarkHandler$BenchmarkTask.call(BenchmarkHandler.java:437)
[java] at
java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[java] at
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
[java] at
java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[java] at
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
[java] at
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
[java] at java.base/java.lang.Thread.run(Thread.java:829)
[java] <failure>
[java]
[java] java.lang.ExceptionInInitializerError
[java] at
org.apache.cassandra.io.util.BufferedDataOutputStreamPlus.close(BufferedDataOutputStreamPlus.java:290)
[java] at
org.apache.cassandra.test.microbench.DeletionTimeDeSerBench.testE2EDeSerializeDT(DeletionTimeDeSerBench.java:132)
[java] at
org.apache.cassandra.test.microbench.generated.DeletionTimeDeSerBench_testE2EDeSerializeDT_jmhTest.testE2EDeSerializeDT_avgt_jmhStub(DeletionTimeDeSerBench_testE2EDeSerializeDT_jmhTest.java:234)
[java] at
org.apache.cassandra.test.microbench.generated.DeletionTimeDeSerBench_testE2EDeSerializeDT_jmhTest.testE2EDeSerializeDT_AverageTime(DeletionTimeDeSerBench_testE2EDeSerializeDT_jmhTest.java:174)
[java] at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[java] at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[java] at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[java] at java.base/java.lang.reflect.Method.invoke(Method.java:566)
[java] at
org.openjdk.jmh.runner.BenchmarkHandler$BenchmarkTask.call(BenchmarkHandler.java:453)
[java] at
org.openjdk.jmh.runner.BenchmarkHandler$BenchmarkTask.call(BenchmarkHandler.java:437)
[java] at
java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[java] at
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
[java] at
java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[java] at
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
[java] at
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
[java] at java.base/java.lang.Thread.run(Thread.java:829)
[java] Caused by: java.lang.RuntimeException:
java.lang.IllegalAccessException: access to public member failed:
jdk.internal.ref.Cleaner.clean[Ljava.lang.Object;@11a22f60/invokeVirtual, from
org.apache.cassandra.io.util.FileUtils (unnamed module @d33ab56)
[java] at
org.apache.cassandra.io.util.FileUtils.<clinit>(FileUtils.java:106)
[java] ... 16 more
[java] Caused by: java.lang.IllegalAccessException: access to public
member failed:
jdk.internal.ref.Cleaner.clean[Ljava.lang.Object;@11a22f60/invokeVirtual, from
org.apache.cassandra.io.util.FileUtils (unnamed module @d33ab56)
[java] at
java.base/java.lang.invoke.MemberName.makeAccessException(MemberName.java:942)
[java] at
java.base/java.lang.invoke.MethodHandles$Lookup.checkAccess(MethodHandles.java:2201)
[java] at
java.base/java.lang.invoke.MethodHandles$Lookup.checkMethod(MethodHandles.java:2141)
[java] at
java.base/java.lang.invoke.MethodHandles$Lookup.getDirectMethodCommon(MethodHandles.java:2285)
[java] at
java.base/java.lang.invoke.MethodHandles$Lookup.getDirectMethodNoSecurityManager(MethodHandles.java:2278)
[java] at
java.base/java.lang.invoke.MethodHandles$Lookup.unreflect(MethodHandles.java:1747)
[java] at
org.apache.cassandra.io.util.FileUtils.<clinit>(FileUtils.java:95)
[java] ... 16 more
[java]
[java]
[java] Benchmark had encountered error, and fail on error was requested
[java] ERROR: org.openjdk.jmh.runner.RunnerException: Benchmark caught the
exception
[java] at org.openjdk.jmh.runner.Runner.runBenchmarks(Runner.java:578)
[java] at org.openjdk.jmh.runner.Runner.internalRun(Runner.java:320)
[java] at org.openjdk.jmh.runner.Runner.run(Runner.java:209)
[java] at org.openjdk.jmh.Main.main(Main.java:71)
[java] Caused by: org.openjdk.jmh.runner.BenchmarkException: Benchmark
error during the run
[java] at
org.openjdk.jmh.runner.BenchmarkHandler.runIteration(BenchmarkHandler.java:428)
[java] at
org.openjdk.jmh.runner.BaseRunner.runBenchmark(BaseRunner.java:262)
[java] at
org.openjdk.jmh.runner.BaseRunner.runBenchmark(BaseRunner.java:234)
[java] at
org.openjdk.jmh.runner.BaseRunner.doSingle(BaseRunner.java:139)
[java] at
org.openjdk.jmh.runner.BaseRunner.runBenchmarksForked(BaseRunner.java:76)
[java] at org.openjdk.jmh.runner.ForkedRunner.run(ForkedRunner.java:72)
[java] at org.openjdk.jmh.runner.ForkedMain.main(ForkedMain.java:84)
[java] Suppressed: java.lang.ExceptionInInitializerError
[java] at
org.apache.cassandra.io.util.BufferedDataOutputStreamPlus.close(BufferedDataOutputStreamPlus.java:290)
[java] at
org.apache.cassandra.test.microbench.DeletionTimeDeSerBench.testE2EDeSerializeDT(DeletionTimeDeSerBench.java:132)
[java] at
org.apache.cassandra.test.microbench.generated.DeletionTimeDeSerBench_testE2EDeSerializeDT_jmhTest.testE2EDeSerializeDT_avgt_jmhStub(DeletionTimeDeSerBench_testE2EDeSerializeDT_jmhTest.java:234)
[java] at
org.apache.cassandra.test.microbench.generated.DeletionTimeDeSerBench_testE2EDeSerializeDT_jmhTest.testE2EDeSerializeDT_AverageTime(DeletionTimeDeSerBench_testE2EDeSerializeDT_jmhTest.java:174)
[java] at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[java] at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[java] at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[java] at
java.base/java.lang.reflect.Method.invoke(Method.java:566)
[java] at
org.openjdk.jmh.runner.BenchmarkHandler$BenchmarkTask.call(BenchmarkHandler.java:453)
[java] at
org.openjdk.jmh.runner.BenchmarkHandler$BenchmarkTask.call(BenchmarkHandler.java:437)
[java] at
java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[java] at
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
[java] at
java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[java] at
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
[java] at
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
[java] at java.base/java.lang.Thread.run(Thread.java:829)
[java] Caused by: java.lang.RuntimeException:
java.lang.IllegalAccessException: access to public member failed:
jdk.internal.ref.Cleaner.clean[Ljava.lang.Object;@11a22f60/invokeVirtual, from
org.apache.cassandra.io.util.FileUtils (unnamed module @d33ab56)
[java] at
org.apache.cassandra.io.util.FileUtils.<clinit>(FileUtils.java:106)
[java] ... 16 more
[java] Caused by: java.lang.IllegalAccessException: access to public
member failed:
jdk.internal.ref.Cleaner.clean[Ljava.lang.Object;@11a22f60/invokeVirtual, from
org.apache.cassandra.io.util.FileUtils (unnamed module @d33ab56)
[java] at
java.base/java.lang.invoke.MemberName.makeAccessException(MemberName.java:942)
[java] at
java.base/java.lang.invoke.MethodHandles$Lookup.checkAccess(MethodHandles.java:2201)
[java] at
java.base/java.lang.invoke.MethodHandles$Lookup.checkMethod(MethodHandles.java:2141)
[java] at
java.base/java.lang.invoke.MethodHandles$Lookup.getDirectMethodCommon(MethodHandles.java:2285)
[java] at
java.base/java.lang.invoke.MethodHandles$Lookup.getDirectMethodNoSecurityManager(MethodHandles.java:2278)
[java] at
java.base/java.lang.invoke.MethodHandles$Lookup.unreflect(MethodHandles.java:1747)
[java] at
org.apache.cassandra.io.util.FileUtils.<clinit>(FileUtils.java:95)
[java] ... 16 more
{noformat}
> Improved DeletionTime serialization
> -----------------------------------
>
> Key: CASSANDRA-18648
> URL: https://issues.apache.org/jira/browse/CASSANDRA-18648
> Project: Cassandra
> Issue Type: Improvement
> Components: Local/SSTable
> Reporter: Berenguer Blasi
> Assignee: Berenguer Blasi
> Priority: Normal
> Fix For: 5.x
>
> Attachments: screenshot-1.png, screenshot-2.png, screenshot-3.png
>
> Time Spent: 2h 20m
> Remaining Estimate: 0h
>
> DeletionTime.markedForDeleteAt is a long useconds since Unix Epoch. But I
> noticed that with 7 bytes we can already encode ~2284 years. We can either
> shed the 8th byte, for reduced IO and disk, or can encode some sentinel
> values as flags there. [~blerer] suggested starting with DeletionTime.LIVE.
> That would mean reading and writing 1 byte instead of 12 (8 mfda long + 4
> ldts int). Yes we already avoid serializing DeletionTime (DT) in sstables at
> _row_ level entirely but not at _partition_ level and it is also serialized
> at index, metadata, etc.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]