Boa biblioteca ISAM ou outro gerenciador de arquivos simples para grandes arquivos no Windows x64
Pergunta
Temos algumas muito grandes arquivos de dados (5 gig 1TB), onde precisamos de acesso de leitura / gravação rápida. Uma vez que temos um tamanho de registro fixo, parece que alguma forma de ISAM seria o caminho a percorrer. Mas ficaria feliz em ouvir outras sugestões.
Idealmente, a solução teria uma licença estilo Apache ou LGPL, mas vamos pagar se temos que fazer.
must haves:
Scalable - mais de pelo menos 1 arquivos TB
Estável - ou não dados corrompidos ou tenha recuperação rápida processo
Funciona bem em X64 do Windows
É bom ter:
Pode participar 2 fase commits
Intrínseca instalações de compressão de
Portátil para plataformas * nix
C # API ou API Java
Obrigado,
Terence
Solução
Berkeley DB uma tentativa. As opiniões variam, mas é escalável, estável (se você usar todas as camadas necessárias) e AFAIK funciona bem em x64 do Windows. Também portátil para * nix e tem C e Java API. Não sei sobre C # API.
Outras dicas
Você também pode usar o mecanismo de banco de dados ESENT que é embutido no Windows. Na medida em que suas necessidades vão:
- Escalável: o tamanho do banco de máxima é 16TB. datbases Multi-TB têm sido utilizados na produção.
- Estável: a recuperação de falhas com logging write-ahead.
- X64 do Windows: ESENT é parte de Janelas, por isso está presente no seu 64-bit máquina.
É bom ter:
- 2 commits fase:. Não
- Compressão:. Não
- portátil para * nix:. Não
- C # API ou API Java: Não. (Há uma camada de interoperabilidade C # no Codeplex, mas não é completa)
A documentação está aqui: http: // MSDN .microsoft.com / en-us / library / ms684493 (VS.85) .aspx
Você pode obter o arquivo de cabeçalho e lib fazendo o download do SDK do Windows.