+ All Categories
Home > Documents > In-Memory Computing Patterns for High Volume, Real-Time ... · persistence integration ......

In-Memory Computing Patterns for High Volume, Real-Time ... · persistence integration ......

Date post: 13-Jul-2020
Category:
Upload: others
View: 2 times
Download: 0 times
Share this document with a friend
20
In - Memory Computing Patterns for High Volume, Real - Time Applications Narendra Paruchuri American Airlines Murali Ande American Airlines
Transcript
Page 1: In-Memory Computing Patterns for High Volume, Real-Time ... · persistence integration ... Websocket Web Application Client Listener Node(S) Websocket Web Application Global Traffic

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

Narendra ParuchuriAmerican Airlines

Murali AndeAmerican Airlines

Page 2: In-Memory Computing Patterns for High Volume, Real-Time ... · persistence integration ... Websocket Web Application Client Listener Node(S) Websocket Web Application Global Traffic

2

Outline210/10/18

• Who We are

• Our Use Cases

• Our Journey

• Evaluation Criteria

• Our Journey with In-Memory data models

• Architecture Patterns

• Advantages

• Being mindful

Page 3: In-Memory Computing Patterns for High Volume, Real-Time ... · persistence integration ... Websocket Web Application Client Listener Node(S) Websocket Web Application Global Traffic

3

Who we are

Complex aircraft turn activities before on time departures

Oneworld alliance14,250 flights,1,000 destinations 150 countries

500,000 daily customers6700 flights350 destinations 50 countries

Multiple Hubs CLT, ORD, DFW, LAX, MIA, JFK, LGA, PHL, PHX, DCA

Safety and RegulationsComplex weather situations, reroutes, off-scheduled operations, travel plan changes, last minute

Page 4: In-Memory Computing Patterns for High Volume, Real-Time ... · persistence integration ... Websocket Web Application Client Listener Node(S) Websocket Web Application Global Traffic

4

Our Use Cases

Page 5: In-Memory Computing Patterns for High Volume, Real-Time ... · persistence integration ... Websocket Web Application Client Listener Node(S) Websocket Web Application Global Traffic

5

Our Journey

ValueKEY

Key Value Model

Ehcache Infinispan

Object Model

P

CC

CC

Gigaspaces

Node2 Node3

Node1

Graph

Neo4J

Col1 Col2 Col3 Col4

Columnar like Model

Cassandra

Entity A Entity BREL1 *

Relational Model

VoltDBApache 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.

Page 6: In-Memory Computing Patterns for High Volume, Real-Time ... · persistence integration ... Websocket Web Application Client Listener Node(S) Websocket Web Application Global Traffic

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

Page 7: In-Memory Computing Patterns for High Volume, Real-Time ... · persistence integration ... Websocket Web Application Client Listener Node(S) Websocket Web Application Global Traffic

7

Our Journey with In-Memory Data Models

ValueKEY

Key Value Model

Ehcache Infinispan

Object Model

P

CC

CC

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

Page 8: In-Memory Computing Patterns for High Volume, Real-Time ... · persistence integration ... Websocket Web Application Client Listener Node(S) Websocket Web Application Global Traffic

8

Our Journey with In-Memory Data Models

ValueKEY

Key Value Model

Ehcache Infinispan

Object Model

P

CC

CC

Gigaspaces

Pain Points:• Pre-defined Object Structures• Reduced Flexibility• Longer Deployment Cycles

Node2 Node3

Node1

Graph

Neo4J

Pain Points:• Computations and Aggregations

Page 9: In-Memory Computing Patterns for High Volume, Real-Time ... · persistence integration ... Websocket Web Application Client Listener Node(S) Websocket Web Application Global Traffic

9

Our Journey with In-Memory Data Models

ValueKEY

Key Value Model

Ehcache Infinispan

Object Model

P

CC

CC

Gigaspaces

Node2 Node3

Node1

Graph

Neo4J

Pain Points:• Computations and Aggregations

Col1 Col2 Col3 Col4

Columnar like Model

CassandraPain Points• Atomicity – multi tables• Consistency

Page 10: In-Memory Computing Patterns for High Volume, Real-Time ... · persistence integration ... Websocket Web Application Client Listener Node(S) Websocket Web Application Global Traffic

10

Our Journey with In-Memory Data Models1010/10/18

ValueKEY

Key Value Model

Ehcache Infinispan

Object Model

P

CC

CC

Gigaspaces

Node2 Node3

Node1

Graph

Neo4J

Col1 Col2 Col3 Col4

Columnar like Model

CassandraPain Points• Atomicity – multi tables• Consistency

Entity A Entity BREL1 *

Relational Model

VoltDBApache 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.

Page 11: In-Memory Computing Patterns for High Volume, Real-Time ... · persistence integration ... Websocket Web Application Client Listener Node(S) Websocket Web Application Global Traffic

11

Apache Ignite (Open Source) – Active – Passive topology1110/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 awareFeeder Client Node(S)

Messaging Kafka Streamer

JCache APIJDBC, Spring Data

• Use for Non-Critical systems that need real-time data aggregation.

Real-time Application Data Store ACID compliancewith Strong Consistency

Page 12: In-Memory Computing Patterns for High Volume, Real-Time ... · persistence integration ... Websocket Web Application Client Listener Node(S) Websocket Web Application Global Traffic

12

Apache Ignite (Open Source) – Active – Passive topology1210/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 awareFeeder Client Node(S)

• Use for Non-Critical systems that need real-time data aggregation.

Real-time Application Data Store ACID compliance with Strong Consistency

Page 13: In-Memory Computing Patterns for High Volume, Real-Time ... · persistence integration ... Websocket Web Application Client Listener Node(S) Websocket Web Application Global Traffic

13

Apache Ignite and Cassandra Active-Passive topology1310/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 awareFeeder 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 CombinesOLTP & OLAP

Page 14: In-Memory Computing Patterns for High Volume, Real-Time ... · persistence integration ... Websocket Web Application Client Listener Node(S) Websocket Web Application Global Traffic

14

Advantages of using Ignite along with Cassandra

1410/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.

Page 15: In-Memory Computing Patterns for High Volume, Real-Time ... · persistence integration ... Websocket Web Application Client Listener Node(S) Websocket Web Application Global Traffic

15

Apache Ignite (GridGain) – Active – Active topology1510/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 awareFeeder 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

Page 16: In-Memory Computing Patterns for High Volume, Real-Time ... · persistence integration ... Websocket Web Application Client Listener Node(S) Websocket Web Application Global Traffic

16

Being mindful1610/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

Page 17: In-Memory Computing Patterns for High Volume, Real-Time ... · persistence integration ... Websocket Web Application Client Listener Node(S) Websocket Web Application Global Traffic

17

Why not traditional RDBMS database1710/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 ScalingBreaks Domain Driven Design

Page 18: In-Memory Computing Patterns for High Volume, Real-Time ... · persistence integration ... Websocket Web Application Client Listener Node(S) Websocket Web Application Global Traffic

18

Advantages1810/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

Page 19: In-Memory Computing Patterns for High Volume, Real-Time ... · persistence integration ... Websocket Web Application Client Listener Node(S) Websocket Web Application Global Traffic

QUESTIONS?

Page 20: In-Memory Computing Patterns for High Volume, Real-Time ... · persistence integration ... Websocket Web Application Client Listener Node(S) Websocket Web Application Global Traffic

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

Narendra ParuchuriAmerican Airlines

Murali AndeAmerican Airlines


Recommended