oracle Oracle e SSD – Parte III

Nesta terceira parte da série de posts relacionados a Oracle e Discos de estado sólido (SSD), falarei um pouco sobre uma feature disponível no Oracle 11gR2 chamada de Database Smart Flash Cache.

Lembrando mais uma vez que este post foi baseado no artigo escrito por Guy Harrison e está disponível em http://guyharrison.squarespace.com/ssdguide/03-the-oracle-database-flash-cache.html. Também contém informações diretamente da Oracle, obtidas em https://blogs.oracle.com/linux/entry/oracle_database_smart_flash_cache_only_on_oracle_linux_and_oracle_solaris

1) Pré-requisitos

A feature Database Smart Flash Cache está disponível apenas na versão 11gR2 do Oracle, e pode ser usada apenas em sistemas operacionais Solaris e Oracle Enterprise Linux.

2) Arquitetura

Essa feature tem como principal finalidade servir como cache secundário ao Buffer Cache. Blocos no Buffer Cache são gerenciados por um algorítmo LRU modificado. Quando se utiliza a feature Database Smart Flash Cache, os blocos marcados para serem “descartados” são movidos para os discos de estado sólido (Smart Flash Cache) pelo processo DBWR. Caso estes mesmo blocos sejam necessários no futuro, eles serão lidos do Flash Cache ao invés de discos magnéticos lentos.

Essa feature permite aumentar o tamanho efetivo do Buffer Cache sem a necessidade de adicionar memória ao ambiente.

Figura01-Arquitetura

A figura acima pode ser explicada da seguinte forma:

1 – Um Server Process lê blocos dos datafiles e os armazena no Buffer Cache
2 – Leituras subsequentes podem achar esses blocos diretamente no Buffer Cache, sem a necessidade de acessar os datafiles.
3 – Quando os blocos são marcados pelo LRU, o processo DBWR irá “mover” esses blocos para a Flash Cache.
4 – Leituras subsequentes poderão achar od blocod ou no Buffer Cache ou na Flash Cache.
5 – Esse ato de mover só é executado caso essa operação não interfira na escrita de blocos modificados em disco.

3) Quem se beneficia?

Ambientes OLTP, com muitas operações de leitura, tendem a se beneficiar disso. Também se beneficiam disso aplicações que utilizem muito I/O (I/O intensive), bem como aplicações limitadas por I/O e com limitações de memória.

Os benefícios incluem aumento no throughput de transações e tempos de resposta otimizados.

4) Definindo o Smart Flash Cache

O Database Smart Flash Cache é configurado através dos parâmetros DB_FLASH_CACHE_FILE (especifica o dispositivo flash, que pode ser um dispositivo raw, um arquivo ou um diskgroup ASM) e DB_FLASH_CACHE_SIZE (determina a quantidade do dispositivo flash disponível para a feature Flash Cache).

É possível manter segmentos no Flash Cache através da clausula FLASH_CACHE. Essa cláusula é definida nas propriedades do segmento. Essa cláusula recebe os parâmetros KEEP, NONE ou default. A opção KEEP faz com que o segmento seja preferido a ficar no Flash Cache

5) Outras opções de Caching

Muitos outros fabricantes de SSDs implementaram features de caching em dispositivos SSD. Estas features são conceitualmente equivalentes a feature Oracle Database Smart Flash Cache. Tecnologias de caching funcionam, de uma forma genérica, por debaixo dos panos, armazenando blocos muito acessados nos discos de estado sólido, que são vistos pelo sistema operacional, como um único dispositivo. Isso resulta em um throughput maior em operações de leitura.

Até a próxima. Keep Querying e um feliz ano novo a todos.

Links para todos os capítulos desta série:

[Oracle] Performance de discos SSD – Parte I
[Oracle] Performance de discos SSD – Parte II
[Oracle] Performance de discos SSD – Parte III
[Oracle] Performance de discos SSD – Parte IV