IMC Summit 2016 Breakout - Roman Shtykh - Apache Ignite as a Data Processing Hub
Apache Ignite for Node.js Developers - GridGain Systems · Apache Ignite Support –Faster Time to...
Transcript of Apache Ignite for Node.js Developers - GridGain Systems · Apache Ignite Support –Faster Time to...
Apache Ignite for Node.js DevelopersDenis MagdaGridGain Product ManagementIgnite PMC
2018 © GridGain Systems
2019 © GridGain Systems GridGain Company Confidential
Agenda
1
• Why Apache Ignite and Node.JS?• Apache Ignite for Node.JS overview• Node.JS client implementation details• Node.JS client roadmap• Q&A
2019 © GridGain Systems GridGain Company Confidential
Why to use Node.JS with Ignite?
2
• Node.JS is best suited for real-time applications– Fast response time and events processing– Prudent resources utilization -> single-threaded– No compute intensive tasks -> single-threaded
• Apache Ignite solves performance and scalability problems– Ultra fast distributed memory-centric storage– Used as a cache, IMDG or IMDB for real-time applications
2019 © GridGain Systems GridGain Company Confidential
Apache Ignite and GridGain Overview
Mainframe NoSQL HadoopIgnite Persistence
Persistent Layer
RDBMS
Machine and Deep Learning
EventsStreamingMessagingTransactionsSQLKey-Value
Service GridCompute Grid
Application Layer
Web SaaS SocialMobile IoTR
ollin
g U
pgra
des
Secu
rity
& Au
ditin
g
Mon
itorin
g &
Man
agem
ent
Segm
enta
tion
Prot
ectio
n
Dat
a C
ente
rRep
licat
ion
Net
wor
k Ba
ckup
s
Full,
Incr
emen
tal,
Con
tinuo
us B
acku
ps
Poin
t-in-
Tim
e R
ecov
ery
Het
erog
eneo
us R
ecov
ery
In-Memory Data Store
2019 © GridGain Systems GridGain Company Confidential
GridGain as an In-Memory Data Grid (IMDG)• Slides in-between apps and RDBMSs
with no rip and replace – ANSI-99 SQL compliant– Support for ACID transactions
• Accelerates existing app performance• Offload new data and computing
requirements (real-time auditing and compliance, analytics, computations)
Accelerate Existing Applications with No Rip and Replace
In-MemoryDatabase
StreamingAnalytics
ContinuousLearning Framework
In-MemoryData Grid
Compute and Service Grid
ACID TransactionsANSI-99 SQLKey-Value
In-Memory Data Store
Mainframe NoSQL Hadoop
Data Layer
RDBMS
2019 © GridGain Systems GridGain Company Confidential
Clustering
5
• Server Nodes– Act as containers for data and
computations– Generally started as standalone
processes
• Clients– Used from the Node.JS apps
2019 © GridGain Systems GridGain Company Confidential
Node.JS Client
6
• Lightweight Connectivity– Connects through a socket-based protocol
• APIs for real-time apps– Key-value– SQL– Scan queries
• Model configuration
2019 © GridGain Systems GridGain Company Confidential7
Demo:- Start several nodes with ignite.sh (clustering demo)- Connect to console.gridgain.com (monitoring demo)- Open Node.JS Ignite examples with WebStorm or other IDE- Run the key-value sample
2019 © GridGain Systems GridGain Company Confidential
Distributed SQL
Persistent Store
ANSI-99 SQL
Compute Grid
JDBC ODBC
C++.NETJava Node.JSBinary Protocal (Thin client)
In-Memory Data StoreIndexes on RAM or Disk
Apache Ignite SQL SupportCross-platform Compatibility
DDL & DML Support
SELECT, UPDATE, INSERT, MERGE, CREATE, DELETE & ALTER
Dynamic Scaling
2019 © GridGain Systems GridGain Company Confidential9
Demo:- Run the SQL samples of Node.JS examples package- Switch to WebConsole showing that the tables are created and metrics are updated
2019 © GridGain Systems GridGain Company Confidential
Thin Clients – Implementation Details
10
• Socket-level binary protocol– Cross-platform
• Thin Client is– An API above the protocol and – Language specific implementation
• Supported languages– Java, .NET, C++– Node.JS, Python, PHP
2019 © GridGain Systems GridGain Company Confidential
Regular Client vs. Thin Client
11
Regular (aka. Thick) Client Thin Client
Cluster Communication • Starts a JVM process• Part of a cluster topology• Several ports have to be opened
• Connects through a proxy• TCP/IP connection• One port has to be opened
Scalability and performance
• Best• Goes to primary nodes directly
• Worse• Communicates through the proxy (now)• Direct communication (coming)
Supported APIs • All Ignite and GridGain APIs • Get/put, SQL, scans, configuration
Supported Languages • Java, .NET, C++• Time consuming to support other
language
• Easy to support any language• Java, .NET, C++, Node.JS, Python, PHP
are already available
2019 © GridGain Systems GridGain Company Confidential
Node.JS Client - Roadmap
12
• 2x and up performance acceleration– Direct connectivity to servers– Partition-awareness
• Triggering compute tasks execution– Java tasks deployed on servers– More powerful version of stored procedures
• Continuous queries
• Tell the community what you need
2019 © GridGain Systems GridGain Company Confidential
Resources
13
• Documentation:– https://apacheignite.readme.io/docs/nodejs-thin-client
• Getting Started Article:– https://www.gridgain.com/resources/blog/getting-started-
nodejs-and-apacher-ignitetm
• RDBMs acceleration how-to:– https://www.gridgain.com/resources/blog/using-no-rip-
and-replace-apacher-ignitetm-mysql-and-nodejs
• Ignite community:– https://ignite.apache.org/community/resources.html#ask
• GridGain Community Edition:– https://www.gridgain.com/products/software/communit
y-edition
2019 © GridGain Systems GridGain Company Confidential
Apache Ignite Support – Faster Time to Reliable Ignite
• Get up and running faster with 2 hours initial consultation
• Ensure fast, reliable Ignite with unlimited 24x7 global support– Unlimited web/e-mail support– Identify bugs, workarounds– Troubleshoot performance,
reliability issues
https://www.gridgain.com/products/services/support/support-apache-ignite
2019 © GridGain Systems GridGain Company Confidential
Any Questions?@apacheignite@gridgain