SlideShare une entreprise Scribd logo
1  sur  74
Télécharger pour lire hors ligne
@PeterVeentjer
Distributed Systems Using
Hazelcast
Peter Veentjer
@PeterVeentjer
• Working for Hazelcast	

• Senior developer	

• Solution architect	

• Author of ‘Mastering Hazelcast 3'	

• 14 years Java experience	

• Big love	

• Concurrency control	

• Distributed computing
Whoami
@PeterVeentjer
@PeterVeentjer
What is Hazelcast?
@PeterVeentjer
What is Hazelcast?
• Leading Open Source Java In Memory Data/Compute Grid	

• Out main goal is to simplify development of:	

• Scalable systems	

• Highly available systems
@PeterVeentjer
Why Hazelcast?
• 2.5 MByte JAR	

• no other dependencies!	

• no need to install software!	

• Its a library, not an application framework	

• Apache 2 License	

• Free to use	

• no limitations
@PeterVeentjer
Distributed Data-structures
• IAtomicLong/Ref	

• IdGenerator	

• Lock/Condition	

• CountDownLatch	

• Semaphore	

• Queue	

• Map	

• MultiMap	

• Set	

• List	

• Topic	

• Executor	

• TransactionalMap/Q/S…	

• Write your own!
@PeterVeentjer
So what can I do with it?
@PeterVeentjer
Scaling
@PeterVeentjer
Scale up
@PeterVeentjer
Scale Out
@PeterVeentjer
High Availability
@PeterVeentjer
Raspberry Pi Cluster
@PeterVeentjer
When?
• Caching	

• Messaging Solution	

• Event processing	

• Clustered Scheduling	

• Job Processing	

• Cluster management	

• HTTP session clustering
@PeterVeentjer
Which companies
• E-Commerce	

• Apple, eBay	

• Financials	

• JP Morgan, Morgan Stanley, HSBC, Deutsche Bank	

• Telco’s	

• AT&T, Ericsson	

• Gaming	

• Ubisoft/Blue Byte
@PeterVeentjer
Which Open Source Projects
• WSO2 Carbon	

• Mule ESB	

• Vert.x	

• Apache Camel	

• Apache Shiro	

• OrientDB	

• Alfresco 	

• Karaf
@PeterVeentjer
How Often
• In October 2013	

• 3M startups	

• 48K unique
@PeterVeentjer
Where is the code!
@PeterVeentjer
HazelcastInstance	
  hz	
  =	
  Hazelcast.newHazelcastInstance();
Creating Hazelcast Cluster
@PeterVeentjer
<hazelcast>	
  
	
  	
  	
  	
  <network>…</network>	
  
	
  	
  	
  	
  <map	
  name=“m”>…</map>	
  
	
  	
  	
  	
  <queue	
  name=“q”>…</queue>	
  
	
  	
  	
  	
  <…	
  
</hazelcast>
XML Configuration
@PeterVeentjer
Config	
  config	
  =	
  new	
  Config();	
  
…	
  make	
  config	
  modifications	
  
HazelcastInstance	
  hz	
  =	
  Hazelcast.newHazelcastInstance(config);
Programmatic Configuration
Demo
@PeterVeentjer
@PeterVeentjer
Map<String,String>	
  products	
  =	
  new	
  HashMap();	
  
map.put("1","IPhone");
Map
@PeterVeentjer
Map<String,String>	
  products	
  =	
  new	
  ConcurrentHashMap();	
  
map.put("1","IPhone");
Map
@PeterVeentjer
HazelcastInstance	
  hz	
  =	
  Hazelcast.newHazelcastInstance();	
  
Map<String,String>	
  products	
  =	
  hz.getMap("products");	
  
cities.put("1","IPhone");	
  
Map
Demo
@PeterVeentjer
@PeterVeentjer
!
<map	
  name="products">	
  
	
  	
  	
  <time-­‐to-­‐live-­‐seconds>4</time-­‐to-­‐live-­‐seconds>	
  
	
  	
  	
  <indexes>	
  
	
  	
  	
  	
  	
  	
  	
  <index>name</index>	
  
	
  	
  	
  </indexes>	
  
	
  	
  	
  <..>	
  
</map>
Map Configuration
@PeterVeentjer
Map Scalability and High Availability
271 Partitions
partitionid = hash(key) % partitioncount
…
@PeterVeentjer
Map Scalability and High Availability
Member 1
@PeterVeentjer
Map Scalability and High Availability
Member 1
Member 2
@PeterVeentjer
Map Scalability and High Availability
Member 1
Member 2
Member 3
@PeterVeentjer
Map Scalability and High Availability
Member 1
Member 2
Member 3
@PeterVeentjer
Map Scalability and High Availability
Member 1
Member 2
Member 3
@PeterVeentjer
Map Scalability and High Availability
Member 1
Member 2
Demo
@PeterVeentjer
@PeterVeentjer
Multimap
• Collection as value	

• Serialization Overhead	

• Lost update
Demo
@PeterVeentjer
@PeterVeentjer
BlockingQueue	
  queue	
  =	
  new	
  LinkedBlockingQueue();	
  
queue.offer("1");	
  
Object	
  item	
  =	
  queue.take();	
  
Queue
@PeterVeentjer
!
HazelcastInstance	
  hz	
  =	
  Hazelcast.newHazelcastInstance();	
  
BlockingQueue	
  queue	
  =	
  hz.getQueue("queue");	
  
queue.offer("1");	
  
Object	
  item	
  =	
  queue.take();
Queue
Demo
@PeterVeentjer
@PeterVeentjer
ITopic	
  topic	
  =	
  hz.getTopic("topic");	
  	
  	
  	
  	
  
//publishing	
  
topic.publish(msg);	
  	
  	
  
!
//subscribing	
  	
  	
  	
  
topic.addMessageListener(new	
  TopicSubscriber());	
  
!
public	
  class	
  TopicSubscriber	
  implements	
  MessageListener<String>	
  
{	
  
	
  	
  	
  	
  public	
  void	
  onMessage(Message<String>	
  m)	
  {	
  
	
  	
  	
  	
  	
  	
  	
  	
  System.out.println(m.getMessageObject());	
  
	
  	
  	
  	
  }	
  
}
Topic
@PeterVeentjer
Client
• Simplified	

• Encryption	

• Load Balance Policy	

• C++ and C# version
@PeterVeentjer
HazelcastInstance	
  client	
  =	
  
HazelcastClient.newHazelcastClient();	
  
Client
@PeterVeentjer
Network Communication
• Cluster Discovery	

• Multicast	

• TCP/IP Cluster	

• AWS Cluster	

• Normal Network Communication	

• TCP/IP
@PeterVeentjer
Advanced Hazelcast
@PeterVeentjer
!
ILock	
  lock	
  =	
  hz.getLock(“someLock”);	
  
IAtomicLong	
  counter	
  =	
  getAtomicLong(“someCounter”);	
  
IMap	
  map	
  =	
  hz.getMap(“someMap”);	
  
map.put(“somePerson”,new	
  Person());	
  
map.get(“somePerson”);
Data Locality: Problem
@PeterVeentjer
Member 1
Member 2
Member 3
SomeLock
SomeCounter
SomePerson
@PeterVeentjer
name@partitionkey
name
@PeterVeentjer
ILock	
  lock	
  =	
  hz.getLock(“someLock@foo”);

IAtomicLong	
  counter	
  =	
  hz.getAtomicLong(“someCounter@foo”);	
  
IMap	
  map	
  =	
  hz.getMap(“someMap”);	
  
map.put(“somePerson@foo”,	
  new	
  Person());	
  
Person	
  p	
  =	
  map.get(“somePerson@foo”);
Data Locality: Fixed
@PeterVeentjer
Member 1
Member 2
Member 3
SomeLock
SomeCounter
SomePerson
Foo Partition
@PeterVeentjer
IAtomicLong	
  c1	
  =	
  …	
  
IAtomicLong	
  c2	
  =	
  hz.getAtomicLong(“c2@“+c1.getPartitionKey());
Adding object in same partition
@PeterVeentjer
Executor
• Execute task anywhere	

• Execute task on key owner	

• Execute task 	

• one/all/subset members	

• Synchronisation	

• Future	

• ExecutionCallback	

• CompletableFuture Hazelcast 3.3
Demo
@PeterVeentjer
@PeterVeentjer
Locking
• Locks	

• TransactionalMap.getForUpdate	

• Map.Lock
Demo
@PeterVeentjer
@PeterVeentjer
public	
  void	
  increment(int	
  accountId,int	
  amount){	
  
	
  	
  	
  	
  Account	
  account	
  =	
  accounts.get(accountId);	
  
	
  	
  	
  	
  account.balance+=amount;	
  
	
  	
  	
  	
  accounts.put(accountId,	
  account);	
  
}	
  
Race problem
@PeterVeentjer
public	
  void	
  increment(int	
  accountId,int	
  amount){	
  
	
  	
  	
  	
  accounts.lock(accountId);	
  
	
  	
  	
  	
  try{	
  
	
  	
  	
  	
  	
  	
  	
  	
  Account	
  account	
  =	
  accounts.get(accountId);	
  
	
  	
  	
  	
  	
  	
  	
  	
  account.balance+=amount;	
  
	
  	
  	
  	
  	
  	
  	
  	
  accounts.put(accountId,	
  account);	
  
	
  	
  	
  	
  }finally{	
  
	
  	
  	
  	
  	
  	
  	
  	
  accounts.unlock(accountId);	
  
	
  	
  	
  	
  }	
  
}	
  
Pessimistic Increment
@PeterVeentjer
public	
  void	
  increment(int	
  accountId,int	
  amount){	
  
	
  	
  	
  	
  accounts.lock(accountId);	
  
	
  	
  	
  	
  try{	
  
	
  	
  	
  	
  	
  	
  	
  	
  Account	
  account	
  =	
  accounts.get(accountId);	
  
	
  	
  	
  	
  	
  	
  	
  	
  account.balance+=amount;	
  
	
  	
  	
  	
  	
  	
  	
  	
  accounts.put(accountId,	
  account);	
  
	
  	
  	
  	
  }finally{	
  
	
  	
  	
  	
  	
  	
  	
  	
  accounts.unlock(accountId);	
  
	
  	
  	
  	
  }	
  
}	
  
Pessimistic Increment
@PeterVeentjer
public	
  void	
  increment(int	
  accountId,int	
  amount){	
  
	
  	
  	
  	
  for(;;){	
  
	
  	
  	
  	
  	
  	
  	
  	
  Account	
  oldAccount	
  =	
  accounts.get(accountId);	
  
	
  	
  	
  	
  	
  	
  	
  	
  Account	
  newAccount	
  =	
  new	
  Account(oldAccount);	
  
	
  	
  	
  	
  	
  	
  	
  	
  newAccount.balance+=amount;	
  
	
  	
  	
  	
  	
  	
  	
  	
  if(accounts.replace(accountId,	
  oldAccount,newAccount)){	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  return;	
  
	
  	
  	
  	
  	
  	
  	
  	
  }	
  
	
  	
  	
  	
  }	
  
}	
  
Optimistic Increment
@PeterVeentjer
public	
  void	
  increment(int	
  accountId,int	
  amount){	
  
	
  	
  	
  	
  for(;;){	
  
	
  	
  	
  	
  	
  	
  	
  	
  Account	
  oldAccount	
  =	
  accounts.get(accountId);	
  
	
  	
  	
  	
  	
  	
  	
  	
  Account	
  newAccount	
  =	
  new	
  Account(oldAccount);	
  
	
  	
  	
  	
  	
  	
  	
  	
  newAccount.balance+=amount;	
  
	
  	
  	
  	
  	
  	
  	
  	
  if(accounts.replace(accountId,	
  oldAccount,newAccount)){	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  return;	
  
	
  	
  	
  	
  	
  	
  	
  	
  }	
  
	
  	
  	
  	
  }	
  
}	
  
Optimistic Increment
@PeterVeentjer
DATA
Bad: Send Data to Function
DATA
Good: Send Function to Data
Read Data
Write Data
Write Function
@PeterVeentjer
private	
  class	
  BalanceTask	
  implements	
  Runnable,Serializable{	
  
	
  	
  	
  	
  private	
  int	
  accountId,	
  amount;	
  
!
	
  	
  	
  	
  public	
  void	
  run()	
  {	
  
	
  	
  	
  	
  	
  	
  	
  	
  for(;;){	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Account	
  oldAccount	
  =	
  accounts.get(accountId);	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Account	
  newAccount	
  =	
  new	
  Account(oldAccount);	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  newAccount.balance+=amount;	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  if(accounts.replace(accountId,	
  
oldAccount,newAccount)){	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  return;	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  }	
  
	
  	
  	
  	
  	
  	
  	
  	
  }	
  
	
  	
  	
  	
  }	
  
}	
  	
  	
  	
  
Increment with runnable
@PeterVeentjer
public	
  void	
  increment(int	
  accountId,	
  int	
  amount){	
  
	
  	
  	
  	
  BalanceTask	
  task	
  =	
  new	
  BalanceTask(accountId,amount);	
  
	
  	
  	
  	
  executorService.executeOnKeyOwner(task,accountId);	
  
}
Increment with runnable
@PeterVeentjer
class	
  BalanceProcessor	
  
	
  	
  	
  	
  	
  	
  	
  	
  extends	
  AbstractEntryProcessor<Integer,Account>{	
  
	
  	
  	
  	
  int	
  amount;	
  
	
  	
  	
  	
  BalanceProcessor(int	
  amount)	
  {	
  
	
  	
  	
  	
  	
  	
  	
  	
  this.amount	
  =	
  amount;	
  
	
  	
  	
  	
  }	
  
!
	
  	
  	
  	
  @Override	
  
	
  	
  	
  	
  public	
  Object	
  process(Map.Entry<Integer,	
  Account>	
  entry)	
  {	
  
	
  	
  	
  	
  	
  	
  	
  	
  entry.getValue().balance+=amount;	
  
	
  	
  	
  	
  	
  	
  	
  	
  return	
  null;	
  
	
  	
  	
  	
  }	
  
}
Increment with EntryProcessor
@PeterVeentjer
public	
  void	
  increment(int	
  accountId,	
  int	
  amount){	
  
	
  	
  	
  	
  BalanceProcessor	
  processor	
  =	
  new	
  BalanceProcessor(amount);	
  
	
  	
  	
  	
  accounts.executeOnKey(accountId,	
  processor);	
  
}	
  
Using entry processor
@PeterVeentjer
Map: In Memory Format
• 2 Options	

• BINARY	

• OBJECT	

• Predicates	

• EntryProcessor
@PeterVeentjer
SPI
• You can write your own distributed data-structures	

• Example	

• Distributed Actors implementation
@PeterVeentjer
Serialization API
• Serializable/Externalizable	

• Portable	

• ByteArraySerializable	

• StreamSerializer	

• Kryo	

• Jackson Smile	

• Protobuf
@PeterVeentjer
Kryo Serialization
SizeinBytes
0
5,000
10,000
15,000
20,000
Serialization Kryo Kryp + Compr
@PeterVeentjer
!
SerializerConfig	
  productSerializer	
  =	
  new	
  SerializerConfig()	
  
	
  	
  	
  	
  	
  .setTypeClass(Product.class)	
  
	
  	
  	
  	
  	
  .setImplementation(new	
  ProductSerializer());	
  
!
Config	
  config	
  =	
  new	
  Config();	
  
config.getSerializationConfig().addSerializerConfig(productSeri
alizer);	
  
HazelcastInstance	
  hz	
  =	
  Hazelcast.newHazelcastInstance(config);
Pluggable Serialization
@PeterVeentjer
IMap<Integer,Account>	
  accounts	
  =	
  hz.getMap(“accounts”);	
  
Map<Integer,Integer>	
  result	
  =	
  accounts	
  
	
  	
  	
  	
  	
  .map(new	
  AccountSumMapper())	
  
	
  	
  	
  	
  	
  .reduce(new	
  AccountSumReducer())	
  
	
  	
  	
  	
  	
  .submit()
Hazelcast 3.2 Map Reduce
@PeterVeentjer
Enterprise vs Community edition
• Support contracts	

• Elastic Memory	

• Security	

• Management Center
@PeterVeentjer
The Future
• Topologies	

• Hosted Management Center	

• Dynamic Creation	

• Map of Maps	

• Tiered storage
@PeterVeentjer
Questions?
You can find us at the
Hazelcast booth!
Good Question? 

Get a Hazelcast
book!

Contenu connexe

Similaire à Jfokus - Hazlecast

Droid on Chain - Berry Ventura Lev, Kik
Droid on Chain - Berry Ventura Lev, KikDroid on Chain - Berry Ventura Lev, Kik
Droid on Chain - Berry Ventura Lev, KikDroidConTLV
 
JavaScript Fundamentals
JavaScript FundamentalsJavaScript Fundamentals
JavaScript FundamentalsDeepank Vora
 
UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 2UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 2DianaGray10
 
Introduction to Ethereum
Introduction to EthereumIntroduction to Ethereum
Introduction to EthereumArnold Pham
 
Salesforce Batch processing - Atlanta SFUG
Salesforce Batch processing - Atlanta SFUGSalesforce Batch processing - Atlanta SFUG
Salesforce Batch processing - Atlanta SFUGvraopolisetti
 
Building decentralised apps with js - Devoxx Morocco 2018
Building decentralised apps with js - Devoxx Morocco 2018Building decentralised apps with js - Devoxx Morocco 2018
Building decentralised apps with js - Devoxx Morocco 2018Mikhail Kuznetcov
 
Observability of InfluxDB IOx: Tracing, Metrics and System Tables
Observability of InfluxDB IOx: Tracing, Metrics and System TablesObservability of InfluxDB IOx: Tracing, Metrics and System Tables
Observability of InfluxDB IOx: Tracing, Metrics and System TablesInfluxData
 
Pragmatic Patterns (and Pitfalls) for Event Streaming in Brownfield Environme...
Pragmatic Patterns (and Pitfalls) for Event Streaming in Brownfield Environme...Pragmatic Patterns (and Pitfalls) for Event Streaming in Brownfield Environme...
Pragmatic Patterns (and Pitfalls) for Event Streaming in Brownfield Environme...HostedbyConfluent
 
Advance java session 8
Advance java session 8Advance java session 8
Advance java session 8Smita B Kumar
 
Dependency injection - the right way
Dependency injection - the right wayDependency injection - the right way
Dependency injection - the right wayThibaud Desodt
 
Splunk Ninjas Breakout Session
Splunk Ninjas Breakout SessionSplunk Ninjas Breakout Session
Splunk Ninjas Breakout SessionSplunk
 
OSA Con 2022 - Specifics of data analysis in Time Series Databases - Roman Kh...
OSA Con 2022 - Specifics of data analysis in Time Series Databases - Roman Kh...OSA Con 2022 - Specifics of data analysis in Time Series Databases - Roman Kh...
OSA Con 2022 - Specifics of data analysis in Time Series Databases - Roman Kh...Altinity Ltd
 
TwitterKitではじめる OAuthスピードクッキング
TwitterKitではじめる OAuthスピードクッキングTwitterKitではじめる OAuthスピードクッキング
TwitterKitではじめる OAuthスピードクッキングTakashi Nojima
 
Server Side Events
Server Side EventsServer Side Events
Server Side Eventsthepilif
 
Advance Sql Server Store procedure Presentation
Advance Sql Server Store procedure PresentationAdvance Sql Server Store procedure Presentation
Advance Sql Server Store procedure PresentationAmin Uddin
 
Timo Walther - Table & SQL API - unified APIs for batch and stream processing
Timo Walther - Table & SQL API - unified APIs for batch and stream processingTimo Walther - Table & SQL API - unified APIs for batch and stream processing
Timo Walther - Table & SQL API - unified APIs for batch and stream processingVerverica
 
Apache Flink's Table & SQL API - unified APIs for batch and stream processing
Apache Flink's Table & SQL API - unified APIs for batch and stream processingApache Flink's Table & SQL API - unified APIs for batch and stream processing
Apache Flink's Table & SQL API - unified APIs for batch and stream processingTimo Walther
 

Similaire à Jfokus - Hazlecast (20)

Droid on Chain - Berry Ventura Lev, Kik
Droid on Chain - Berry Ventura Lev, KikDroid on Chain - Berry Ventura Lev, Kik
Droid on Chain - Berry Ventura Lev, Kik
 
JavaScript Fundamentals
JavaScript FundamentalsJavaScript Fundamentals
JavaScript Fundamentals
 
Clojure workshop
Clojure workshopClojure workshop
Clojure workshop
 
UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 2UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 2
 
Introduction to Ethereum
Introduction to EthereumIntroduction to Ethereum
Introduction to Ethereum
 
Salesforce Batch processing - Atlanta SFUG
Salesforce Batch processing - Atlanta SFUGSalesforce Batch processing - Atlanta SFUG
Salesforce Batch processing - Atlanta SFUG
 
Building decentralised apps with js - Devoxx Morocco 2018
Building decentralised apps with js - Devoxx Morocco 2018Building decentralised apps with js - Devoxx Morocco 2018
Building decentralised apps with js - Devoxx Morocco 2018
 
Observability of InfluxDB IOx: Tracing, Metrics and System Tables
Observability of InfluxDB IOx: Tracing, Metrics and System TablesObservability of InfluxDB IOx: Tracing, Metrics and System Tables
Observability of InfluxDB IOx: Tracing, Metrics and System Tables
 
Pragmatic Patterns (and Pitfalls) for Event Streaming in Brownfield Environme...
Pragmatic Patterns (and Pitfalls) for Event Streaming in Brownfield Environme...Pragmatic Patterns (and Pitfalls) for Event Streaming in Brownfield Environme...
Pragmatic Patterns (and Pitfalls) for Event Streaming in Brownfield Environme...
 
Advance java session 8
Advance java session 8Advance java session 8
Advance java session 8
 
Finatra v2
Finatra v2Finatra v2
Finatra v2
 
Dependency injection - the right way
Dependency injection - the right wayDependency injection - the right way
Dependency injection - the right way
 
Splunk Ninjas Breakout Session
Splunk Ninjas Breakout SessionSplunk Ninjas Breakout Session
Splunk Ninjas Breakout Session
 
OSA Con 2022 - Specifics of data analysis in Time Series Databases - Roman Kh...
OSA Con 2022 - Specifics of data analysis in Time Series Databases - Roman Kh...OSA Con 2022 - Specifics of data analysis in Time Series Databases - Roman Kh...
OSA Con 2022 - Specifics of data analysis in Time Series Databases - Roman Kh...
 
TwitterKitではじめる OAuthスピードクッキング
TwitterKitではじめる OAuthスピードクッキングTwitterKitではじめる OAuthスピードクッキング
TwitterKitではじめる OAuthスピードクッキング
 
Server Side Events
Server Side EventsServer Side Events
Server Side Events
 
Advance Sql Server Store procedure Presentation
Advance Sql Server Store procedure PresentationAdvance Sql Server Store procedure Presentation
Advance Sql Server Store procedure Presentation
 
Requery overview
Requery overviewRequery overview
Requery overview
 
Timo Walther - Table & SQL API - unified APIs for batch and stream processing
Timo Walther - Table & SQL API - unified APIs for batch and stream processingTimo Walther - Table & SQL API - unified APIs for batch and stream processing
Timo Walther - Table & SQL API - unified APIs for batch and stream processing
 
Apache Flink's Table & SQL API - unified APIs for batch and stream processing
Apache Flink's Table & SQL API - unified APIs for batch and stream processingApache Flink's Table & SQL API - unified APIs for batch and stream processing
Apache Flink's Table & SQL API - unified APIs for batch and stream processing
 

Plus de Hazelcast

Time to Make the Move to In-Memory Data Grids
Time to Make the Move to In-Memory Data GridsTime to Make the Move to In-Memory Data Grids
Time to Make the Move to In-Memory Data GridsHazelcast
 
The Power of the JVM: Applied Polyglot Projects with Java and JavaScript
The Power of the JVM: Applied Polyglot Projects with Java and JavaScriptThe Power of the JVM: Applied Polyglot Projects with Java and JavaScript
The Power of the JVM: Applied Polyglot Projects with Java and JavaScriptHazelcast
 
JCache - It's finally here
JCache -  It's finally hereJCache -  It's finally here
JCache - It's finally hereHazelcast
 
Speed Up Your Existing Relational Databases with Hazelcast and Speedment
Speed Up Your Existing Relational Databases with Hazelcast and SpeedmentSpeed Up Your Existing Relational Databases with Hazelcast and Speedment
Speed Up Your Existing Relational Databases with Hazelcast and SpeedmentHazelcast
 
Shared Memory Performance: Beyond TCP/IP with Ben Cotton, JPMorgan
Shared Memory Performance: Beyond TCP/IP with Ben Cotton, JPMorganShared Memory Performance: Beyond TCP/IP with Ben Cotton, JPMorgan
Shared Memory Performance: Beyond TCP/IP with Ben Cotton, JPMorganHazelcast
 
Applying Real-time SQL Changes in your Hazelcast Data Grid
Applying Real-time SQL Changes in your Hazelcast Data GridApplying Real-time SQL Changes in your Hazelcast Data Grid
Applying Real-time SQL Changes in your Hazelcast Data GridHazelcast
 
WAN Replication: Hazelcast Enterprise Lightning Talk
WAN Replication: Hazelcast Enterprise Lightning TalkWAN Replication: Hazelcast Enterprise Lightning Talk
WAN Replication: Hazelcast Enterprise Lightning TalkHazelcast
 
JAAS Security Suite: Hazelcast Enterprise Lightning Talk
JAAS Security Suite: Hazelcast Enterprise Lightning TalkJAAS Security Suite: Hazelcast Enterprise Lightning Talk
JAAS Security Suite: Hazelcast Enterprise Lightning TalkHazelcast
 
Hazelcast for Terracotta Users
Hazelcast for Terracotta UsersHazelcast for Terracotta Users
Hazelcast for Terracotta UsersHazelcast
 
Extreme Network Performance with Hazelcast on Torusware
Extreme Network Performance with Hazelcast on ToruswareExtreme Network Performance with Hazelcast on Torusware
Extreme Network Performance with Hazelcast on ToruswareHazelcast
 
Big Data, Simple and Fast: Addressing the Shortcomings of Hadoop
Big Data, Simple and Fast: Addressing the Shortcomings of HadoopBig Data, Simple and Fast: Addressing the Shortcomings of Hadoop
Big Data, Simple and Fast: Addressing the Shortcomings of HadoopHazelcast
 
JAXLondon - Squeezing Performance of IMDGs
JAXLondon - Squeezing Performance of IMDGsJAXLondon - Squeezing Performance of IMDGs
JAXLondon - Squeezing Performance of IMDGsHazelcast
 
OrientDB & Hazelcast: In-Memory Distributed Graph Database
 OrientDB & Hazelcast: In-Memory Distributed Graph Database OrientDB & Hazelcast: In-Memory Distributed Graph Database
OrientDB & Hazelcast: In-Memory Distributed Graph DatabaseHazelcast
 
How to Use HazelcastMQ for Flexible Messaging and More
 How to Use HazelcastMQ for Flexible Messaging and More How to Use HazelcastMQ for Flexible Messaging and More
How to Use HazelcastMQ for Flexible Messaging and MoreHazelcast
 
JSR107 State of the Union JavaOne 2013
JSR107  State of the Union JavaOne 2013JSR107  State of the Union JavaOne 2013
JSR107 State of the Union JavaOne 2013Hazelcast
 
In-memory No SQL- GIDS2014
In-memory No SQL- GIDS2014In-memory No SQL- GIDS2014
In-memory No SQL- GIDS2014Hazelcast
 
In-memory Data Management Trends & Techniques
In-memory Data Management Trends & TechniquesIn-memory Data Management Trends & Techniques
In-memory Data Management Trends & TechniquesHazelcast
 
How to Speed up your Database
How to Speed up your DatabaseHow to Speed up your Database
How to Speed up your DatabaseHazelcast
 

Plus de Hazelcast (18)

Time to Make the Move to In-Memory Data Grids
Time to Make the Move to In-Memory Data GridsTime to Make the Move to In-Memory Data Grids
Time to Make the Move to In-Memory Data Grids
 
The Power of the JVM: Applied Polyglot Projects with Java and JavaScript
The Power of the JVM: Applied Polyglot Projects with Java and JavaScriptThe Power of the JVM: Applied Polyglot Projects with Java and JavaScript
The Power of the JVM: Applied Polyglot Projects with Java and JavaScript
 
JCache - It's finally here
JCache -  It's finally hereJCache -  It's finally here
JCache - It's finally here
 
Speed Up Your Existing Relational Databases with Hazelcast and Speedment
Speed Up Your Existing Relational Databases with Hazelcast and SpeedmentSpeed Up Your Existing Relational Databases with Hazelcast and Speedment
Speed Up Your Existing Relational Databases with Hazelcast and Speedment
 
Shared Memory Performance: Beyond TCP/IP with Ben Cotton, JPMorgan
Shared Memory Performance: Beyond TCP/IP with Ben Cotton, JPMorganShared Memory Performance: Beyond TCP/IP with Ben Cotton, JPMorgan
Shared Memory Performance: Beyond TCP/IP with Ben Cotton, JPMorgan
 
Applying Real-time SQL Changes in your Hazelcast Data Grid
Applying Real-time SQL Changes in your Hazelcast Data GridApplying Real-time SQL Changes in your Hazelcast Data Grid
Applying Real-time SQL Changes in your Hazelcast Data Grid
 
WAN Replication: Hazelcast Enterprise Lightning Talk
WAN Replication: Hazelcast Enterprise Lightning TalkWAN Replication: Hazelcast Enterprise Lightning Talk
WAN Replication: Hazelcast Enterprise Lightning Talk
 
JAAS Security Suite: Hazelcast Enterprise Lightning Talk
JAAS Security Suite: Hazelcast Enterprise Lightning TalkJAAS Security Suite: Hazelcast Enterprise Lightning Talk
JAAS Security Suite: Hazelcast Enterprise Lightning Talk
 
Hazelcast for Terracotta Users
Hazelcast for Terracotta UsersHazelcast for Terracotta Users
Hazelcast for Terracotta Users
 
Extreme Network Performance with Hazelcast on Torusware
Extreme Network Performance with Hazelcast on ToruswareExtreme Network Performance with Hazelcast on Torusware
Extreme Network Performance with Hazelcast on Torusware
 
Big Data, Simple and Fast: Addressing the Shortcomings of Hadoop
Big Data, Simple and Fast: Addressing the Shortcomings of HadoopBig Data, Simple and Fast: Addressing the Shortcomings of Hadoop
Big Data, Simple and Fast: Addressing the Shortcomings of Hadoop
 
JAXLondon - Squeezing Performance of IMDGs
JAXLondon - Squeezing Performance of IMDGsJAXLondon - Squeezing Performance of IMDGs
JAXLondon - Squeezing Performance of IMDGs
 
OrientDB & Hazelcast: In-Memory Distributed Graph Database
 OrientDB & Hazelcast: In-Memory Distributed Graph Database OrientDB & Hazelcast: In-Memory Distributed Graph Database
OrientDB & Hazelcast: In-Memory Distributed Graph Database
 
How to Use HazelcastMQ for Flexible Messaging and More
 How to Use HazelcastMQ for Flexible Messaging and More How to Use HazelcastMQ for Flexible Messaging and More
How to Use HazelcastMQ for Flexible Messaging and More
 
JSR107 State of the Union JavaOne 2013
JSR107  State of the Union JavaOne 2013JSR107  State of the Union JavaOne 2013
JSR107 State of the Union JavaOne 2013
 
In-memory No SQL- GIDS2014
In-memory No SQL- GIDS2014In-memory No SQL- GIDS2014
In-memory No SQL- GIDS2014
 
In-memory Data Management Trends & Techniques
In-memory Data Management Trends & TechniquesIn-memory Data Management Trends & Techniques
In-memory Data Management Trends & Techniques
 
How to Speed up your Database
How to Speed up your DatabaseHow to Speed up your Database
How to Speed up your Database
 

Dernier

8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrandmasabamasaba
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...masabamasaba
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyviewmasabamasaba
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...masabamasaba
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...masabamasaba
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024VictoriaMetrics
 
tonesoftg
tonesoftgtonesoftg
tonesoftglanshi9
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park masabamasaba
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...Shane Coughlan
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...masabamasaba
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...Jittipong Loespradit
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburgmasabamasaba
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Hararemasabamasaba
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park masabamasaba
 

Dernier (20)

8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 

Jfokus - Hazlecast