Aceleração de Banco com SSD e Flash

Introdução

Com o lançamento do Oracle Database 11gR2, uma nova tecnologia em especial despertou interesse: O Database Smart Flash Cache. Esta tecnologia, que é só disponível para os sistemas operacionais Solaris e Oracle Enterprise Linux, permite o aumento do tamanho do buffer de cache sem ter que adicionar mais memória no servidor.

Para cargas transacionais, os blocos do banco de dados Oracle são alocados em uma área de memória compartilhada do servidor chamada de System Global Area (SGA).

O Database Smart Flash Cache permite expandir esta SGA para muito mais do que a memória do servidor, colocando esta “expansão” em uma área de segundo nível em uma memória de tecnologia Flash. Os aceleradores em forma de placa PCIe, como a F20, F40 e F80 da própria Oracle são as opções naturais para esta tecnologia.

Os ambientes OLTP são os principais beneficiados com esta novidade. É interessante usar esta nova tecnologia para novas instalações de banco de dados que requerem muito I/O, em situações com pouca memória no servidor ou aplicações limitadas pelo I/O. Os benefícios conseguidos são tanto o aumento do “throughput” das transações tanto quanto a melhora do tempo de resposta das aplicações.

As situações elegíveis para uso efetivo desta Tecnologia:

Transações curtas e repetitivas em que muitos usuários acessam os mesmos dados.
Sistemas de armazenamento (storage) com muito acesso adiscos.
Servidores com muito uso de memória, que deixam pouca memória para serem alocadas para SGA.

Esta Tecnologia, enfim, é endereçada principalmente a transações que são predominantemente ou exclusivamente de leitura. Também suporta sistemas em cluster com o Oracle Real Application Cluster (RAC), em que o Database Smart Flash Cache e os aceleradores Flash podem ser utilizados individualmente em cada nó do cluster.

Oracle Database Smart Flash Cache

Por muitos anos o desempenho dos discos magnéticos, que são dispositivos eletromecânicos, não evoluiu significativamente. Mas uma novidade tecnológica mudou radicalmente este cenário. Os dispositivos baseados em memória flash fizeram com que o tempo de resposta, que com os discos tradicionais, é de 4 milissegundos, caísse dramaticamente para tempos de 0,4 milissegundos ou menos. A quantidade de IOPS (I/Os por segundo) saltou de 300 a 400 para mais de 200.000! Isso mostra o grau de aceleração possível com o uso desta tecnologia.

O Database Smart Flash Cache funciona como uma “sobra de cache“, em que os blocos “despejados” da SGA, que saem “limpos” (Não modificados) para dar lugar a outros blocos e vão para diretamente a área em flash.

Se o bloco eleito para ser despejado da SGA é modificado (Fica “sujo”), ele é primeiro gravado em disco e depois passado para o Database Smart Flash Cache. Estes blocos em flash podem ser recuperados do Database Smart Flash Cache para a SGA se necessário. Se o bloco não pode ser localizado tanto na SGA ou do Database Smart Flash Cache, vai ser recuperado do disco.

Note que no Exadata, o Smart Flash Cache funciona de uma maneira diferente – É um processo de cache de escrita e leitura, em que o todo o cache de leitura é feito somente pelo Database Smart Flash Cache. É um processo similar ao L2ARC do Solaris Zettabyte File System (ou ZFS).