We are seeing cassandra using very high virtual memory. One server in the cluster shows 90GB and the other shows about 70GB of committed virtual memory.
The real memory used is less than 1GB. The Xmx is 4GB. The physical memory on the machine is 32GB and the swap space on the machine is around 20GB.

I understand that the virtual memory is not really used by the process and is just reserved. My question is why does cassandra need to reserve such huge memory. What is the logic that is used internally. How is it related to usage pattern or data storage pattern. Should we be concerned?