O problema que surge quando o armazenamento em cache é ativado é que a ordem de gravação para a unidade sobre o cabo SATA e a ordem de gravação para a mídia rotativa não é a mesma. Isso nunca pode causar um problema, a menos que você tenha uma perda de energia ou uma falha do sistema antes de todo o conteúdo do cache chegar ao disco. Por quê? - >
O problema que pode surgir aqui é relativo à robustez da transação do sistema de arquivos e / ou do conteúdo do arquivo de banco de dados a gravações perdidas fora de ordem. Na verdade, as gravações potencialmente perdidas podem corromper teoricamente a integridade da lógica de transação que, de outra forma, teria sido garantida pelas gravações em disco ocorrendo em uma ordem muito específica na mídia.
Agora, é claro, os projetistas do sistema de arquivos, bancos de dados, controladores RAID, etc. estão cientes (ou certamente devem estar cientes) desse fenômeno em relação ao cache de gravação. O cache de gravação é extremamente desejável do ponto de vista do desempenho na maioria dos cenários de E / S de tipo de acesso aleatório. Na verdade, ter o cache de gravação disponível é um elemento-chave para poder ter qualquer benefício real para o Enfileiramento de Comando Nativo mais avançado ( NCQ ) que é suportado no SATA mais recente e nas últimas gerações de implementações do PATA. Assim, para garantir a ordem à mídia física em determinados momentos críticos, o sistema de arquivos e / ou o aplicativo etc. podem solicitar especificamente uma liberação dos caches de gravação para a mídia. Na conclusão desta solicitação de sincronização - tudo o que está pendente de (potencialmente) buffers de arquivo, cache de disco do SO, cache de disco físico, etc. está realmente fora da mídia conforme o projeto do sistema de transação nas operações críticas corretas. Isto é, isso acontece corretamente se os programadores fizerem a (s) chamada (s) certa (s) no topo E cada elemento dessa cadeia de camadas de software e hardware fez o trabalho corretamente. ie: Não há bugs a esse respeito na unidade, nos controladores RAID, nos drivers de disco, nos caches do SO, no sistema de arquivos, no mecanismo de banco de dados, etc. Isso é um monte de software que tem tudo para funcionar corretamente. Além disso, verificar a exatidão a esse respeito é muito difícil, pois em quase todas as situações, normalmente, a ordem de gravação não importa em nada .... e os cenários de falhas de energia e acidentes são testes difíceis de serem construídos. Então, no final, "desligar o cache de gravação" em uma ou mais das várias camadas e / ou significados deste termo ... tem a reputação de "consertar" certos tipos de problemas. Com efeito, desligar os comportamentos de cache de gravação do controlador RAID ou dos Caches de disco do SO, ou da Unidade, etc. está evitando um ou mais bugs no sistema ..... e a origem de tal conhecimento.
De qualquer forma, voltando ao núcleo da questão: Sob SATA, o tratamento específico de todos os comandos de leitura / gravação de disco e os comandos de cache flush são bem definidos pelo