Está visitando a memória de um sistema remoto através da rede mais rápido do que a busca de disco local?

5

Parece que as conexões de rede são geralmente mais rápidas do que a busca de disco local, como discutido na pergunta As redes agora são mais rápidas que os discos?

Eu faço essa pergunta quando estou usando o Berkeley DB, um banco de dados embutido que usa mecanismo de cache para melhorar o desempenho. Quando o banco de dados é muito grande e não há memória suficiente, a busca por disco reduz o desempenho.

Se a rede for mais rápida, pergunto-me se posso colocar a base de dados nas memórias de vários computadores remotos e visitá-la através da rede, para evitar a procura de discos. Esta pode ser uma solução alternativa para computadores de estação de trabalho.

PS: Eu não sou um falante nativo de inglês. Então, peça desculpas pelas minhas expressões imprecisas. Obrigado!

    
por Dz. 20.07.2011 / 10:16

3 respostas

4

De acordo com a pergunta e resposta que você mencionou, pode ser mais rápido entrar em contato com um host em uma rede do que executar uma operação de busca de disco local (dependendo da rede e dos discos em questão, é claro). / p>

Isso nem sempre se traduz em operação mais rápida para um sistema de trabalho real - tenha em mente quando você fala sobre colocar bancos de dados "na memória" de vários sistemas distribuídos (e deixar de lado os problemas de disponibilidade e latência que podem surgir) é preciso lembrar que esses sistemas executarão seu próprio gerenciamento de memória (e poderão enviar seus dados para o disco local, dando a você o pior dos dois mundos) e poderão ter outro trabalho a fazer, que tornará um recurso do sistema como o conexão de rede, digamos, ocupado e reduzir sua vantagem de velocidade.

Há uma grande diferença entre um sistema de cache relativamente simples e a tentativa de executar um banco de dados na memória de vários sistemas distribuídos, como você parece estar fazendo. Algumas transações de bancos de dados podem se tornar muito baratas (também conhecidas como rápidas), mas outras podem se tornar muito mais caras, e você pode achar que a necessidade de projetar para desempenho rápido neste tipo de sistema impõe restrições ao design do banco de dados que negam quaisquer benefícios. >

Então, minha resposta para você é bastante entediante: Depende. Você precisaria testar seu sistema específico sob carga para ver se quaisquer possíveis ganhos de desempenho teórico se traduzem em ganhos reais para o seu particular situação.

    
por 20.07.2011 / 10:26
1

A resposta a esta pergunta, assim como muitas perguntas de desempenho, é:

"Talvez. Avalie sua situação e descubra."

    
por 20.07.2011 / 12:11
0

Considerando a popularidade do memcached, eu diria definitivamente sim.

Eu recebo sub 1ms vezes com mais de 4 saltos de rede em minha rede, enquanto uma busca de disco em uma unidade de 7200rpm pode levar de 1ms (se você for extremamente sortudo), através de 15ms ) até alguns segundos (quando o setor é ilegível e a unidade executa releituras).

Você ainda deve ter uma LAN dedicada para acessar instâncias do memcached.

    
por 20.07.2011 / 10:23