[
https://issues.apache.org/jira/browse/CASSANDRA-20162?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17909636#comment-17909636
]
Dmitry Konstantinov commented on CASSANDRA-20162:
-------------------------------------------------
Thank you!
so, according to the report only one test failed:
distributed.test.jmx.JMXFeatureTest.testOneNetworkInterfaceProvisioning-_jdk17_x86_64
which is not related to the changed functionality, based on the exception it
looks like it is a conflict with an used ephemeral TCP port..
* BindException: Address already in use
* java.rmi.server.ExportException: Port already in use: 39101; nested
exception is
{code:java}
java.util.concurrent.ExecutionException: java.lang.RuntimeException:
Feature.JMX was enabled but could not be started.-java.lang.RuntimeException:
java.util.concurrent.ExecutionException: java.lang.RuntimeException:
Feature.JMX was enabled but could not be started.
at org.apache.cassandra.utils.Throwables.maybeFail(Throwables.java:79)
at
org.apache.cassandra.utils.FBUtilities.waitOnFutures(FBUtilities.java:543)
at
org.apache.cassandra.distributed.impl.AbstractCluster.parallelForEach(AbstractCluster.java:788)
at
org.apache.cassandra.distributed.impl.AbstractCluster.startup(AbstractCluster.java:1051)
at
org.apache.cassandra.distributed.shared.AbstractBuilder.start(AbstractBuilder.java:166)
at
org.apache.cassandra.distributed.test.jmx.JMXFeatureTest.testJmxFeatures(JMXFeatureTest.java:77)
at
org.apache.cassandra.distributed.test.jmx.JMXFeatureTest.testOneNetworkInterfaceProvisioning(JMXFeatureTest.java:65)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
Caused by: java.util.concurrent.ExecutionException: java.lang.RuntimeException:
Feature.JMX was enabled but could not be started.
at
org.apache.cassandra.utils.concurrent.AbstractFuture.getWhenDone(AbstractFuture.java:239)
at
org.apache.cassandra.utils.concurrent.AbstractFuture.get(AbstractFuture.java:246)
at
org.apache.cassandra.utils.FBUtilities.waitOnFutures(FBUtilities.java:530)
Caused by: java.lang.RuntimeException: Feature.JMX was enabled but could not be
started.
at
org.apache.cassandra.distributed.impl.IsolatedJmx.startJmx(IsolatedJmx.java:136)
at
org.apache.cassandra.distributed.impl.Instance.startJmx(Instance.java:780)
at
org.apache.cassandra.distributed.impl.Instance.lambda$startup$12(Instance.java:618)
at
org.apache.cassandra.concurrent.FutureTask$2.call(FutureTask.java:124)
at org.apache.cassandra.concurrent.FutureTask.call(FutureTask.java:61)
at org.apache.cassandra.concurrent.FutureTask.run(FutureTask.java:71)
at
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at
io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:840)
Caused by: java.rmi.server.ExportException: Port already in use: 39101; nested
exception is:
java.net.BindException: Address already in use
at
java.rmi/sun.rmi.transport.tcp.TCPTransport.listen(TCPTransport.java:346)
at
java.rmi/sun.rmi.transport.tcp.TCPTransport.exportObject(TCPTransport.java:243)
at
java.rmi/sun.rmi.transport.tcp.TCPEndpoint.exportObject(TCPEndpoint.java:415)
at java.rmi/sun.rmi.transport.LiveRef.exportObject(LiveRef.java:147)
at
java.rmi/sun.rmi.server.UnicastServerRef.exportObject(UnicastServerRef.java:235)
at java.rmi/sun.rmi.registry.RegistryImpl.setup(RegistryImpl.java:223)
at java.rmi/sun.rmi.registry.RegistryImpl.(RegistryImpl.java:182)
at java.rmi/sun.rmi.registry.RegistryImpl.(RegistryImpl.java:152)
at
org.apache.cassandra.utils.JMXServerUtils$JmxRegistry.(JMXServerUtils.java:349)
at
org.apache.cassandra.distributed.impl.IsolatedJmx.startJmx(IsolatedJmx.java:97)
Caused by: java.net.BindException: Address already in use
at java.base/sun.nio.ch.Net.bind0(Native Method)
at java.base/sun.nio.ch.Net.bind(Net.java:555)
at java.base/sun.nio.ch.Net.bind(Net.java:544)
at java.base/sun.nio.ch.NioSocketImpl.bind(NioSocketImpl.java:648)
at java.base/java.net.ServerSocket.bind(ServerSocket.java:388)
at java.base/java.net.ServerSocket.(ServerSocket.java:274)
at
java.base/javax.net.DefaultServerSocketFactory.createServerSocket(ServerSocketFactory.java:231)
at
org.apache.cassandra.distributed.impl.CollectingRMIServerSocketFactoryImpl.createServerSocket(CollectingRMIServerSocketFactoryImpl.java:51)
at
java.rmi/sun.rmi.transport.tcp.TCPEndpoint.newServerSocket(TCPEndpoint.java:673)
at
java.rmi/sun.rmi.transport.tcp.TCPTransport.listen(TCPTransport.java:335)
10.994 {code}
> Avoid memory allocation in NativeCell.valueSize() and
> NativeClustering.dataSize()
> ---------------------------------------------------------------------------------
>
> Key: CASSANDRA-20162
> URL: https://issues.apache.org/jira/browse/CASSANDRA-20162
> Project: Apache Cassandra
> Issue Type: Improvement
> Components: Local/Memtable
> Reporter: Dmitry Konstantinov
> Assignee: Dmitry Konstantinov
> Priority: Normal
> Fix For: 5.0.x, 5.x
>
> Attachments: Cell_valueSize_usage_during_flushing.png,
> ci_summary_netudima_20162-5.0_142.html, image-2024-12-23-09-53-27-226.png,
> jfr_allocation_profile.png, results_details_netudima_20162-5.0_142.tar.xz
>
> Time Spent: 10m
> Remaining Estimate: 0h
>
> Currently for memtable_allocation_type: offheap_objects we allocate memory to
> calculate dataSize() during a write to a memtable because we use default
> implementation of dataSize() which retrieves an object using value() method.
> To avoid such memory allocation we can calculate data size directly for
> NativeCell and NativeClustering
> test schema details:
> {code:java}
> CREATE TABLE memory_tests.test_table_text_0 (part_key text,clust_key
> text,value_0 text,value_1 text,value_2 text,value_3 text,value_4 text,value_5
> text,value_6 text,value_7 text,value_8 text,value_9 text,PRIMARY
> KEY(part_key,clust_key))
> {code}
> write query:
> {code:java}
> INSERT INTO memory_tests.test_table_text_0
> (part_key,clust_key,value_0,value_1,value_2,value_3,value_4,value_5,value_6,value_7,value_8,value_9)
> VALUES (?,?,?,?,?,?,?,?,?,?,?,?)
> {code}
> changed settings:
> {code:java}
> memtable_allocation_type: offheap_objects
> memtable:
> configurations:
> skiplist:
> class_name: SkipListMemtable
> trie:
> class_name: TrieMemtable
> default:
> inherits: trie // changed default to trie
> {code}
> JFR allocation report:
> !jfr_allocation_profile.png|width=570!
> !image-2024-12-23-09-53-27-226.png|width=570!
> Memtable flushing logic also is affected:
> !Cell_valueSize_usage_during_flushing.png|width=570!
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]