According to source code, JNA is being used to call malloc and free. In this case each cached row will be serialized into RAM.
We must be really careful when defining cache size - to large size would cause out of memory. Previous Cassandra releases has logic that would decrease cache size if heap is low.
Currently each row will be serialized without any memory limit checks - assuming that I understood it right.
are not used anymore - at least not when JNA is enabled, witch is default from Cassandra 1.0
I've just found, that JNA will be not used from 1.1 release - https://issues.apache.org/jira/browse/CASSANDRA-3271
I would be also nice to know what was the reason for this decision.
MaciejOn Wed, Nov 2, 2011 at 1:34 PM, Viktor Jevdokimov <Viktor.Jevdokimov@adform.com> wrote:
Up, also interested in answers to questions below.
Best regards/ Pagarbiai
Phone: +370 5 212 3063
Fax: +370 5 261 0453
J. Jasinskio 16C,
Disclaimer: The information contained in this message and attachments is intended solely for the attention and use of the named addressee and may be confidential. If you are not the intended recipient, you are reminded that the information remains the property of the sender. You must not use, disclose, distribute, copy, print or rely on this e-mail. If you have received this message in error, please contact the sender immediately and irrevocably delete this message and any copies.-----Original Message-----
From: Maciej Miklas [mailto:email@example.com]
Sent: Tuesday, November 01, 2011 11:15
Subject: Cassandra 1.x and proper JNA setup
is there any documentation about proper JNA configuration?
I do not understand few things:
1) Does JNA use JVM heap settings?
2) Do I need to decrease max heap size while using JNA?
3) How do I limit RAM allocated by JNA?
4) Where can I see / monitor row cache size?
5) I've configured JNA just for test on my dev computer and so far I've noticed serious performance issues (high cpu usage on heavy write load), so I must be doing something wrong.... I've just copied JNA jars into Cassandra/lib, without installing any native libs. This should not work at all, right?