O'Reilly logo
live online training icon Live Online training

In-Memory Computing Essentials

Techniques for Improved Speed and Scale for Java Developers

Topic: Data
Denis Magda

Join Denis Magda as he outlines the fundamental capabilities of in-memory computing platforms, which boost application performance and solve scalability problems by storing and processing an unlimited number of datasets in memory across a cluster of interconnected machines.

This session is for Java developers and architects who build high-performance, data-intensive applications and want practical experience with in-memory computing technologies such as caches, data grids, and databases. During the course, you are introduced to the three essential capabilities of in-memory computing (data partitioning, affinity co-location, and co-located processing), and you learn how to apply the newly acquired knowledge to dramatically increase the speed of your applications.

What you'll learn-and how you can apply it

By the end of this live online course, you’ll understand:

  • The essential capabilities of in-memory computing technologies
  • How to use data partitioning to achieve limitless horizontal scalability
  • How affinity co-location of data makes it possible to run high-performance, distributed queries at scale
  • How to negate any negative impact that the network might have on the performance of your applications by running custom compute tasks straight on the cluster nodes
  • The key features and capabilities of Apache Ignite, the in-memory computing platform that is used for the course exercises and demonstrations.

And you’ll be able to:

  • Configure and boot up distributed in-memory clusters
  • Scale out the cluster on a data-volume growth or workload increase
  • Design your data model properly, with the knowledge of the affinity co-location concept
  • Create, optimize, and run distributed SQL queries with JOINs over the in-memory cluster at high speeds
  • Develop custom Java compute tasks for your data-intensive applications run the tasks straight on the cluster node
  • Monitor the state of the cluster and resources utilization

This training course is for you because...

  • You’re a seasoned Java expert who designs and builds high-performance data-intensive applications.
  • You want to become a subject-matter expert in in-memory computing, an expert who can use in-memory software to improve legacy systems and build high-performance applications.


  • Experienced Java developers with in-depth knowledge of multi-threading, concurrency, networking APIs and protocols, and memory management
  • Practical experience working with relational, NoSQL, or Hadoop databases

Course Set-up

Explore the course GitHub repository

Recommended follow-up:

About your instructor

  • Dennis Magda is an open-source software enthusiast who started his journey in the technology evangelism group of Sun Microsystems and Java engineering team of Oracle. He now supports the Apache Software Foundation in the roles of Apache Ignite committer and Project Management Committee member. As the Head of Developer Relations for GridGain Systems, he works with software engineers and architects to help them gain expertise in in-memory computing and Apache Ignite in particular. You can find Denis at conferences, workshops, and other events sharing his knowledge about Apache Ignite, distributed systems, and building open source communities.


The timeframes are only estimates and may vary according to how the class is progressing

In-Memory Computing Essentials (2 hours)

  • Presentation: A brief introduction to in-memory computing (reasons to use, myths and facts)
  • Presentation: Quick overview of Apache Ignite (a platform used throughout the course to demonstrate in-memory computing concepts in practice)
  • Presentation: Data Partition
  • Demo exercise: starting cluster, data loading and processing with key-value APIs, scaling the cluster to demonstrate how data gets rebalanced (re-partitioned).
  • Break (5 mins)
  • Presentation: Affinity Co-Location
  • Demo exercise: connecting to the cluster via a JDBC driver and creating a database, demonstrating how to run and optimize SQL with JOINs.
  • Presentation: Co-located processing
  • Demo exercise: developing a compute task that gets executed on specific cluster nodes over in-memory data.
  • Presentation: summary and closing words.
  • Q&A