Platforms for distributed in-memory computing such as Apache Ignite rely on horizontal scaling. The bigger the cluster is, the bigger profit you get. Does adding a second machine double the performance? Does adding ten more give you and order of magnitude change? Is it always this way? What is the responsibility of a framework, and what is responsilbility of a developer?
In this talk we'll examine the most important compromises and contradictions that arise while designing applications with the in-memory systems:
- Pros and cons of different sharding techniques
- Data model adaptation for effective work in a cluster
- Problems of synchronization and coordination in distributed systems