[ 
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]

Reply via email to