How we broke Apache Ignite by adding persistence

Consultant at GridGain Systems / Wandle Software Limited
Jan. 3, 2020
How we broke Apache Ignite by adding persistence
How we broke Apache Ignite by adding persistence
How we broke Apache Ignite by adding persistence
How we broke Apache Ignite by adding persistence
How we broke Apache Ignite by adding persistence
How we broke Apache Ignite by adding persistence
How we broke Apache Ignite by adding persistence
How we broke Apache Ignite by adding persistence
How we broke Apache Ignite by adding persistence
How we broke Apache Ignite by adding persistence
How we broke Apache Ignite by adding persistence
How we broke Apache Ignite by adding persistence
How we broke Apache Ignite by adding persistence
How we broke Apache Ignite by adding persistence
How we broke Apache Ignite by adding persistence
How we broke Apache Ignite by adding persistence
How we broke Apache Ignite by adding persistence
How we broke Apache Ignite by adding persistence
How we broke Apache Ignite by adding persistence
How we broke Apache Ignite by adding persistence
How we broke Apache Ignite by adding persistence
How we broke Apache Ignite by adding persistence
1 of 22

More Related Content

What's hot

20210427 azure lille_meetup_azure_data_stack20210427 azure lille_meetup_azure_data_stack
20210427 azure lille_meetup_azure_data_stackAlexandre BERGERE
Google Cloud Storage | Google Cloud Platform Tutorial | Google Cloud Architec...Google Cloud Storage | Google Cloud Platform Tutorial | Google Cloud Architec...
Google Cloud Storage | Google Cloud Platform Tutorial | Google Cloud Architec...Edureka!
AWS Summit Singapore 2019 | Snowflake: Your Data. No LimitsAWS Summit Singapore 2019 | Snowflake: Your Data. No Limits
AWS Summit Singapore 2019 | Snowflake: Your Data. No LimitsAWS Summits
GCP Cloud Storage SecurityGCP Cloud Storage Security
GCP Cloud Storage SecurityJoseph Holbrook, Chief Learning Officer (CLO)
node.js on Google Compute Enginenode.js on Google Compute Engine
node.js on Google Compute EngineArun Nagarajan
Understanding cloud with Google Cloud PlatformUnderstanding cloud with Google Cloud Platform
Understanding cloud with Google Cloud PlatformDr. Ketan Parmar

Similar to How we broke Apache Ignite by adding persistence

OSDC 2017 - Christos Erotocritou - Apache ignite in-memory data fabricOSDC 2017 - Christos Erotocritou - Apache ignite in-memory data fabric
OSDC 2017 - Christos Erotocritou - Apache ignite in-memory data fabricNETWAYS
On Cloud Nine: How to be happy migrating your in-memory computing platform to...On Cloud Nine: How to be happy migrating your in-memory computing platform to...
On Cloud Nine: How to be happy migrating your in-memory computing platform to...Stephen Darlington
In-Memory Computing Essentials for Software EngineersIn-Memory Computing Essentials for Software Engineers
In-Memory Computing Essentials for Software EngineersDenis Magda
Data Summer Conf 2018, “Apache Ignite + Apache Spark RDDs and DataFrames inte...Data Summer Conf 2018, “Apache Ignite + Apache Spark RDDs and DataFrames inte...
Data Summer Conf 2018, “Apache Ignite + Apache Spark RDDs and DataFrames inte...Provectus
“Building consistent and highly available distributed systems with Apache Ign...“Building consistent and highly available distributed systems with Apache Ign...
“Building consistent and highly available distributed systems with Apache Ign...Tom Diederich
An Introduction to Apache Ignite - Mandhir Gidda - Codemotion Rome 2017An Introduction to Apache Ignite - Mandhir Gidda - Codemotion Rome 2017
An Introduction to Apache Ignite - Mandhir Gidda - Codemotion Rome 2017Codemotion

Similar to How we broke Apache Ignite by adding persistence(20)

Recently uploaded

How to fix JavaScript SEO problems on a scaleHow to fix JavaScript SEO problems on a scale
How to fix JavaScript SEO problems on a scaleSerge Bezborodov
La strada verso il successo con i database a grafo, la Graph Data Science e l...La strada verso il successo con i database a grafo, la Graph Data Science e l...
La strada verso il successo con i database a grafo, la Graph Data Science e l...Neo4j
Top Benefits of Web based Systems. Top Benefits of Web based Systems.
Top Benefits of Web based Systems. sarasiva4
Transform Your Digital Reality with Metaverse Development SolutionsTransform Your Digital Reality with Metaverse Development Solutions
Transform Your Digital Reality with Metaverse Development SolutionsFlexsin
Kubernetes with Cilium in AWS - Experience Report!Kubernetes with Cilium in AWS - Experience Report!
Kubernetes with Cilium in AWS - Experience Report!QAware GmbH
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocESUG

How we broke Apache Ignite by adding persistence

Editor's Notes

  1. First, I’m not Alexey Second… we didn’t break it
  2. Alternate title: How and why Apache Ignite™ is Changing from an In-Memory Data Grid into an In-Memory Database. In this talk, we will follow the path that led Apache Ignite™ from a compute grid and data grid product to a distributed database and an in-memory computing platform. We will examine technical tasks and decisions that were driving the transformations. Step back: who knows about Ignite?
  3. Traditional databases don’t scale. Buy bigger and bigger boxes until you run out of money. Traditional compute grids have to copy data across the network, which at modern scale is just impractical. Ignite scales horizontally and sends compute to the data rather than the other way around. In memory for speed. Disk persistence for volume.
  4. Memory data grid Optionally backed by the “Cache Store” SQL works as fork-join – SQL executed on every node, results joined together Resuts correct results in limited use cases SQL only in-memory Restart means loading all data Centralised store – scalablity issues
  5. LocalStore designed to allow faster restarts Local Store is an append-only structure with periodical compactions Still need to load data from local store to memory (on datasets of 100s of GBs warmup could take 3+ hours) Keys are still residing in memory, so the data set size is limited SQL functionality is improved (two-step queries like plain ORDER BY, GROUP BY, some cases of distributed joins are implemented, but still there are restrictions, not all queries return correct results, a user must check collocation rules)   So better but still missing stuff. What are our requirements for The Best system?
  6. Algorithms for Recovery and Isolation Exploiting Semantics Ignite 1.x had options for on- and off-heap storage. 2.x only off-heap Unlike LocalStore (and competition), it uses a WAL… like legacy databases. Crash recovery
  7. ABA problem -- thread synchronization (https://en.wikipedia.org/wiki/ABA_problem)
  8. We’ve mostly talked about the Good Stuff.. But there are complications What’s happening here? Baseline topology
  9. … and the discussion about Java 10 brings us to … the futur
  10. Improve SQL What’s wrong with H2? H2 is not a distributed database with a very simple planner. Ignite uses H2 internal APIs and hacks to integrate with H2. No query execution graph. A query is effectively executed based on AST with minimum transformations H2 planner does not know about distributed SQL, it is almost impossible to execute complex SQL queries (subqueries, complex aggregations, non-colocated tables) effectively No memory control Currently investigating using Apache Calcite as a query optimizer + custom execution engine. See Apache Developers list (+IEP)   Improve Split-Brain handling out-of-the-box Require users to implement TopologyValidator Should work without users writing a single line of code Modularisation don’t download everything Dependencies for stuff like Spark / Kafka with different release schedules Even “internal” stuff like ML