[1] O documento discute as vantagens do GemFire Enterprise Data Fabric para fornecer alta disponibilidade de dados com desempenho e confiabilidade extremos. [2] O GemFire permite escalonamento linear horizontal através da adição e remoção de servidores na camada de aplicação, banco de dados e armazenamento. [3] O GemFire oferece particionamento e replicação de dados em memória para melhorar o desempenho em comparação a bancos de dados tradicionais.
2. As limitações dos RDBMSs tradicionais...
Típico deployment para aplicações
Aumento expressivo no
corporativas em ambiente HA
número de nós na camada de
aplicação exige que a camada
de acesso a dados escale na
mesma proporção.
Aumento na
demanda de acesso
a dados (leitura e
escrita)
Aumento no número de
requisições ao cluster
de banco de dados Alta
disponibilidade no
banco de dados
provida por
Storage
compartlilhado
72
quinta-feira, 27 de outubro de 11
3. Escalando com infra-estrutura elástica
Load Balancer
Add/remove web servers
Web Tier
Stateless
Application Tier
Add/remove application servers
Database Tier
Move to bigger machine
Stateful
Storage Tier
Add/reconfigure storage
quinta-feira, 27 de outubro de 11
4. Escalando com infra-estrutura elástica
Load Balancer
Add/remove web servers
Web Tier
Stateless
Application Tier
Add/remove application servers
Database Tier
Move to bigger machine
Stateful
Storage Tier
Add/reconfigure storage
quinta-feira, 27 de outubro de 11
5. Escalando com infra-estrutura elástica
Load Balancer
Web Tier
Stateless
Application Tier
Database Tier
Move to bigger machine
Stateful
Storage Tier
Add/reconfigure storage
quinta-feira, 27 de outubro de 11
6. Escalando com infra-estrutura elástica
As camadas Web de de Aplicação
podem ser facilmente separadas e
consolidadas. Servidores podem ser
Load Balancer
adicionados ou removidos segundo Add/remove web/application
demanda - on the fly. servers
Web Tier
Application Tier
Como escalar
horizontalmente de
forma linear???
A base de dados somente “cresce” Database Tier
movendo a máquina (física ou
virtual) para um servidor com maior
Move to bigger machine
capacidade
Os discos podem ser Storage Tier
virtualizados e crescer sobre
demanda Add/reconfigure storage
quinta-feira, 27 de outubro de 11
7. Porém...
... I/O se torna o gargalo
6
quinta-feira, 27 de outubro de 11
8. Porém...
... I/O se torna o gargalo
~ 3.000.000 x mais Bancos de Dados podem
lento!!! até fazer caching de dados
para leitura, mas...
Alterações de dados
demandam
necessariamente acesso
síncrono ao
armazenamento rígido e
locking distribuído
77
quinta-feira, 27 de outubro de 11
9. Geo-replicação
Replicação entre data centers
Site principal Site backup
Replicação de
banco (Data Guard)
replicação
de storage
8
quinta-feira, 27 de outubro de 11
10. Sua aplicação está preparada para ambiente Cloud?
“ The big glaring hole [with cloud]
is data handling.
” -Adrian Kunzle, MD
Head of Engineering & Architecture, JPMorgan Chase
File Systems Databases Other Systems
9
quinta-feira, 27 de outubro de 11
11. Virtualizando também dados
Load Balancer
Web Tier
Application Tier
Database Tier
Storage Tier
quinta-feira, 27 de outubro de 11
12. Virtualizando também dados
Load Balancer
Web Tier
Application Tier
Database Tier
Storage Tier
quinta-feira, 27 de outubro de 11
13. Virtualizando também dados
Load Balancer
Web Tier
Application Tier
Database Tier
Storage Tier
quinta-feira, 27 de outubro de 11
14. Movendo dados para o Data Fabric
Load Balancer
Web Tier
Application Tier
Database Tier
Storage Tier
quinta-feira, 27 de outubro de 11
15. Movendo dados para o Data Fabric
Load Balancer
Web Tier
Application Tier
Storage Tier
quinta-feira, 27 de outubro de 11
16. Movendo dados para o Data Fabric
Load Balancer
Add/remove web/application/data
servers
Web Tier
Application Tier
Storage Tier
Add/remove storage
Disks may be direct or network
attached
quinta-feira, 27 de outubro de 11
17. Movendo dados para o Data Fabric
Load Balancer
Add/remove web/application/data
servers
Web Tier
Application Tier
Storage Tier
Add/remove storage
Disks may be direct or network
attached
Optional reliable, asynchronous feed
to Data Warehouse or Archival
Database
quinta-feira, 27 de outubro de 11
18. Movendo dados para o Data Fabric
In-Memory Distributed Fabric Dados em memoria podem ser
assincronamente persistidos /
lidos de armazenamento
persistente
Clustered Application
Data Data Data
Particionamento,
distribuição e replicação
de dados em memória
– Suporte para múltiplas linguagens / plataformas (Java, .NET, C, C++)
– Segurança de base de dados integrada
– Pode trabalhar desde como um simples cache distribuído (integrado ao
Hibernate e.g.) até completo Data Fabric.
– Execução de requisições distribuídas (Function Execution Framework)
– Map-Reduce
– Partitioned in-memory caching
– Replicação para distribuição geográfica / WAN
quinta-feira, 27 de outubro de 11
19. Movendo dados para o Data Fabric
In-Memory Distributed Fabric Dados em memoria podem ser
assincronamente persistidos /
lidos de armazenamento
persistente
Clustered Application
Data Data Data
Particionamento,
distribuição e replicação
de dados em memória
– Suporte para múltiplas linguagens / plataformas (Java, .NET, C, C++)
– Segurança de base de dados integrada
– Pode trabalhar desde como um simples cache distribuído (integrado ao
Hibernate e.g.) até completo Data Fabric.
– Execução de requisições distribuídas (Function Execution Framework)
– Map-Reduce
– Partitioned in-memory caching
– Replicação para distribuição geográfica / WAN
quinta-feira, 27 de outubro de 11
20. HA, particionamento e replicação de dados
LOCATOR
Transações Servidor 1 Servidor 2 Servidor 3 Servidor 4 Servidor 5
OLTP em
memória
Overflow automático
para disco caso
necessário
Escrita síncrona
ou assíncrona
em disco (DB
OLAP)
Nó principal da área de memória
OLAP DB
13
quinta-feira, 27 de outubro de 11
21. HA, particionamento e replicação de dados
LOCATOR
Transações Servidor 1 Servidor 2 Servidor 3 Servidor 4 Servidor 5
OLTP em
memória
Overflow automático
para disco caso
necessário
Escrita síncrona
ou assíncrona
em disco (DB
OLAP)
Nó principal da área de memória
OLAP DB
13
quinta-feira, 27 de outubro de 11
22. Atingindo escalabilidade e elasticidade extremas
Principais Casos de Uso
§ Web Session Cache, L2 Cache
• Gestão de objetos stateful em ambiente
distribuído
§ App Data Cache, In-memory DB
• Banco de dados OLTP baseado em
Os dados de objetos de extrema alta performance
aplicações
§ Grid Data Fabric: Client Compute
“vivem” aqui
• Data grid compartilhado acessado por
clientes executando lógica de aplicação
§ Grid Data Fabric: Fabric Compute
• Data grid compartilhado onde a lógica de
Os dados de aplicação é distribuída na núvem e
executada no próprio grid
aplicação
“dormem” aqui
File Systems Databases Mainframes / outros
14
quinta-feira, 27 de outubro de 11
23. Como GemFire se compara aos concorrentes?
Servidor 1 Servidor 2 Servidor 3 Servidor 4 Servidor 5
quinta-feira, 27 de outubro de 11
24. Como GemFire se compara aos concorrentes?
Suporte para múltiplas
linguagens / plataformas
simultaneamente
Servidor 1 Servidor 2 Servidor 3 Servidor 4 Servidor 5
quinta-feira, 27 de outubro de 11
25. Como GemFire se compara aos concorrentes?
Suporte para múltiplas
linguagens / plataformas
simultaneamente
Suporte a versionamento de
objetos
Servidor 1 Servidor 2 Servidor 3 Servidor 4 Servidor 5
quinta-feira, 27 de outubro de 11
26. Como GemFire se compara aos concorrentes?
Suporte para múltiplas
linguagens / plataformas
simultaneamente
Suporte a versionamento de
objetos
Servidor 1 Servidor 2 Servidor 3 Servidor 4 Servidor 5
Escrita síncrona ou
assíncrona para banco de
dados
quinta-feira, 27 de outubro de 11
27. Como GemFire se compara aos concorrentes?
Suporte para múltiplas
linguagens / plataformas
simultaneamente
Suporte a versionamento de
objetos
Servidor 1 Servidor 2 Servidor 3 Servidor 4 Servidor 5
Cache Loader
Escrita síncrona ou
assíncrona para banco de
dados
quinta-feira, 27 de outubro de 11
28. Como GemFire se compara aos concorrentes?
Suporte para múltiplas Queries Contínuas
linguagens / plataformas
simultaneamente
Suporte a versionamento de
objetos
Servidor 1 Servidor 2 Servidor 3 Servidor 4 Servidor 5
Cache Loader
Escrita síncrona ou
assíncrona para banco de
dados
quinta-feira, 27 de outubro de 11
29. Como GemFire se compara aos concorrentes?
Suporte para múltiplas Queries Contínuas
linguagens / plataformas
simultaneamente
Suporte a versionamento de
objetos
Servidor 1 Servidor 2 Servidor 3 Servidor 4 Servidor 5
Cache Loader
Escrita síncrona ou
assíncrona para banco de
dados
quinta-feira, 27 de outubro de 11
30. Como GemFire se compara aos concorrentes?
Suporte para múltiplas Queries Contínuas
linguagens / plataformas
simultaneamente
Suporte a versionamento de
objetos
Servidor 1 Servidor 2 Servidor 3 Servidor 4 Servidor 5
Cache Loader
Escrita síncrona ou
assíncrona para banco de
dados Execução distribuída de
funções e map-reduce
quinta-feira, 27 de outubro de 11
31. Como GemFire se compara aos concorrentes?
Suporte para múltiplas Queries Contínuas
linguagens / plataformas
simultaneamente
Suporte a versionamento de
objetos
Servidor 1 Servidor 2 Servidor 3 Servidor 4 Servidor 5
Cache Loader
Escrita síncrona ou
assíncrona para banco de
dados Execução distribuída de
funções e map-reduce
quinta-feira, 27 de outubro de 11
32. Como GemFire se compara aos concorrentes?
Suporte para múltiplas Queries Contínuas
linguagens / plataformas
simultaneamente
Suporte a versionamento de Replicação em WAN
objetos
Servidor 1 Servidor 2 Servidor 3 Servidor 4 Servidor 5
Cache Loader
Escrita síncrona ou
assíncrona para banco de
dados Execução distribuída de
funções e map-reduce
quinta-feira, 27 de outubro de 11
33. Performance baseada em acesso a memória
GemFire usa memória em cluster de máquinas para transacionar
Perform atualizações de dados, permitindo atualizações 10x a 200x mais
rápidas que atualizações serializadas em disco (BD tradicional), sem
qualquer risco adicional de perda de dados.
Tempos típicos de latência são de geralmente de ~100-400
microsegundos, ao invés de ~5-200 milisegundos.
GemFire pode ainda opcionalmente escrever em disco / banco de dados
tradicional de modo síncrono ou assíncrono.
Essa funcionalidade é geralmente utilizada para manter registro das
transações e dados para OLAP.
quinta-feira, 27 de outubro de 11
34. Distribuição de Dados
Distribute
GemFire pode manter clusters locais e geograficamente distribuídos sincronizados em
tempo real e operar de forma confiável em ambientes fracamente conectados,
intermitentes e com banda de rede limitada.
quinta-feira, 27 de outubro de 11
35. Arquitetura Orientada a Eventos distribuídos
Notify
Notificação com entrega garantida
de eventos de atualização de dados
ocorridos em qualquer dos nós.
Queries Contínuas - migração do
modelo polling para orientação a
eventos.
quinta-feira, 27 de outubro de 11
36. Consultas Paralelas
Compute Controlador batch
ou aplicação cliente
Scatter-Gather (Map-Reduce)
Queries
quinta-feira, 27 de outubro de 11
37. Consultas Paralelas
Compute Controlador batch
ou aplicação cliente
Scatter-Gather (Map-Reduce)
Queries
quinta-feira, 27 de outubro de 11
38. Roteamento inteligente de funções de dados
Data Aware Function
Execute Batch Controller or
Client
Movendo a funcionalidade para os dados corretos ao invés de mover os
dados para a funcionalidade
quinta-feira, 27 de outubro de 11
39. Cloud Ready
Pronto para o deployment em ambiente de Cloud - escalável verticalmente e
horizontalmente.
Adicione ou remova nós Web, de
Load Balancer Aplicação ou de gestão de
dados sob demanda on-the-fly
Web Tier
Application Tier
Adicione e remova
Discos para overflow (swap) se
armazenamento persistente
necessário
segundo demanda on-the-fly.
Gravação síncrona ou assíncrona
opcional para armazenamento
persistente
quinta-feira, 27 de outubro de 11
40. • Semântica de Banco de Dados OO
– OQL (Object Query Language)
SELECT * FROM /root/trades t WHERE t.price < 100
– Continuous Queries
Escalabilidade Linear
– Indexes
– Transactions
– Local
– Distributed
– Co-located
22
quinta-feira, 27 de outubro de 11
41. SQLFire: GemFire em
paradigma relacional / SQL
23
quinta-feira, 27 de outubro de 11
42. SQLFire
Mesmos benefícios do GemFire com paradigma relacional e
interface SQL
Se comporta como um banco de dados SQL padrão, porém se utiliza do GemFire para
replicar, particionar e distribuir dados na núvem.
24
quinta-feira, 27 de outubro de 11
43. Criação de tabelas
Criação de tabela tradicional
Criação de tabela replicada
25
quinta-feira, 27 de outubro de 11
44. Particionamento e Redundância
Criação de tabela particionada
Criação de tabela particionada e redundante
26
quinta-feira, 27 de outubro de 11
46. Co-locação com dados relacionados
Indica ao SQLFire/GemFire armazenar dados relacionados nos mesmos servidores, de
modo a obter máxima performance em consultas relacionadas (joins)
28
quinta-feira, 27 de outubro de 11
47. Persistência (síncrona ou assíncrona)
Indica ao SQLFire/GemFire persistir os dados em armazenamento persistente de modo
síncrono ou assíncrono - para redundância adicional ou para alimentar reports / base
OLAP.
29
quinta-feira, 27 de outubro de 11
48. Casos de sucesso
Alguns exemplos da tecnologia Gemfire
aplicada em casos reais
quinta-feira, 27 de outubro de 11
49. Global Foreign Exchange
Caso Real: Sistema de negociação global de moedas
O projeto atingiu e permitiu:
Ø Negociação de milhares de ativos em extrema
baixa latência
Ø Autonomia regional (America, Asia, Europa)
Ø Garantia transacional e de persistência de
cada negócio efetuado
Ø Atualização em tempo real dos dados de
mercado
Ø Cálculo imediato da posição global em tempo
real - baseado em eventos
Ø Distribuição de todas as atualizações
globalmente em tempo real
Ø Alta disponibilidade (99,99%)
Ø Disaster Recovery
quinta-feira, 27 de outubro de 11
50. Global Foreign Exchange
Caso Real: Sistema de negociação global de moedas
O projeto permitiu substituir ou eliminar:
Vários Oracle Database em cada região
(é mantida apenas 1 instancia para arquivamento)
TIBCO Rendezvous para mensageria local
IBM MQ Series para mensageria em WAN
Veritas N+1 Clustering para H/A
3 DNS ou Wide IP
Custos de administração em 66%
quinta-feira, 27 de outubro de 11
51. Web Portal
Caso real: Web 2.0 Portal – ads customizados
Um site extremamente pupular que atrai novos clientes baseados em banners
Banner customizado em site de parceiro
Em alguns milisegundos, o servidor de banners deve:
Gerar um ID específico para a requisição
Aplicar dezenas de regras relacionadas à região,
contrato, IP de origem e características do cliente
Decidir qual banner aplicar e customizá-lo a partir
das regras
Armazenar (transacionar) o banner exibido
4
2
3
1 Banner Ad Server
Web Server do parceiro
quinta-feira, 27 de outubro de 11
52. Web Portal
Caso real: Web 2.0 Portal – ads customizados
Um site extremamente pupular que atrai novos clientes baseados em banners
Respostas com latência inferior a 1ms
Atingiu o target de 2500 banners entregues por
segundo
Provou-se escalável linearmente
Melhorou a performance da solução antiga baseada
em banco de dados popular em 4x
Custou menos que a solução antiga
4
2
3
1 Banner Ad Server
Web Server do parceiro
quinta-feira, 27 de outubro de 11
53. Migração de batches do Mainframe
Caso real: Batch noturno em mainframe
Caso de execução noturna de batch de re-conciliação de contas
0 60 120
min
CPU Unavailable CPU Busy I/O Wait
76% 15% 9%
Mainframe 120 minutos
Batch agora executa em 60 segundos
COTS Cluster
93% Network Wait! Tempo poderia ainda ser muito reduzido com maior banda de rede!
quinta-feira, 27 de outubro de 11
54. Migração de batches do Mainframe
Caso real: Batch noturno em mainframe
Benefícios atingidos:
1. Economia de recursos, plataforma moderna e escalável
2. Quando algo de errado ocorre no batch, é possível se
descobrir em apenas 60 segundos
3. Agora o hardware e dados estão disponíveis os outros 119
minutos para:
• Fraud detection
• Compliance regulatório
• Re-calcular o risco em outros 119 cenários
• Atividades ligadas ao negócio
• Aumentando a banda de rede, pode-se obter o cálculo em
tempo real!
quinta-feira, 27 de outubro de 11
55. Monitoramento e posicionamento de ativos militares - EUA
Caso real: DISA / DOD Global Command and Control
655 sites, 11 mil usuários
Real-time, tri-dimensional, NASA World Wind User Interface
60,000 atualizações per minute
Usuários
President of the United States
US Secretary of Defense
Todos os chefes de comando
Todos os comandantes do exército
Sendo avaliado para utilização por todos os aliados dos EUA
quinta-feira, 27 de outubro de 11
56. Monitoramento e posicionamento de ativos militares - EUA
Caso real: DISA / DOD Global Command and Control
Armazenamento centralizado de dados impossível
Integração de várias agências e divisões
Muitas aplicações lendo e escrevendo simultaneamente os dados
Redes mudando constantemente, não-confiáveis, móveis, lentas
Até 60 mil atualizações de objetos por minuto (picos de 20 mil por
segundo)
Até 70 pontos de atualização de dados diferentes.
Necessidade de um sistema real-time para rastrear pontos e alvos amigos e inimigos e que possa
ser usado e compartilhado por todos envolvidos no cenário de guerra.
Northrop Grumman (integrador) avaliou as seguintes tecnologias - e escolheu o GemFire:
•RDBMS – Oracle, Sybase, Postgres, TimesTen, MySQL
•ODBMS - Objectivity
•jCache – GemFire, Oracle Coherence
•JMS – SonicMQ, BEA Weblogic, IBM, JBoss MQ
•TIBCO Rendezvous
•Web Services, Rest
quinta-feira, 27 de outubro de 11
57. VMware Cloud Application Platform
Modern Frameworks and Tools
ü Developer Productivity and Application Portability
Lean, Cloud-scale Application Services
ü Optimized Runtime and Accelerated Deployment
Virtual Datacenter
Cloud Infrastructure and Management
39
quinta-feira, 27 de outubro de 11
58. VMware Cloud Application Platform
Modern Frameworks and Tools
…
ü Developer Productivity and Application Portability
Developer Frameworks and Tools
Lean, Cloud-scale Application Services
vFabric
ü Optimized Runtime and Accelerated Deployment
Application Services
Virtual Datacenter
Cloud Infrastructure and Management
39
quinta-feira, 27 de outubro de 11
59. VMware Cloud Application Platform
Programming Rich Social and
Model Web Mobile
Virtual Datacenter
Cloud Infrastructure and Management
40
quinta-feira, 27 de outubro de 11
60. VMware Cloud Application Platform
Programming Rich Social and Data Integration Batch
Model Web Mobile Access Patterns Framework
Virtual Datacenter
Cloud Infrastructure and Management
40
quinta-feira, 27 de outubro de 11
61. VMware Cloud Application Platform
Programming Rich Social and Data Integration Batch Spring WaveMaker Code2Cloud
Model Web Mobile Access Patterns Framework Tool Suite Services
Virtual Datacenter
Cloud Infrastructure and Management
40
quinta-feira, 27 de outubro de 11
62. VMware Cloud Application Platform
Programming Rich Social and Data Integration Batch Spring WaveMaker Code2Cloud
Model Web Mobile Access Patterns Framework Tool Suite Services
Java Runtime Web Runtime
(tc Server) (ERS)
Java
Optimizations Virtual Datacenter
(EM4J, …)
Cloud Infrastructure and Management
40
quinta-feira, 27 de outubro de 11
63. VMware Cloud Application Platform
Programming Rich Social and Data Integration Batch Spring WaveMaker Code2Cloud
Model Web Mobile Access Patterns Framework Tool Suite Services
Java Runtime Web Runtime Messaging Global Data
(tc Server) (ERS) (RabbitMQ) (GemFire)
Java
Optimizations Virtual Datacenter
(EM4J, …)
Cloud Infrastructure and Management
40
quinta-feira, 27 de outubro de 11
64. VMware Cloud Application Platform
Programming Rich Social and Data Integration Batch Spring WaveMaker Code2Cloud
Model Web Mobile Access Patterns Framework Tool Suite Services
Java Runtime Web Runtime Messaging Global Data App Monitoring Performance Mgmt
(tc Server) (ERS) (RabbitMQ) (GemFire) (Spring Insight) (Hyperic)
Data Director
Java Automated
Optimizations Virtual Datacenter App Provisioning
(EM4J, …) (AppDirector)
Cloud Infrastructure and Management
40
quinta-feira, 27 de outubro de 11
65. Application Infrastructure for the Cloud Generation
VMware vFabric Cloud Application Platform
Frameworks & Tools Rich Web Integration Batch Data Access Social/Cloud Tool Suite
vFabric Elastic
Global Data Cloud Dynamic Load Performance Policy-driven
tc Server
App Server GemFire
Management RabbitMQ
Messaging ERS (Apache)
Balancer Hyperic
Management App Director*
Automation
Platform Services
Virtual Datacenter
Cloud Infrastructure and Management
41
quinta-feira, 27 de outubro de 11
66. FAQ:
§ É possível mesmo garantir HA com dados somente em memória?
• Sim! O particionamento e replicação de dados em memória garante a alta
disponibilidade em índices iguais aos de armazenamentos físicos (disco).
§ Ok, mas mesmo assim posso fazer armazenamento síncrono em banco de
dados?
• Certamente. Escrita síncrona ou assíncrona em banco de dados ou disco rígido.
§ Os servidores precisam ter RAM suficiente para todos os dados do banco?
• Não. Basicamente o seu modelo de dados pode/deve ser particionado entre vários
servidores e a memória total seria a soma da memória de todos eles! Mesmo
assim, caso necessário, o GemFire escreve o “excesso” de dados em disco
(overflow) e recupera quando necessário, mesmo assim provendo performance
muito superior aos DBs tradicionais.
§ Posso começar com um ambiente menor e ir escalando segundo demanda?
• Sem dúvida. Tanto o software quanto o modelo de licensiamento são escaláveis
segundo o ambiente e modo de utilização. O GemFire pode ser adotado como um
simples Cache de dados ou um completo Data Fabric.
§ GemFire = SqlFire?
• São produtos diferentes. Porém, o SQLFire possui o GemFire em seu core,
oferecendo uma interface relacional (SQL) porém sem arquitetura orientada a
eventos.
42
quinta-feira, 27 de outubro de 11
67. Leitura Recomendada
Architecting Infinitely Scalable Systems
A seminal paper on the architecture of elastic applications was written by Pat
Helland (Tandem Computing, Amazon.com, Microsoft)
“Life Beyond Distributed Transactions: an Apostate’s Opinion”
http://www.cidrdb.org/cidr2007/papers/cidr07p15.pdf
http://blogs.msdn.com/b/pathelland/
This paper describes how our application architectures need to change in order to
achieve infinite scalability and elasticity without using large hardware
quinta-feira, 27 de outubro de 11
68. Start small, Grow without Limit
Planning for scalability
in cloud environments
quinta-feira, 27 de outubro de 11
69. Frederico Melo
fmelo@vmware.com
twitter: fredmelo_br
45
quinta-feira, 27 de outubro de 11
70. Use ESX to Share Memory Between VMs Running Java
Elastic Memory for Java (EM4J)
Description Benefits
• Use virtualization to • Higher server consolidation through memory over-commit
overcome the limitation for Java workloads
of Java’s static heap
• Protect Java applications against workload spikes without
• New ‘memory balloon’ wasting memory
runs inside JVM to
capture unused memory
and return it to ESX
• Memory returned to JVM
when it is under pressure
quinta-feira, 27 de outubro de 11