Hi everyone, For our project, we have the next requirements:
- One single cache <Guid, BinaryBlob> - Ability to lock a list of cache entries. - Large transactions. A typical one is to commit 1.2 million keys (a single PutAll call) with a total size of around 600MB. - Persistence In our proof of concept, we've got everything implemented and running: - One server node 2.9.1. Native persistence is enabled for default data region. - One client application using one Ignite C++ Thin Client to connect to the server node. - Both, server and client, are in the same machine by now. With this scenario, we're currently evaluating Ignite vs RocksDB. We would really like to choose Ignite because of its scalability, but we are facing a problem related to its performance: In Ignite, one single transaction commit of 1.2 million keys and 600MB takes around 70 seconds to complete, while RocksDB takes no more than 12 seconds. Moreover, if a second local node is added to the cluster, the application is not even able of completing the transaction (it stops after 10 minutes) Default data region's page size has been modified up to 16KB. Persistence has been enabled. Cache is PARTITIONED with TRANSACTIONAL atomicity mode. Because of the requirement about locking keys, performed transaction is PESSIMISTIC + READ_COMMITTED. The rest of the configuration values are the default ones (No backup, PRIMARY_SYNC, no OnHeapCache, etc) So, my questions are: - Taking the requirements into account, is Ignite a good option? - It's those time values that one might expect? - If not, any advice to improve them? Configuration files for both server nodes have been attached. Thanks everyone in advance for your help and time, first-node.xml <http://apache-ignite-users.70518.x6.nabble.com/file/t3059/first-node.xml> second-node.xml <http://apache-ignite-users.70518.x6.nabble.com/file/t3059/second-node.xml> Josemari -- Sent from: http://apache-ignite-users.70518.x6.nabble.com/
