Eu já indiquei em uma questão diferente sua porque você deve se abster de uma abordagem no nível do kernel.
Antes de se envolver em tal empreendimento, alguns pontos devem ser esclarecidos:
"Alto desempenho" não é uma propriedade de tamanho único.
A otimização deve ser realizada para casos específicos e somente quando você detectar o principal gargalo.
Você deve se fazer as seguintes perguntas:
- Eu avaliei as atuais implementações tradicionais de sistemas de armazenamento de valores-chave? Se não, por que não?
- Se eu fiz, por que eles não são adequados para o meu caso de uso? Eu realizei benchmarking e testes extensivos? Eu tracei o gargalo principal? Posso corrigi-lo nas atuais implementações de última geração? Se não, por que eu acho que posso consertar isso na minha própria implementação?
- Quais são os meus requisitos exatos de desempenho? Eu defini "performance" e encontrei maneiras de medi-lo? Alto desempenho durante operações de armazenamento? Alto desempenho durante operações de recuperação? Alto desempenho sob alta carga devido ao grande número de conexões de clientes?
Quando você tiver uma ideia clara do que exatamente deseja alcançar, e depois de rejeitar o software de última geração atual, só então deverá começar a explorar possíveis estratégias de implementação.
O kernel é o último lugar que você deseja tocar. Especialmente se você não tiver experiência prévia em desenvolvimento de kernel. A maioria dos subsistemas do kernel é altamente otimizada por meio de processos que levaram anos de testes e desenvolvimento por engenheiros altamente qualificados.
Meu conselho seria considerar a otimização por meio de uma combinação de pré-bifurcação, cache inteligente e gravações atrasadas. Seria uma boa idéia familiarizar-se com algoritmos de cache populares, abordagens de balanceamento de carga e dar uma olhada em como as coisas funcionam sob o capô de sistemas de arquivos modernos (como readahead , Escreva políticas , LRU ) - talvez isso não esteja diretamente relacionado ao seu problema, mas ajuda a saber como as pessoas resolveram problemas de desempenho em domínios semelhantes. Naturalmente, isso não serve como um conselho para reimplementar esses recursos em seu aplicativo, pois eles já são implementados melhor pelo próprio sistema de arquivos - na maioria dos casos, isso prejudicará o desempenho de seu aplicativo em vez de aprimorá-lo.