SQL Server 2014 In-Memory OLTP - IO e Filestream - Perguntas Respondidas
Essa semana resolvi postar algumas perguntas respondidas sobre detalhes do SQL Server Hekaton, ou In-Memory OLTP, que está disponível na versão 2014 do SQL Server e obviamente estará também presente na versão 2016. Apenas lembrando que esta é uma feature da edição Enterprise.
Espero que gostem e continuem a fomentar as dicussões sobre In-Memory OLTP com perguntas interessantes como as que postei aqui. Posteriormente vou criar outros posts com as respostas.
A feature filestream é requerida para utilização de tabelas persistentes com o In-Memory OLTP (durable tables)?
O Hekaton - não sei porque, mas ainda gosto de usar o code-name da feature :) - usa a tecnologia Filestream apenas por trás dos bastidores, não estamos aqui falando de um FILESTREAM filegroup, pois a feature utiliza o “Memory Optimized Data” (MOD) filegroup. Você não precisa habilitar a feature FILESTREAM, e sim apenas adicionar um Memory-Optimized Data filegroup.
Falando sobre InMemory Databases, seria uma boa prática dedicar um disco específico para Filestream?
O armazenamento dos MOD filegroup é apenas crítico durante a inicialização do SQL Server (quando o banco de dados está sendo levado para o estado online). Neste momento, precisamos ler todas as informações daquele filegroup, com o objetivo de carregar todos os dados para memória. Logo, dependendo de quão rápido você precisa que seja esta inicialização, você pode colocar num disco compartilhado, num disco dedicado, ou até mesmo em diversos discos (adicionando múltiplos containers) com o objetivo de paralelizar a leitura das informações dos containers. Discos SSD com toda certeza também seria de grande vantagem para que este processo ocorra de forma mais rápida.
A escrita nos containers (Schema_And_Data) é feita de forma râmdomica ou sequencial?
A escrita nos arquivos de checkpoint dos MOD filegroups devem ser estritamente sequencial. Desta maneira é possível fazer um melhor uso de IO de discos. Contudo, em algumas operações, veremos um pequeno percentual de escrita ramdomica causadas por escritas nos Delta files, mas podemos considerar esse percentual mínimo.
Em um cenário de Disaster Recovery com replicacao de storage, devo replicar meus discos Filestream?
Já que os Memory Optimized Data filegroups contém os dados "persistentes" de qualquer durable table, caso você não replique estes discos, os dados não estarão disponíveis no site remoto, e seus bancos de dados possivelmente não ficarão online. Até a versão CTP1 (Community Technical Preview) do SQL 2014 o AlwaysOn Availability Group não estava homologado para trabalhar com objetos In-Memory, porém a partir da versão RTM, com o AlwaysOn AG seria possível fazer a replicação destes dados utilizando uma tecnologia nativa do próprio SQL Server.
Um abraço,