Performance tuning is important for improving the user experience. Apache Ignite makes network calls, communicates with other nodes, serializes objects, swaps entries from RAM to disk, rebalances data, stores objects on-heap and off-heap, creates WAL files, and more. Therefore, we need to keep an eye on different areas to improve the overall system performance. Ignite provides the following tips (https://apacheignite.readme.io/docs/performance-tips) to tune different areas:
- Turn off back ups
- Tune durable memory
- Tune data rebalancing
- Configure thread pools
- Use collocated computations
- Use data streamer
- Batch up your messages
- Tune garbage collection
- Disable internal event notifications
Try avoiding distributed joins and take a key/value-based approach. The code bundle has an example to show you the difference between distributed SQLs and key/value-based algorithms...