Eu li um artigo sobre a otimização de desempenho do Innodb e, nesse post, o autor mencionava repetidamente algo chamado "cache de backup da bateria". Não está claro para mim o que ele estava falando e o Google também não ajudou. Meu palpite é que isso é algum tipo de armazenamento de backup, caso haja uma queda de energia. Estou certo?
8
Respostas:
As matrizes RAID usam um cache com bateria, para que possam processar os dados mais rapidamente do que os escrevem. Sem a bateria, eles não poderiam fazer o cache sem o risco de perda de dados durante uma falha de energia.
Essa é a única instância em que posso pensar em que você precisaria de um cache especificamente suportado por bateria . Se estivesse apoiando memória volátil, não importaria.
Suponho que devo observar que esse é um recurso de uma configuração de RAID de hardware de nível profissional, e não um RAID de software ou de consumo "on board" de nível de consumidor. As baterias são substanciais, do tamanho de uma lata de altaide . Eles tendem a piorar a cada 4-5 anos, o que mata o armazenamento em cache e causa um impacto no desempenho de sua loja de suporte.
fonte
O armazenamento magnético é lento, por isso é melhor colocar um cache na frente dele. É fácil ver como isso acelera as leituras, mas também pode acelerar as gravações?
um cache gravado não, porque, embora mantenha uma cópia dos dados gravados no cache (para leituras subsequentes), ele não reconhece a operação como bem-sucedida até que esteja no armazenamento real ("atinge óxido de ferro").
um cache de write - back faz, porque sinaliza ao host que a operação está concluída assim que está no cache. Ele será gravado no armazenamento permanente (magnético) um pouco mais tarde, em segundo plano.
A princípio, os caches de write-back são melhores, mas apresentam uma janela de vulnerabilidade: se houver perda de energia, todos os dados reconhecidos, mas ainda não gravados, serão perdidos. Os sistemas de arquivos ou bancos de dados não podem impedir isso, porque qualquer diário, barreiras do planejador, ordem de operação etc. dependem da confirmação de gravação para significar que os dados já foram gravados com segurança.
A solução é adicionar uma pequena bateria ao cache, para permitir que ele sobreviva a uma perda de energia. Assim que a energia for restaurada, todas as gravações pendentes serão concluídas (mesmo antes da inicialização do host).
Agora, existem também outras duas alternativas:
substitua o cache da RAM por armazenamento não volátil. Os SSDs podem ser muito maiores pelo mesmo custo, mas não são tão rápidos quanto a RAM. Ainda assim, em muitos casos, eles são mais rápidos que o link de dados, portanto, podem ser rápidos o suficiente.
adicione uma pequena memória não volátil ao cache. Em caso de perda de energia, uma bateria muito pequena (ou um supercapacitor) permite tempo extra suficiente para salvar as entradas pendentes do cache em flash. Não há necessidade de manter a RAM ativa por um período indeterminado de horas.
fonte
O armazenamento em cache é usado para acelerar as operações. Um padrão de uso típico para um usuário é acessar o mesmo registro algumas vezes. Leia, revise, obtenha alguns detalhes, etc. Se o sistema subjacente mantiver qualquer registro na memória, mesmo que brevemente, na próxima vez que o usuário tentar interagir com o registro, o acesso será milhares de vezes mais rápido do que carregá-lo. disco novamente.
o problema surge quando os engenheiros têm a brilhante idéia de que, para melhorar o desempenho do sistema, eles colocarão na memória coisas que o usuário adicionou ao registro por um tempo. Os dados não são gravados no disco até que o cache seja liberado, o que pode levar alguns segundos ou talvez dez segundos, mas como o cache é pequeno e muitas alterações não cabem, existe a possibilidade de que algumas alterações sejam gravadas no disco , enquanto outros permanecerão no cache de gravação brevemente . Se a energia acabar enquanto estiver no limbo, os resultados podem ser devastadores para a integridade de um sistema de arquivos ou banco de dados.
Portanto, alguns sistemas implementam um esquema de proteção lógica em software, datando alterações ou registrando alterações em cache ou todo tipo de coisa um pouco esquisita. Mas se você tiver um cache de gravação com bateria, poderá dispensar essas coisas e saber com segurança que o cache de gravação sempre será gravado .
fonte