SlideShare a Scribd company logo
© 2017 GridGain Systems, Inc.
In-Memory Performance
Durability of Disk
© 2017 GridGain Systems, Inc.
Harnessing the 21st Century with a Distributed Memory-Centric SQL
Database
Denis Magda
Ignite PMC Chair
GridGain Director of Product Management
© 2017 GridGain Systems, Inc.
• SQL Capabilities
• Connectivity
• Data Definition Language
• Data Manipulation Language
• Collocated Processing
• Memory Architecture
• Q&A
Agenda
© 2017 GridGain Systems, Inc.
SQL Capabilities
© 2017 GridGain Systems, Inc.
Distributed SQL
JDBC ODBC SQL API
Java .NET C++ BI
SELECT, UPDATE,
INSERT, MERGE,
DELETE, CREATE
and ALTER
DDL, DML Support
Cross-platform
Compatibility
Indexes in
RAM or Disk
Dynamic
Scaling
Server Node Server NodeServer Node
Apache Ignite Cluster
DURABLE MEMORY DURABLE MEMORY DURABLE MEMORY
Tools
© 2017 GridGain Systems, Inc.
Connectivity
• JDBC
• ODBC
• REST
• Java, .NET and C++ APIs
// Register JDBC driver.
Class.forName("org.apache.ignite.IgniteJdbcThinDriver");
// Open the JDBC connection.
Connection conn = DriverManager.getConnection("jdbc:ignite:thin://192.168.0.50");
./sqlline.sh --color=true --verbose=true -u jdbc:ignite:thin://127.0.0.1/
© 2017 GridGain Systems, Inc.
Data Definition Language
• CREATE/DROP TABLE
• CREATE/DROP INDEX
• ALTER TABLE
• Changes Durability
• Ignite Native Persistence
CREATE TABLE `city` (
`ID` INT(11),
`Name` CHAR(35),
`CountryCode` CHAR(3),
`District` CHAR(20),
`Population` INT(11),
PRIMARY KEY (`ID`, `CountryCode`)
) WITH "template=partitioned, backups=1, affinityKey=CountryCode";
© 2017 GridGain Systems, Inc.
Data Manipulation Language
• ANSI-99 specification
• Fault-tolerant and consistent
• INSERT, UPDATE, DELETE
• SELECT
• JOINs
• Subqueries
SELECT country.name, city.name, MAX(city.population) as max_pop
FROM country JOIN city ON city.countrycode = country.code
WHERE country.code IN ('USA','RUS','CHN')
GROUP BY country.name, city.name ORDER BY max_pop DESC LIMIT 3;
© 2017 GridGain Systems, Inc.
1. Initial Query
2. Query execution over local
data
3. Reduce multiple results in
one
1. Initial Query
2. Query execution (local + remote
data)
3. Potential data movement
4. Reduce multiple results in one
2
2
1
Collocated Joins Non-Collocated Joins
Server Node
ON-DISK
Server Node
ON-DISK
Client Node
3
2
2
1
Server Node
ON-DISK
Server Node
ON-DISK
Client Node
4
3
© 2017 GridGain Systems, Inc.
Collocated Processing
© 2017 GridGain Systems, Inc.
1. Initial Request
2. Fetch data from remote
nodes
3. Process entire data-set
3
1
Data 1
2
2 Data 2
Client-Server Processing Co-located Processing
Server Node
ON-DISK
Server Node
ON-DISK
1. Initial Request
2. Co-located processing with
data
3. Reduce multiple results in
one
2
2
1Client Node
Server Node
ON-DISK
Server Node
ON-DISK
Client Node
3
© 2017 GridGain Systems, Inc.
Memory Architecture
© 2017 GridGain Systems, Inc.
Durable Memory
Off-heap Removes
noticeable GC
pauses
Automatic
Defragmentation
Stores
Superset of
Data
Predictable memory
consumption
Fully Transactional
(Write-Ahead Log)
DURABLE MEMORY DURABLE MEMORY DURABLE MEMORY
Server Node Server Node Server Node
Ignite Cluster
Instantaneous
Restarts
© 2017 GridGain Systems, Inc.
Ignite Native Persistence
1. Update
RAM
2. Persist
Write-Ahead Log
Partition File 1
3. Ack
4. Checkpointing
Partition File N
Server Node
© 2017 GridGain Systems, Inc.
© 2017 GridGain Systems, Inc.
Regions and Segments
• Memory split into regions
• Regions split into segments
• Segments include pages
© 2017 GridGain Systems, Inc.
B+Tree
• Self-balancing tree
• Memory & Disk
• Sorted Index
• Secondary Indexes
• Hash Index
• Primary Keys
• Hash code based sorting
© 2017 GridGain Systems, Inc.
Free Lists
• Tracks pages of ~ equal free space
• 25% free
• 75% free
• Essential for updates
• Gives page with min size needed
• Reduces fragmentation
• Lowers pages compaction activity
© 2017 GridGain Systems, Inc.
Any Questions?
Thank you for joining us. Follow the conversation.
http://ignite.apache.org
#apacheignite
#denismagda

More Related Content

What's hot (20)

PDF
The next-phase-of-distributed-systems-with-apache-ignite
Dani Traphagen
 
PDF
Apache Ignite - Distributed Database Orchestration
Ariel Jatib
 
PPTX
In-Memory Computing Essentials for Software Engineers
Denis Magda
 
PPTX
Loading data into Apache Ignite
Stephen Darlington
 
PPTX
IMCSummite 2016 Breakout - Nikita Ivanov - Apache Ignite 2.0 Towards a Conver...
In-Memory Computing Summit
 
PPTX
Continuous Machine and Deep Learning with Apache Ignite
Denis Magda
 
PDF
In-Memory Computing Essentials
Denis Magda
 
PPTX
PostgreSQL 12: What is coming up?, Enterprise Postgres Day
EDB
 
PDF
Online Upgrade Using Logical Replication
EDB
 
PDF
PostgreSQL continuous backup and PITR with Barman
EDB
 
PDF
Presto + Alluxio on steroids a romantic drama on Production with happy end
Alluxio, Inc.
 
PDF
Does Anyone Really Need RAC?
EDB
 
PDF
Best Practices for Using Alluxio with Apache Spark with Gene Pang
Spark Summit
 
PDF
Optimizing Spark Deployments for Containers: Isolation, Safety, and Performan...
Spark Summit
 
PPTX
Bridging Your Business Across the Enterprise and Cloud with MongoDB and NetApp
MongoDB
 
PDF
Ejecución del Elastic Stack en Kubernetes
Elasticsearch
 
PPTX
IMC Summit 2016 Breakout - Matt Coventon - Test Driving Streaming and CEP on ...
In-Memory Computing Summit
 
PPTX
Webinar: Managing Postgres at Scale
EDB
 
PPTX
RedisConf17 - Turbo-charge your apps with Amazon Elasticache for Redis
Redis Labs
 
PDF
Ejecución del Elastic Stack en Kubernetes
Elasticsearch
 
The next-phase-of-distributed-systems-with-apache-ignite
Dani Traphagen
 
Apache Ignite - Distributed Database Orchestration
Ariel Jatib
 
In-Memory Computing Essentials for Software Engineers
Denis Magda
 
Loading data into Apache Ignite
Stephen Darlington
 
IMCSummite 2016 Breakout - Nikita Ivanov - Apache Ignite 2.0 Towards a Conver...
In-Memory Computing Summit
 
Continuous Machine and Deep Learning with Apache Ignite
Denis Magda
 
In-Memory Computing Essentials
Denis Magda
 
PostgreSQL 12: What is coming up?, Enterprise Postgres Day
EDB
 
Online Upgrade Using Logical Replication
EDB
 
PostgreSQL continuous backup and PITR with Barman
EDB
 
Presto + Alluxio on steroids a romantic drama on Production with happy end
Alluxio, Inc.
 
Does Anyone Really Need RAC?
EDB
 
Best Practices for Using Alluxio with Apache Spark with Gene Pang
Spark Summit
 
Optimizing Spark Deployments for Containers: Isolation, Safety, and Performan...
Spark Summit
 
Bridging Your Business Across the Enterprise and Cloud with MongoDB and NetApp
MongoDB
 
Ejecución del Elastic Stack en Kubernetes
Elasticsearch
 
IMC Summit 2016 Breakout - Matt Coventon - Test Driving Streaming and CEP on ...
In-Memory Computing Summit
 
Webinar: Managing Postgres at Scale
EDB
 
RedisConf17 - Turbo-charge your apps with Amazon Elasticache for Redis
Redis Labs
 
Ejecución del Elastic Stack en Kubernetes
Elasticsearch
 

Similar to Apache Ignite - Distributed SQL Database Capabilities (20)

PDF
Nike tech-talk-intro-to-apache-ignite
Dani Traphagen
 
PDF
OSDC 2017 - Christos Erotocritou - Apache ignite in-memory data fabric
NETWAYS
 
PPTX
Intro to Azure SQL database
Steve Knutson
 
PDF
Demystifying Data Warehousing as a Service - DFW
Kent Graziano
 
PPTX
Enterprise-class security with PostgreSQL - 2
Ashnikbiz
 
PPTX
EDB: Power to Postgres
Ashnikbiz
 
PDF
Delivering Apache Hadoop for the Modern Data Architecture
Hortonworks
 
PPTX
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
Ontico
 
PPTX
Intro to goldilocks inmemory db - low latency
Dongpyo Lee
 
PPTX
The New MariaDB Offering: MariaDB 10, MaxScale and More
MariaDB Corporation
 
PDF
Data Summer Conf 2018, “Apache Ignite + Apache Spark RDDs and DataFrames inte...
Provectus
 
PPTX
Coherence RoadMap 2018
harvraja
 
PPTX
Enabling Real-Time Business with Change Data Capture
MapR Technologies
 
PPTX
Virtualization and Containers
Kellyn Pot'Vin-Gorman
 
PDF
Mow2012 data services
Syed Shaaf
 
PPTX
How we broke Apache Ignite by adding persistence
Stephen Darlington
 
PPTX
Windows Server 2012 R2 Jump Start - Intro
Paulo Freitas
 
PPTX
Azure Database Services for MySQL PostgreSQL and MariaDB
Nicholas Vossburg
 
PDF
MySQL Transformation Case Study: 80% Cost Savings & Uninterrupted Availabilit...
Mydbops
 
PDF
How we broke Apache Ignite by adding persistence, by Stephen Darlington (Grid...
Altinity Ltd
 
Nike tech-talk-intro-to-apache-ignite
Dani Traphagen
 
OSDC 2017 - Christos Erotocritou - Apache ignite in-memory data fabric
NETWAYS
 
Intro to Azure SQL database
Steve Knutson
 
Demystifying Data Warehousing as a Service - DFW
Kent Graziano
 
Enterprise-class security with PostgreSQL - 2
Ashnikbiz
 
EDB: Power to Postgres
Ashnikbiz
 
Delivering Apache Hadoop for the Modern Data Architecture
Hortonworks
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
Ontico
 
Intro to goldilocks inmemory db - low latency
Dongpyo Lee
 
The New MariaDB Offering: MariaDB 10, MaxScale and More
MariaDB Corporation
 
Data Summer Conf 2018, “Apache Ignite + Apache Spark RDDs and DataFrames inte...
Provectus
 
Coherence RoadMap 2018
harvraja
 
Enabling Real-Time Business with Change Data Capture
MapR Technologies
 
Virtualization and Containers
Kellyn Pot'Vin-Gorman
 
Mow2012 data services
Syed Shaaf
 
How we broke Apache Ignite by adding persistence
Stephen Darlington
 
Windows Server 2012 R2 Jump Start - Intro
Paulo Freitas
 
Azure Database Services for MySQL PostgreSQL and MariaDB
Nicholas Vossburg
 
MySQL Transformation Case Study: 80% Cost Savings & Uninterrupted Availabilit...
Mydbops
 
How we broke Apache Ignite by adding persistence, by Stephen Darlington (Grid...
Altinity Ltd
 
Ad

Recently uploaded (20)

PPTX
Agentic Automation Journey Series Day 2 – Prompt Engineering for UiPath Agents
klpathrudu
 
PDF
iTop VPN With Crack Lifetime Activation Key-CODE
utfefguu
 
PDF
SAP Firmaya İade ABAB Kodları - ABAB ile yazılmıl hazır kod örneği
Salih Küçük
 
PPTX
In From the Cold: Open Source as Part of Mainstream Software Asset Management
Shane Coughlan
 
PPTX
Coefficient of Variance in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PPTX
MailsDaddy Outlook OST to PST converter.pptx
abhishekdutt366
 
PDF
Revenue streams of the Wazirx clone script.pdf
aaronjeffray
 
PDF
HiHelloHR – Simplify HR Operations for Modern Workplaces
HiHelloHR
 
PPTX
How Cloud Computing is Reinventing Financial Services
Isla Pandora
 
PDF
Open Chain Q2 Steering Committee Meeting - 2025-06-25
Shane Coughlan
 
PPTX
ChiSquare Procedure in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PPTX
Change Common Properties in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PPTX
Transforming Mining & Engineering Operations with Odoo ERP | Streamline Proje...
SatishKumar2651
 
PDF
Online Queue Management System for Public Service Offices in Nepal [Focused i...
Rishab Acharya
 
PPTX
Writing Better Code - Helping Developers make Decisions.pptx
Lorraine Steyn
 
PDF
GetOnCRM Speeds Up Agentforce 3 Deployment for Enterprise AI Wins.pdf
GetOnCRM Solutions
 
PDF
Linux Certificate of Completion - LabEx Certificate
VICTOR MAESTRE RAMIREZ
 
PDF
Build It, Buy It, or Already Got It? Make Smarter Martech Decisions
bbedford2
 
PDF
Mobile CMMS Solutions Empowering the Frontline Workforce
CryotosCMMSSoftware
 
PPTX
Empowering Asian Contributions: The Rise of Regional User Groups in Open Sour...
Shane Coughlan
 
Agentic Automation Journey Series Day 2 – Prompt Engineering for UiPath Agents
klpathrudu
 
iTop VPN With Crack Lifetime Activation Key-CODE
utfefguu
 
SAP Firmaya İade ABAB Kodları - ABAB ile yazılmıl hazır kod örneği
Salih Küçük
 
In From the Cold: Open Source as Part of Mainstream Software Asset Management
Shane Coughlan
 
Coefficient of Variance in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
MailsDaddy Outlook OST to PST converter.pptx
abhishekdutt366
 
Revenue streams of the Wazirx clone script.pdf
aaronjeffray
 
HiHelloHR – Simplify HR Operations for Modern Workplaces
HiHelloHR
 
How Cloud Computing is Reinventing Financial Services
Isla Pandora
 
Open Chain Q2 Steering Committee Meeting - 2025-06-25
Shane Coughlan
 
ChiSquare Procedure in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
Change Common Properties in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
Transforming Mining & Engineering Operations with Odoo ERP | Streamline Proje...
SatishKumar2651
 
Online Queue Management System for Public Service Offices in Nepal [Focused i...
Rishab Acharya
 
Writing Better Code - Helping Developers make Decisions.pptx
Lorraine Steyn
 
GetOnCRM Speeds Up Agentforce 3 Deployment for Enterprise AI Wins.pdf
GetOnCRM Solutions
 
Linux Certificate of Completion - LabEx Certificate
VICTOR MAESTRE RAMIREZ
 
Build It, Buy It, or Already Got It? Make Smarter Martech Decisions
bbedford2
 
Mobile CMMS Solutions Empowering the Frontline Workforce
CryotosCMMSSoftware
 
Empowering Asian Contributions: The Rise of Regional User Groups in Open Sour...
Shane Coughlan
 
Ad

Apache Ignite - Distributed SQL Database Capabilities

  • 1. © 2017 GridGain Systems, Inc. In-Memory Performance Durability of Disk
  • 2. © 2017 GridGain Systems, Inc. Harnessing the 21st Century with a Distributed Memory-Centric SQL Database Denis Magda Ignite PMC Chair GridGain Director of Product Management
  • 3. © 2017 GridGain Systems, Inc. • SQL Capabilities • Connectivity • Data Definition Language • Data Manipulation Language • Collocated Processing • Memory Architecture • Q&A Agenda
  • 4. © 2017 GridGain Systems, Inc. SQL Capabilities
  • 5. © 2017 GridGain Systems, Inc. Distributed SQL JDBC ODBC SQL API Java .NET C++ BI SELECT, UPDATE, INSERT, MERGE, DELETE, CREATE and ALTER DDL, DML Support Cross-platform Compatibility Indexes in RAM or Disk Dynamic Scaling Server Node Server NodeServer Node Apache Ignite Cluster DURABLE MEMORY DURABLE MEMORY DURABLE MEMORY Tools
  • 6. © 2017 GridGain Systems, Inc. Connectivity • JDBC • ODBC • REST • Java, .NET and C++ APIs // Register JDBC driver. Class.forName("org.apache.ignite.IgniteJdbcThinDriver"); // Open the JDBC connection. Connection conn = DriverManager.getConnection("jdbc:ignite:thin://192.168.0.50"); ./sqlline.sh --color=true --verbose=true -u jdbc:ignite:thin://127.0.0.1/
  • 7. © 2017 GridGain Systems, Inc. Data Definition Language • CREATE/DROP TABLE • CREATE/DROP INDEX • ALTER TABLE • Changes Durability • Ignite Native Persistence CREATE TABLE `city` ( `ID` INT(11), `Name` CHAR(35), `CountryCode` CHAR(3), `District` CHAR(20), `Population` INT(11), PRIMARY KEY (`ID`, `CountryCode`) ) WITH "template=partitioned, backups=1, affinityKey=CountryCode";
  • 8. © 2017 GridGain Systems, Inc. Data Manipulation Language • ANSI-99 specification • Fault-tolerant and consistent • INSERT, UPDATE, DELETE • SELECT • JOINs • Subqueries SELECT country.name, city.name, MAX(city.population) as max_pop FROM country JOIN city ON city.countrycode = country.code WHERE country.code IN ('USA','RUS','CHN') GROUP BY country.name, city.name ORDER BY max_pop DESC LIMIT 3;
  • 9. © 2017 GridGain Systems, Inc. 1. Initial Query 2. Query execution over local data 3. Reduce multiple results in one 1. Initial Query 2. Query execution (local + remote data) 3. Potential data movement 4. Reduce multiple results in one 2 2 1 Collocated Joins Non-Collocated Joins Server Node ON-DISK Server Node ON-DISK Client Node 3 2 2 1 Server Node ON-DISK Server Node ON-DISK Client Node 4 3
  • 10. © 2017 GridGain Systems, Inc. Collocated Processing
  • 11. © 2017 GridGain Systems, Inc. 1. Initial Request 2. Fetch data from remote nodes 3. Process entire data-set 3 1 Data 1 2 2 Data 2 Client-Server Processing Co-located Processing Server Node ON-DISK Server Node ON-DISK 1. Initial Request 2. Co-located processing with data 3. Reduce multiple results in one 2 2 1Client Node Server Node ON-DISK Server Node ON-DISK Client Node 3
  • 12. © 2017 GridGain Systems, Inc. Memory Architecture
  • 13. © 2017 GridGain Systems, Inc. Durable Memory Off-heap Removes noticeable GC pauses Automatic Defragmentation Stores Superset of Data Predictable memory consumption Fully Transactional (Write-Ahead Log) DURABLE MEMORY DURABLE MEMORY DURABLE MEMORY Server Node Server Node Server Node Ignite Cluster Instantaneous Restarts
  • 14. © 2017 GridGain Systems, Inc. Ignite Native Persistence 1. Update RAM 2. Persist Write-Ahead Log Partition File 1 3. Ack 4. Checkpointing Partition File N Server Node
  • 15. © 2017 GridGain Systems, Inc.
  • 16. © 2017 GridGain Systems, Inc. Regions and Segments • Memory split into regions • Regions split into segments • Segments include pages
  • 17. © 2017 GridGain Systems, Inc. B+Tree • Self-balancing tree • Memory & Disk • Sorted Index • Secondary Indexes • Hash Index • Primary Keys • Hash code based sorting
  • 18. © 2017 GridGain Systems, Inc. Free Lists • Tracks pages of ~ equal free space • 25% free • 75% free • Essential for updates • Gives page with min size needed • Reduces fragmentation • Lowers pages compaction activity
  • 19. © 2017 GridGain Systems, Inc. Any Questions? Thank you for joining us. Follow the conversation. http://ignite.apache.org #apacheignite #denismagda

Editor's Notes

  • #6: Apache Ignite incorporates distributed SQL database capabilities as a part of its platform. The database is horizontally scalable, fault tolerant and SQL ANSI-99 compliant. It supports all SQL, DDL, and DML commands including SELECT, UPDATE, INSERT, MERGE, and DELETE queries. It also provides support for a subset of DDL commands relevant for distributed databases. Data sets as well as indexes can be stored both in RAM and on disk thanks to the durable memory architecture. This allows executing distributed SQL operations across different memory layers achieving in-memory performance with durability of disk. You can interact with Apache Ignite using SQL language via natively developed APIs for Java, .NET and C++, or via the Ignite JDBC or ODBC drivers. This provides a true cross-platform connectivity from languages such as PHP, Ruby and more.
  • #10: https://apacheignite-sql.readme.io/docs/distributed-joins
  • #12: https://ignite.apache.org/collocatedprocessing.html Collocation of computations with data allow for minimizing data serialization within network and can significantly improve performance and scalability of your application. Whenever possible, you should always make best effort to colocate your computations with the cluster nodes caching the data that needs to be processed. Let's assume that a blizzard is approaching New York City. You, as a telecommunication company has to warn all the people sending a message to everyone with precise instructions on how to behave during such weather conditions. There are around 8 million New Yorkers in your database that have to receive the text message. With the client-server approach the company has to connect to the database, move all 8 million (!) records from there to a client application that will text to everyone. This is highly inefficient that wastes network and computational resources of company's IT infrastructure. However, if the company initially collocates all the cities it covers with the people who live there then it can send a single computation (!) to the cluster node that stores information about all New Yorkers and send the text message from there. This approach avoids 8 million records movement over the network and helps utilizing cluster resources for computation needs. That's the collocated processing in action!
  • #14: Apache Ignite memory-centric platform is based on the Durable Memory architecture that allows storing and processing data and indexes both in memory and on disk when the Ignite Persistent Store feature is enabled. The memory architecture helps achieve in-memory performance with durability of disk using all the available resources of the cluster. Ignite's durable memory is built and operates in a way similar to the Virtual Memory of operating systems such as Linux. However, one significant difference between these two types of architectures is that Durable Memory always keeps the whole data set and indexes on disk if the Ignite Persistent Store is used, while Virtual Memory uses the disk for swapping purposes only. In-Memory • Off-Heap memory • Removes noticeable GC pauses • Automatic Defragmentation • Predictable memory consumption • Boosts SQL performance On Disk • Optional Persistence • Support of flash, SSD, Intel 3D Xpoint • Stores superset of data • Fully Transactional ◦ Write-Ahead-Log (WAL) • Instantaneous Cluster Restarts
  • #15: Ignite Native Persistence is a distributed ACID and SQL-compliant disk store that transparently integrates with Ignite's Durable Memory as an optional disk layer storing data and indexes on SSD, Flash, 3D XPoint, and other types of non-volatile storages. With the Ignite Persistence enabled, you no longer need to keep all the data and indexes in memory or warm it up after a node or cluster restart because the Durable Memory is tightly coupled with persistence and treats it as a secondary memory tier. This implies that if a subset of data or an index is missing in RAM, the Durable Memory will take it from the disk.
  • #16: Ignite Native Persistence is a distributed ACID and SQL-compliant disk store that transparently integrates with Ignite's Durable Memory as an optional disk layer storing data and indexes on SSD, Flash, 3D XPoint, and other types of non-volatile storages. With the Ignite Persistence enabled, you no longer need to keep all the data and indexes in memory or warm it up after a node or cluster restart because the Durable Memory is tightly coupled with persistence and treats it as a secondary memory tier. This implies that if a subset of data or an index is missing in RAM, the Durable Memory will take it from the disk.
  • #18: B-tree is a self-balancing tree data structure that keeps data sorted and allows searches, sequential access, insertions, and deletions in logarithmic time. B+Tree is a central part of the whole Ignite Virtual memory architecture because even basic key-value operations work via it (cache.get and cache.put)! Move to the next slide.
  • #19: On the previous slide we explained how to look up a value inside of the virtual memory. However, how does the virtual memory know where to put a new value? In fact, Ignite uses a special data structure called Free List to support this. Basically, a free list is a doubly linked list that stores references to pages of approximately equal free space. For instance, there is a free list that stores all the data pages that have up to 75% free space and a list that keeps track of the index pages with 25% capacity left. Data and index pages are tracked in separate free lists.