ram parte do espelhamento de disco do disco físico

1

O que eu gostaria de fazer / ter é:

Algum tipo de aplicativo / driver que cria uma unidade de RAM / partição que é realmente atribuída uma letra de unidade (por exemplo, D :). Essa letra de unidade deve ser baseada em / espelhamento de um diretório específico de um diretório físico (por exemplo, C: \ MyDBData).

Na inicialização do aplicativo / driver, eu esperaria que o aplicativo / driver lesse todos os arquivos do diretório na memória e bloqueie-os para evitar gravações nesses arquivos por outros aplicativos. Todos os arquivos estão disponíveis na unidade RAM. Cada ação de leitura pode então ser feita a partir da memória, o que eu acho que seria um grande aumento de desempenho. Qualquer gravação deve ser feita "write-through" para o diretório físico, ou talvez com buffer de no máximo 1 segundo. (Assim, no caso de perda de energia, as perdas seriam mínimas).

É claro que este aplicativo / driver precisaria de alguma RAM própria e criará uma pequena sobrecarga na carga da CPU. Ainda assim, espero um grande aumento no desempenho.

O que eu gostaria de usar é:

Para acelerar meu MySQL DB de 5 GB, gostaria de mover todas as tabelas para minha RAM de 8 GB.

E mesmo que o MySQL suporte tabelas de memória, as limitações estão me impedindo de alcançar isso. Por exemplo, campos de texto / blob não são permitidos em tabelas de heap.

Ainda é um palpite para mim se 8 GB de RAM é suficiente para uma unidade de 5 GB de RAM, a sobrecarga do aplicativo / driver mencionado, o próprio mysqld e o resto do sistema operacional. Mas posso considerar a atualização para 12 GB ou até 16 GB de RAM.

A minha pergunta é

Eu assumo que esta técnica já existe. Como é chamado, e onde posso encontrar uma boa implementação disso? (De preferência open source, para Windows)

E mesmo que as dicas sobre Mysql vs memory sejam bem-vindas, e talvez essa idéia não seja a melhor maneira de abordar o problema do Mysql, ainda gostaria de explorar a questão que tenho de directory-to-RAM.

EDITAR: O que acabei de ler em uma pergunta semelhante é que isso é chamado de cache de sistema de arquivos e está presente no sistema operacional mais moderno. Mas se esse é o caminho a seguir, como instruir meu sistema operacional a aumentar o cache do sistema de arquivos e manter especificamente todo o diretório de 5 GB nesse cache?

    
por nl-x 02.04.2013 / 10:37

1 resposta

2

O sistema operacional e o banco de dados já incluem recursos para gerenciar dados na memória da melhor maneira para atender a maioria dos usos sem aumentar o risco de perda de dados. Pessoas muito mais espertas do que você ou eu trabalhamos neste problema e não há nenhuma opção mágica ir mais rápida que eles decidiram simplesmente desligar para se divertir. :)

A menos que você tenha um caso de uso específico e saiba o que está fazendo, não fará melhorias melhores do que seguir as práticas recomendadas para o desempenho do banco de dados.

    
por 03.04.2013 / 12:57