apache’ignite’ in-memory’data’fabric’for’ ·...

21
© 2016 GridGain Systems, Inc. Apache Ignite InMemory Data Fabric for .NET www.ignite.apache.org #apacheignite Dmitriy Setrakyan GridGain Founder & Chief Product Officer Apache Ignite PMC

Upload: others

Post on 20-May-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Apache’Ignite’ In-Memory’Data’Fabric’for’ · ©2016"GridGain"Systems,"Inc." Apache’Ignite’ In-Memory’Data’Fabric’for’.NET " " #apacheignite" Dmitriy"Setrakyan"

©  2016  GridGain  Systems,  Inc.  

Apache  Ignite  In-­‐Memory  Data  Fabric  for  .NET  

www.ignite.apache.org   #apacheignite  

Dmitriy  Setrakyan  GridGain  Founder  &  Chief  Product  Officer  

Apache  Ignite  PMC  

Page 2: Apache’Ignite’ In-Memory’Data’Fabric’for’ · ©2016"GridGain"Systems,"Inc." Apache’Ignite’ In-Memory’Data’Fabric’for’.NET " " #apacheignite" Dmitriy"Setrakyan"

©  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  

Page 3: Apache’Ignite’ In-Memory’Data’Fabric’for’ · ©2016"GridGain"Systems,"Inc." Apache’Ignite’ In-Memory’Data’Fabric’for’.NET " " #apacheignite" Dmitriy"Setrakyan"

©  2016  GridGain  Systems,  Inc.  

Why  In-­‐Memory  Compu?ng  Now?  Declining  DRAM  Cost  

Cost  drops  30%  every  12  months  8  zeSabytes  in  2015  growing  to  35  in  2020  

DRAM  

Data  Growth  Driving  Demand  

Disk  

Flash  0

5

10

15

20

25

30

35

2009 2010 2015 2020

Growth of Global Data

ZeHab

ytes  of  D

ata  

Page 4: Apache’Ignite’ In-Memory’Data’Fabric’for’ · ©2016"GridGain"Systems,"Inc." Apache’Ignite’ In-Memory’Data’Fabric’for’.NET " " #apacheignite" Dmitriy"Setrakyan"

©  2016  GridGain  Systems,  Inc.  

•  Very  AcWve  Community  •  Great  Way  to  Learn  Distributed  CompuWng  •  How  To  Contribute:  

 –  hSps://ignite.apache.org/community/

contribute.html#contribute    

–  hSps://cwiki.apache.org/confluence/display/IGNITE/How+to+Contribute  

Apache  Ignite  -­‐  We  Are  Hiring!  

Page 5: Apache’Ignite’ In-Memory’Data’Fabric’for’ · ©2016"GridGain"Systems,"Inc." Apache’Ignite’ In-Memory’Data’Fabric’for’.NET " " #apacheignite" Dmitriy"Setrakyan"

©  2014  GridGain  Systems,  Inc.  

In-­‐Memory  Data  Fabric  NaWvely  developed  for  .NET    

 Apache  Ignite  is  a  leading  open-­‐source,  cloud-­‐ready  distributed  soaware  delivering  100x  performance  and  scalability  by  storing  and  processing  data  in  memory  across  scale  out  or  scale  up  infrastructure.  

Page 6: Apache’Ignite’ In-Memory’Data’Fabric’for’ · ©2016"GridGain"Systems,"Inc." Apache’Ignite’ In-Memory’Data’Fabric’for’.NET " " #apacheignite" Dmitriy"Setrakyan"

©  2016  GridGain  Systems,  Inc.  

Comprehensive  In-­‐Memory  Data  Fabric  

•  Richest  funcWonality  –  a  true  data  fabric  –  SQL,  distributed  data  and  

compute  grids,  streaming,  Hadoop  acceleraWon,  ACID  transacWons,  etc.  

•  Open  source  –  Apache  Ignite  –  for  Fast  Data  

what  Hadoop  is  for  Big  Data  

•  Most  strategic,  least  disrupWve  approach  to  in-­‐memory  speed  and  scale  –  No  rip-­‐and-­‐replace  of  exisWng  

infrastructure  

Page 7: Apache’Ignite’ In-Memory’Data’Fabric’for’ · ©2016"GridGain"Systems,"Inc." Apache’Ignite’ In-Memory’Data’Fabric’for’.NET " " #apacheignite" Dmitriy"Setrakyan"

©  2014  GridGain  Systems,  Inc.  

Apache  Ignite  for  .NET  •  Built  naWvely  in  .NET  •  Built  on  top  of  Apache  Ignite  Java-­‐core  –  Starts  JVM  inside  of  .NET  process  •  Binary  serializaWon  protocol  – Read/write  any  data  from/to  any  plahorm  (Java,  .NET  or  C++)  •  99%  na?ve  API  parity  between  Java  and  .NET  – APIs,  configuraWon,  runWme  are  pure  .NET  •  Full  LINQ  integraWon:  –  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  

Page 8: Apache’Ignite’ In-Memory’Data’Fabric’for’ · ©2016"GridGain"Systems,"Inc." Apache’Ignite’ In-Memory’Data’Fabric’for’.NET " " #apacheignite" Dmitriy"Setrakyan"

©  2016  GridGain  Systems,  Inc.  

•  Ease  of  Genng  Started  –  AutomaWc  Discovery  

•  Any  Environment  –  Public  Cloud  –  Private  Cloud  –  Hybrid  Cloud  –  Local  Laptop  

•  Full  Cluster  Management  •  Pluggable  Design  •  Available  on  Azure  Marketplace  

In-­‐Memory  Clustering  &  Deployment  

Page 9: Apache’Ignite’ In-Memory’Data’Fabric’for’ · ©2016"GridGain"Systems,"Inc." Apache’Ignite’ In-Memory’Data’Fabric’for’.NET " " #apacheignite" Dmitriy"Setrakyan"

©  2016  GridGain  Systems,  Inc.  

•  Direct  API  for  MapReduce  •  Zero  Deployment  •  Cron-­‐like  Task  Scheduling  •  State  Checkpoints  •  Load  Balancing  •  AutomaWc  Failover  •  Full  Cluster  Management  •  Pluggable  SPI  Design  

In-­‐Memory  Compute  Grid  

Page 10: Apache’Ignite’ In-Memory’Data’Fabric’for’ · ©2016"GridGain"Systems,"Inc." Apache’Ignite’ In-Memory’Data’Fabric’for’.NET " " #apacheignite" Dmitriy"Setrakyan"

©  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<string, int> { public int Invoke(string arg) => arg.Length;

}

Page 11: Apache’Ignite’ In-Memory’Data’Fabric’for’ · ©2016"GridGain"Systems,"Inc." Apache’Ignite’ In-Memory’Data’Fabric’for’.NET " " #apacheignite" Dmitriy"Setrakyan"

©  2016  GridGain  Systems,  Inc.  

•  Distributed  In-­‐Memory  Key-­‐Value  Store  

•  Replicated  and  ParWWoned  data  •  TBs  of  data,  of  any  type  •  On-­‐Heap  and  Off-­‐Heap  Storage  •  Highly  Available  In-­‐Memory  Replicas  •  AutomaWc  Failover    •  Distributed  ACID  TransacWons    •  SQL99  queries  and  JDBC/ODBC  driver  •  CollocaWon  of  Compute  and  Data  

In-­‐Memory  Data  Grid  

Page 12: Apache’Ignite’ In-Memory’Data’Fabric’for’ · ©2016"GridGain"Systems,"Inc." Apache’Ignite’ In-Memory’Data’Fabric’for’.NET " " #apacheignite" Dmitriy"Setrakyan"

©  2016  GridGain  Systems,  Inc.  

Code  Example  ICache<int, Organization> cache = ignite.CreateCache<int, Organization>("orgs");

cache.Put(1, new Organization {Name = "Apache", Type="Private"}); Console.WriteLine( "Retrieved organization instance from cache: ", cache.Get(1)

); ICache<int, IBinaryObject> binaryCache = cache.WithKeepBinary<int, IBinaryObject>();

IBinaryObject binaryOrg = binaryCache.Get(1); Console.WriteLine( "Retrieved organization name from binary object: ", binaryOrg.GetField<string>("name")

);

Page 13: Apache’Ignite’ In-Memory’Data’Fabric’for’ · ©2016"GridGain"Systems,"Inc." Apache’Ignite’ In-Memory’Data’Fabric’for’.NET " " #apacheignite" Dmitriy"Setrakyan"

©  2016  GridGain  Systems,  Inc.  

Code  Example  

const int zip = 94109; IQueryable<ICacheEntry<EmployeeKey, Employee>> qry = cache.AsCacheQueryable().Where(emp => emp.Value.Address.Zip == zip);

Console.WriteLine(); Console.WriteLine("Employees with zipcode " + zip + ":"); foreach (ICacheEntry<EmployeeKey, Employee> entry in qry) Console.WriteLine(entry.Value);

Page 14: Apache’Ignite’ In-Memory’Data’Fabric’for’ · ©2016"GridGain"Systems,"Inc." Apache’Ignite’ In-Memory’Data’Fabric’for’.NET " " #apacheignite" Dmitriy"Setrakyan"

©  2016  GridGain  Systems,  Inc.  

•  Distribute  Any  Data  Structure  –  Available  Anywhere  on  the  Grid  –  AutomaWc  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  

In-­‐Memory  Service  Grid  

Page 15: Apache’Ignite’ In-Memory’Data’Fabric’for’ · ©2016"GridGain"Systems,"Inc." Apache’Ignite’ In-Memory’Data’Fabric’for’.NET " " #apacheignite" Dmitriy"Setrakyan"

©  2016  GridGain  Systems,  Inc.  

•  Streaming  Data  Never  Ends  

•  Branching  Pipelines  •  Pluggable  RouWng  •  Sliding  Windows  for  

CEP/ConWnuous  Query  

•  Real  Time  Analysis  

In-­‐Memory  Streaming  and  CEP  

Page 16: Apache’Ignite’ In-Memory’Data’Fabric’for’ · ©2016"GridGain"Systems,"Inc." Apache’Ignite’ In-Memory’Data’Fabric’for’.NET " " #apacheignite" Dmitriy"Setrakyan"

©  2016  GridGain  Systems,  Inc.  

.NET  Code  Example  

using (IDataStreamer<int, Account> ldr = ignite.GetDataStreamer<int, Account>("accounts"))

{ for (var i = 0; i < 500000; i++) ldr.AddData(i, new Account(i, i));

}

Page 17: Apache’Ignite’ In-Memory’Data’Fabric’for’ · ©2016"GridGain"Systems,"Inc." Apache’Ignite’ In-Memory’Data’Fabric’for’.NET " " #apacheignite" Dmitriy"Setrakyan"

©  2016  GridGain  Systems,  Inc.  

•  Plug  and  Play  installa?on  •  10x  to  100x  AcceleraWon  •  In-­‐Memory  NaWve  MapReduce  •  In-­‐Process  Data  ColocaWon  •  IgniteFS  In-­‐Memory  File  System  •  Read-­‐Through  from  HDFS  •  Write-­‐Through  to  HDFS    •  Sync  and  Async  Persistence  

In-­‐Memory  Hadoop  Accelerator  

Page 18: Apache’Ignite’ In-Memory’Data’Fabric’for’ · ©2016"GridGain"Systems,"Inc." Apache’Ignite’ In-Memory’Data’Fabric’for’.NET " " #apacheignite" Dmitriy"Setrakyan"

©  2016  GridGain  Systems,  Inc.  

In-­‐Memory  Hadoop  Accelerator  

•  Zero  Code  Change  •  In-­‐Memory  NaWve  Performance  •  Use  exisWng  MR  code  •  Use  exisWng  Pig/Hive  queries  •  No  Name  Node  •  Eager  Push  Scheduling  

Page 19: Apache’Ignite’ In-Memory’Data’Fabric’for’ · ©2016"GridGain"Systems,"Inc." Apache’Ignite’ In-Memory’Data’Fabric’for’.NET " " #apacheignite" Dmitriy"Setrakyan"

©  2016  GridGain  Systems,  Inc.  

Spark  Integra?on  –  IGFS  &  Shared  RDD  

Page 20: Apache’Ignite’ In-Memory’Data’Fabric’for’ · ©2016"GridGain"Systems,"Inc." Apache’Ignite’ In-Memory’Data’Fabric’for’.NET " " #apacheignite" Dmitriy"Setrakyan"

©  2016  GridGain  Systems,  Inc.  

GridGain  Management  Console  hSps://console.gridgain.com  

Page 21: Apache’Ignite’ In-Memory’Data’Fabric’for’ · ©2016"GridGain"Systems,"Inc." Apache’Ignite’ In-Memory’Data’Fabric’for’.NET " " #apacheignite" Dmitriy"Setrakyan"

©  2016  GridGain  Systems,  Inc.  

THANK  YOU!  hSp://www.ignite.apache.org  

@apacheignite  

@dsetrakyan