Apache Ignite
In-Memory Data Fabric for .NET
Dmitriy Setrakyan GridGain Founder & Chief Product Officer Apache Ignite PMC
www.ignite.apache.org #apacheignite
© 2016 GridGain Systems, Inc. Agenda
• Project history • In-Memory Data Fabric • In-Memory Clustering • In-Memory Compute Grid • In-Memory Data Grid • In-Memory Service Grid • In-Memory Streaming & CEP • Hadoop & Spark Accelerator
© 2016 GridGain Systems, Inc. Why In-Memory Compu ng Now?
Data Growth Driving Demand Declining DRAM Cost
Growth of Global Data
35
30
25
20
15
10 Ze abytes of Data DRAM 5 Flash 0 2009 2010 2015 2020 Disk
8 ze abytes in 2015 growing to 35 in 2020 Cost drops 30% every 12 months
© 2016 GridGain Systems, Inc. Apache Ignite - We Are Hiring!
• Very Ac ve Community • Great Way to Learn Distributed Compu ng • How To Contribute:
– h ps://ignite.apache.org/community/ contribute.html#contribute
– h ps://cwiki.apache.org/confluence/ display/IGNITE/How+to+Contribute
© 2016 GridGain Systems, Inc. In-Memory Data Fabric Na vely developed for .NET
Apache Ignite is a leading open-source, cloud-ready distributed so ware delivering 100x performance and scalability by storing and processing data in memory across scale out or scale up infrastructure.
© 2014 GridGain Systems, Inc. Comprehensive In-Memory Data Fabric
• Richest func onality – a true data fabric – SQL, distributed data and compute grids, streaming, Hadoop accelera on, ACID transac ons, etc. • Open source – Apache Ignite – for Fast Data what Hadoop is for Big Data • Most strategic, least disrup ve approach to in-memory speed and scale – No rip-and-replace of exis ng infrastructure
© 2016 GridGain Systems, Inc. Apache Ignite for .NET
• Built na vely in .NET • Built on top of Apache Ignite Java-core – Starts JVM inside of .NET process • Binary serializa on protocol – Read/write any data from/to any pla orm (Java, .NET or C++) • 99% na ve API parity between Java and .NET – APIs, configura on, run me are pure .NET • Full LINQ integra on: – Strongly typed, compiler-checked queries • Full Java/.NET interop – Heterogeneous cluster – Java compute jobs can run on any Java, C++ or .NET node – .NET compute jobs can run only on .NET • Hosted at NuGet
© 2014 GridGain Systems, Inc. In-Memory Clustering & Deployment
• Ease of Ge ng Started – Automa c Discovery • Any Environment – Public Cloud – Private Cloud – Hybrid Cloud – Local Laptop • Full Cluster Management • Pluggable Design • Available on Azure Marketplace
© 2016 GridGain Systems, Inc. In-Memory Compute Grid
• Direct API for MapReduce • Zero Deployment • Cron-like Task Scheduling • State Checkpoints • Load Balancing • Automa c Failover • Full Cluster Management • Pluggable SPI Design
© 2016 GridGain Systems, Inc. Code Example
var words = "Count characters using closure".Split(); var res = ignite.GetCompute().Apply( new CharacterCountClosure(), words ); Console.WriteLine( "Total character count with manual reduce: ", res.Sum() );
[Serializable] public class CharacterCountClosure : IComputeFunc
© 2016 GridGain Systems, Inc. In-Memory Data Grid
• Distributed In-Memory Key-Value Store • Replicated and Par oned data • TBs of data, of any type • On-Heap and Off-Heap Storage • Highly Available In-Memory Replicas • Automa c Failover • Distributed ACID Transac ons • SQL99 queries and JDBC/ODBC driver • Colloca on of Compute and Data
© 2016 GridGain Systems, Inc. Code Example
ICache
ICache
© 2016 GridGain Systems, Inc. Code Example
const int zip = 94109;
IQueryable
Console.WriteLine();
Console.WriteLine("Employees with zipcode " + zip + ":"); foreach (ICacheEntry
© 2016 GridGain Systems, Inc. In-Memory Service Grid
• Distribute Any Data Structure – Available Anywhere on the Grid – Automa c Remote Access via Proxies • Controlled Deployment – Support for Cluster Singleton – Support for Node Singleton – Support for Custom Topology – Load Balanced • Guaranteed Availability – Auto Redeployment in Case of Failures
© 2016 GridGain Systems, Inc. In-Memory Streaming and CEP
• Streaming Data Never Ends • Branching Pipelines • Pluggable Rou ng • Sliding Windows for CEP/Con nuous Query • Real Time Analysis
© 2016 GridGain Systems, Inc. .NET Code Example
using (IDataStreamer
© 2016 GridGain Systems, Inc. In-Memory Hadoop Accelerator
• Plug and Play installa on • 10x to 100x Accelera on • In-Memory Na ve MapReduce • In-Process Data Coloca on • IgniteFS In-Memory File System • Read-Through from HDFS • Write-Through to HDFS • Sync and Async Persistence
© 2016 GridGain Systems, Inc. In-Memory Hadoop Accelerator
• Zero Code Change • In-Memory Na ve Performance • Use exis ng MR code • Use exis ng Pig/Hive queries • No Name Node • Eager Push Scheduling
© 2016 GridGain Systems, Inc. Spark Integra on – IGFS & Shared RDD
© 2016 GridGain Systems, Inc. GridGain Management Console h ps://console.gridgain.com
© 2016 GridGain Systems, Inc. THANK YOU!
h p://www.ignite.apache.org
@apacheignite
@dsetrakyan
© 2016 GridGain Systems, Inc.