-
Notifications
You must be signed in to change notification settings - Fork 233
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Kundera performance slow down with load increase #562
Comments
-Vivek |
Thanks, |
Because Kundera keeps in memory cache for managed entities as per JPA. No need to call it for each entity. Periodic flush say after count on entities reaches to 5000. We did test 1 million record over on single thread and multiple threads as well. I assume you are using single entity manager factory as you mentioned single session.
Datastax java driver is based on CQL binary protocol not the Thrift one. Being an object mapper Kundera overhead is not more than 7% on Thrift or datastax. -Vivek |
Yes, I am using single entity manager factory. I only create a single entity manager and persist data. I have noticed that it works fine for half million records but eventually become slow if records are greater than half millions. The same test I did with datastax api and it works fine. I am inserting data with kundera thrift, kundera pelops, and datastax api. I noticed that kundera performs better than datastax api if I execute queries synchronously with datastax api and datastax performs 10 times better than kundera if queries are executed asynchronously. Kundera being an object mapper should cause an overhead, but I am surprise how it performs better than datastax api. |
Please add em.clear() and try. Clearly it is because of first level cache as memory is not getting freed up
Kundera only supports synchronous executions. We have used ycsb for Kundera vs raw thrift API comparison. Have a look at: HTH, |
The problem was solved. |
I have 3 nodes cassandra cluster and I am generating load on 3 nodes using kundera client. I realized that the performance goes down quickly if I increase the load. I did the same experiment using Datastax driver 2.0.1 and there was no issue with performance. There might be a possibility that I have not configured it correctly. I have only persistence.xml file and there is no other configuration file. I am using kundera-cassandra 2.9.
I have edit cassandra.yaml configuration file and define cluster. Do I have to define cluster in kundera if so, how is there any example ? Is there any clue that why performance is slow ? Also can you please tell, kundera executes call synchronously or asynchronously underneath ? Also why kundera thrift have better performance than kundera pelops ?
The text was updated successfully, but these errors were encountered: