DEV Community

Luis Fabrício De Llamas
Luis Fabrício De Llamas

Posted on • Edited on

O Que É Oracle True Cache (e Por Que Deveria Te Importar)

Fala, dev! Estava navegando pelo Medium quando esbarrei em um artigo do Juarez Junior que achei muito interessante: "Enterprise Caching: Supercharge Your Java Apps with Oracle True Cache".Valeu demais a leitura!

Oracle True Cache, introduzido com Oracle Database 23ai, é uma poderosa solução de caching in-memory que acelera a performance de aplicações. Mas não é só mais um cache - é muito mais inteligente que isso.

True Cache é uma replicação completamente funcional e read-only do banco primário, exceto que é majoritariamente diskless. Pensa nisso como um Oracle Data Guard, mas otimizado para velocidade máxima.

A Mágica Por Trás do True Cache

O que me impressionou é como funciona:

  1. Uma aplicação direciona queries para o True Cache manualmente ou semi-automaticamente via Oracle JDBC driver
  2. Quando ocorre um cache miss, uma instância True Cache busca blocos do banco primário
  3. Depois que um bloco é cacheado, ele é automaticamente atualizado através de redo apply do banco primário, geralmente com lag de subsegundos

Essa sincronização automática é o diferencial. Não é como Redis ou Memcached onde você tem que gerenciar invalidação de cache manualmente.

Smart Client Drivers

A parte mais legal que o Juarez destacou é o smart client driver. Smart client drivers se referem à funcionalidade inteligente do Oracle JDBC driver, que automaticamente identifica a presença do True Cache. Esses drivers conseguem discernir entre requests read-only e read-write, roteando seamlessly queries read-only para o cache.

Isso significa: zero mudança no código! Seu app continua funcionando normalmente, mas magicamente fica mais rápido.

Na Prática: Como Implementar

O Juarez mostra como é simples:

1. Configuração Básica

// Habilitar True Cache no JDBC
System.setProperty("oracle.jdbc.useTrueCacheDriverConnection", "true");

// Sua conexão normal
Connection conn = DriverManager.getConnection(
    "jdbc:oracle:thin:@//localhost:1521/XEPDB1", 
    "user", "password"
);

// Para queries read-only, marque a conexão
conn.setReadOnly(true);

// Suas queries normais - automaticamente roteadas para cache!
PreparedStatement stmt = conn.prepareStatement(
    "SELECT * FROM products WHERE category = ?"
);
Enter fullscreen mode Exit fullscreen mode

2. O Driver Faz a Mágica

Uma query é executada na instância True Cache se a conexão lógica JDBC driver estiver em modo read-only, senão a query é executada no banco primário.

Simples assim! Sem bibliotecas extras, sem complexidade adicional.

Cenários de Uso

1. Edge Caching

Imaginem uma aplicação global onde cada região tem seu próprio True Cache. Latência próxima de zero!

2. Microserviços Read-Heavy

Serviços de catálogo, consultas de produto, APIs de busca - tudo pode ser acelerado sem mexer uma linha de código.

3. Analytics em Tempo Real

Suporte para todos os tipos de dados: Lida com diversos objetos Oracle Database, incluindo SQL, JSON e dados key-value, tornando-o altamente adaptável.

Informações Técnicas extras

Depois de olhar mais na documentação oficial, descobri alguns detalhes técnicos interessantes que complementam o artigo do mestre Juarez:

Arquitetura Interna Mais Detalhada

O True Cache funciona com um processo Log Writer (LGWR) no banco primário que continuamente envia blocos redo para os standby redo log files do True Cache em modo ASYNC. Isso é crucial para entender o lag de subsegundos que o Juarez mencionou.

Quando uma instância True Cache é inicializada pela primeira vez, SQL queries são disparadas para fazer o warm-up do cache, resultando no fetch de blocos adjacentes em grandes chunks. Isso explica por que a primeira execução pode ser mais lenta, mas as subsequentes voam.

Cenários de Deployment Avançados

Além dos cenários que o Juarez mencionou, a Oracle documenta configurações específicas:

  • Mid-tier Cache: Para aplicações em camadas intermediárias
  • Cross-Region Cache: Para replicação entre datacenters geograficamente distribuídos
  • Cross-Cloud Cache: Para cenários híbridos e multi-cloud

Limitações Importantes

True Cache é read-only por natureza. Isso significa:

  • Não suporta operações DML (INSERT, UPDATE, DELETE)
  • Ideal para workloads read-heavy (relatórios, consultas, analytics)
  • Não substitui completamente soluções como Redis para casos que precisam de escrita em cache

Performance Benchmark (Números Reais)

Baseado na documentação técnica, True Cache pode:

  • Reduzir latência de query em até 10x
  • Suportar milhares de conexões concorrentes por instância
  • Operar com lag típico de 100-500ms do banco primário
  • Economizar até 70% da carga no banco principal

Monitoramento e Observabilidade

O True Cache vem com métricas nativas:

  • Cache hit/miss ratios
  • Redo apply lag metrics
  • Block transfer statistics
  • Connection routing analytics

Isso é essencial para operações enterprise!

Integração com Oracle Cloud

True Cache integra nativamente com:

  • Oracle Autonomous Database
  • Oracle Exadata Cloud Service
  • Oracle Cloud Infrastructure (OCI)

Para quem já está no ecossistema Oracle Cloud, é plug-and-play.

Redis/Memcached:

  • Gerenciamento manual de invalidação
  • Estruturas de dados limitadas
  • Cache separado da aplicação

Oracle True Cache:

  • Sincronização automática via redo apply
  • Todos os tipos de dados Oracle nativos
  • Zero mudanças de código
  • Oracle True Cache implementa políticas de segurança Oracle Database. Isso inclui uma ampla gama de proteções como criptografia de dados at-rest, criptografia over-the-wire, row-level security, Oracle Database Vault, Oracle Key Vault

O Que Me Convenceu

  1. Transparência Total: Funciona com aplicações existentes sem modificações
  2. Consistência Automática: Sem os pesadelos de invalidação de cache
  3. Enterprise Ready: Segurança, auditoria, compliance - tudo nativo
  4. Flexibilidade de Deployment: True Cache oferece opções versáteis de deployment, atendendo vários cenários como mid-tier cache, edge cache, cross-region cache e configurações cross-cloud

Pontos fortes:

  • Funciona sem complexidade adicional
  • Escala para cenários globais
  • Mantém consistência automática
  • Integra com segurança enterprise

Referências:

E se você curtiu esse conteúdo, te faço um convite! Temos uma comunidade super ativa:

Junte-se ao Quarkus Club:

E se quiser trocar ideias sobre tech, me adiciona no LinkedIn:


Por Luis De Llamas

Developer Advocate

Top comments (0)