In-Memory Computing Patterns for High Volume, Real-Time Applications - - PowerPoint PPT Presentation

in memory computing patterns for high volume real time
SMART_READER_LITE
LIVE PREVIEW

In-Memory Computing Patterns for High Volume, Real-Time Applications - - PowerPoint PPT Presentation

In-Memory Computing Patterns for High Volume, Real-Time Applications Narendra Paruchuri Murali Ande American Airlines American Airlines 2 10/10/18 Outline Who We are Our Use Cases Our Journey Evaluation Criteria Our


slide-1
SLIDE 1

In-Memory Computing Patterns for High Volume, Real-Time Applications

Narendra Paruchuri American Airlines Murali Ande American Airlines

slide-2
SLIDE 2

2

Outline

2 10/10/18

  • Who We are
  • Our Use Cases
  • Our Journey
  • Evaluation Criteria
  • Our Journey with In-Memory data models
  • Architecture Patterns
  • Advantages
  • Being mindful
slide-3
SLIDE 3

3

Who we are

Complex aircraft turn activities before on time departures Oneworld alliance 14,250 flights, 1,000 destinations 150 countries 500,000 daily customers 6700 flights 350 destinations 50 countries Multiple Hubs CLT, ORD, DFW, LAX, MIA, JFK, LGA, PHL, PHX, DCA Safety and Regulations Complex weather situations, reroutes,

  • ff-scheduled operations, travel plan

changes, last minute

slide-4
SLIDE 4

4

Our Use Cases

slide-5
SLIDE 5

5

Our Journey

Value KEY

Key Value Model Ehcache Infinispan

Object Model

P C C C C

Gigaspaces

Node2 Node3 Node1

Graph Neo4J

Col1 Col2 Col3 Col4

Columnar like Model Cassandra

Entity A Entity B REL 1 *

Relational Model VoltDB Apache Ignite

While systems are modified for key value pair keeping in view the trends in latest technologies, Our business operations still require us to perform joins to correlate and coalesce data to facilitate business decisions.

slide-6
SLIDE 6

6

Evaluation Criteria

  • ACID compliance with native persistence and third party

persistence integration

  • Readability and Maintainability of System
  • Support High Volume Transactions with simultaneous updates to

multiple attributes ( 12K / Min – Writes , 25K / Min – Reads)

  • Replication and Distribution support with Multi – DC
  • Streaming connectors like Kafka
  • Generate events on data updates
  • Docker and Kubernetes support
slide-7
SLIDE 7

7

Our Journey with In-Memory Data Models

Value KEY

Key Value Model Ehcache Infinispan

Object Model

P C C C C

Gigaspaces

Pain Points

  • Most of the solutions does not offer Joins
  • Lot of code to correlate and Coalesce data
  • Slow response times.

Pain Points:

  • Pre-defined Object Structures
  • Reduced Flexibility
  • Longer Deployment Cycles
slide-8
SLIDE 8

8

Our Journey with In-Memory Data Models

Value KEY

Key Value Model Ehcache Infinispan

Object Model

P C C C C

Gigaspaces

Pain Points:

  • Pre-defined Object Structures
  • Reduced Flexibility
  • Longer Deployment Cycles

Node2 Node3 Node1

Graph Neo4J

Pain Points:

  • Computations and Aggregations
slide-9
SLIDE 9

9

Our Journey with In-Memory Data Models

Value KEY

Key Value Model Ehcache Infinispan

Object Model

P C C C C

Gigaspaces

Node2 Node3 Node1

Graph Neo4J

Pain Points:

  • Computations and Aggregations

Col1 Col2 Col3 Col4

Columnar like Model Cassandra

Pain Points

  • Atomicity – multi tables
  • Consistency
slide-10
SLIDE 10

10

Our Journey with In-Memory Data Models

10 10/10/18

Value KEY

Key Value Model Ehcache Infinispan

Object Model

P C C C C

Gigaspaces

Node2 Node3 Node1

Graph Neo4J

Col1 Col2 Col3 Col4

Columnar like Model Cassandra

Pain Points

  • Atomicity – multi tables
  • Consistency

Entity A Entity B REL 1 *

Relational Model VoltDB Apache Ignite

  • Our business operations still require us to perform joins to correlate and coalesce data for the business.
  • While there may be several options, we have chosen to implement Ignite for our use cases.
slide-11
SLIDE 11

11

Apache Ignite (Open Source) – Active – Passive topology

11 10/10/18 Client Listener Node(S) Topology aware Feeder Client Node(S) Websocket Web Application Client Listener Node(S) Websocket Web Application

Global Traffic Manager

Active Data Center A Passive Data Center B Native Persistence Native Persistence WAN Replication SAN Storage SAN Storage Topology aware Feeder Client Node(S) Messaging Kafka Streamer JCache API JDBC, Spring Data

  • Use for Non-Critical systems that need real-

time data aggregation. Real-time Application Data Store ACID compliance with Strong Consistency

slide-12
SLIDE 12

12

Apache Ignite (Open Source) – Active – Passive topology

12 10/10/18 Client Listener Node(S) Topology aware Feeder Client Node(S) Websocket Web Application Client Listener Node(S) Websocket Web Application

Global Traffic Manager

Active Data Center A Passive Data Center B Native Persistence Native Persistence WAN Replication SAN Storage SAN Storage Topology aware Feeder Client Node(S)

  • Use for Non-Critical systems that need real-

time data aggregation. Real-time Application Data Store ACID compliance with Strong Consistency

slide-13
SLIDE 13

13

Apache Ignite and Cassandra Active-Passive topology

13 10/10/18

Client Listener Node(S)

Topology aware Feeder Client Node(S)

Websocket Web Application

Client Listener Node(S)

Websocket Web Application

Global Traffic Manager

Active Data Center A Passive Data Center B Cassandra Connector Cassandra Connector WAN Replication

Topology aware Feeder Client Node(S)

  • Use for Non-Critical systems that need real-

time data aggregation. Real-time Application Data Store ACID compliance with Strong Consistency. Cassandra Cluster Cassandra Cluster Global Traffic Manager Combines OLTP & OLAP

slide-14
SLIDE 14

14

Advantages of using Ignite along with Cassandra

14 10/10/18

  • Bandwidth and Response times improvement (order of magnitude improvement).
  • Improved Availability than standalone Cassandra system, as Ignite offers

sophisticated clustering support, such as detecting and remediating split brain conditions.

  • Horizontal and Vertically scalable.
  • More efficient, as Ignite can use all the memory available on a node, and not only JVM

memory.

  • ANSI-99 SQL and ACID Transaction Guarantees (Improved Consistency)
  • You can run other analytics off of Cassandra
  • Support for jdbc and odbc make it easier to integrate with existing tech, such as

Hibernate and Spring Data.

  • No data remodeling required for existing Cassandra deployment, as Apache Ignite can

read from it as well as relational databases.

slide-15
SLIDE 15

15

Apache Ignite (GridGain) – Active – Active topology

15 10/10/18

Client Listener Node(S) Topology aware Feeder Client Node(S) Websocket Web Application Client Listener Node(S) Websocket Web Application

Global Traffic Manager

Active Data Center A Active Data Center B Native Persistence Native Persistence SAN Storage SAN Storage

Topology aware Feeder Client Node(S)

  • Use for Critical and Vital systems with low

RTO and RPO. Real-time Application Data Store ACID compliance with Strong Consistency

WAN Replication

slide-16
SLIDE 16

16

Being mindful

16 10/10/18

  • Not a magic bullet
  • Evaluate use case
  • Consider future data growth
  • Take advantage of all available technologies
  • Lack of standards
  • Not plug and play
  • Vendor challenges
  • Governance
slide-17
SLIDE 17

17

Why not traditional RDBMS database

17 10/10/18

  • Database will work but at what cost ?
  • Complexity of Architecture with Multi DC and Multi Cloud providers.
  • Tool consistency
  • Scalability Vertical vs Horizontal
  • No collocated data processing
  • Leveraging auto scaling using Containers and Kubernetes is not

available.

Cloud Scaling Breaks Domain Driven Design

slide-18
SLIDE 18

18

Advantages

18 10/10/18

  • Extremely fast response times
  • Highly scalable
  • Improved complex processing on events.
  • Improved real time analytics
  • Reduced cost of operation
  • Inexpensive with improvements in memory technology
slide-19
SLIDE 19

QUESTIONS?

slide-20
SLIDE 20

In-Memory Computing Patterns for High Volume, Real-Time Applications

Narendra Paruchuri American Airlines Murali Ande American Airlines