Existe algum sistema de arquivos semelhante ao git?

25

O Git armazena conteúdo exclusivamente em seu repositório com base no hash calculado de qualquer arquivo. Se meu diretório tiver duas cópias do mesmo arquivo em algum lugar dentro dele, o git só irá armazená-lo uma vez.

Eu estou querendo saber se esse mesmo conceito foi implementado no nível do sistema operacional como algum tipo de sistema de arquivos?

Se um sistema de arquivos agisse dessa forma por padrão, ele ajudaria muito com os problemas dll hell . Essencialmente, ele iria ligar automaticamente em seu nome. Qualquer aplicativo pode ser empacotado (como um jar) em um diretório com todas as suas dependências e sem custo adicional de armazenamento.

Os entusiastas do Ruby compartilham bibliotecas publicando-as como rubygems. Ainda assim, esse esforço para compartilhar gemas resultou em pesadelos de implantação que levaram à Vendor Everything conceito de copiar todas as dependências em pastas locais para evitar tais pesadelos.

    
por Mario 09.08.2013 / 18:22

3 respostas

20

O que você está procurando é chamado de "deduplicação". Embora normalmente seja implementado por fornecedores de produtos de armazenamento especializados, o sistema de arquivos ZFS também o implementa. A maioria dos sistemas operacionais derivados do Unix pode fazer uso do ZFS e, portanto, eu o recomendaria como o primeiro lugar olhe.

    
por 09.08.2013 / 18:33
3

A Network Appliance, Inc. tem uma capacidade de armazenamento como essa por muitos anos, na verdade eles tinham reclamações registradas com a Sun Microsystems em seu sistema de arquivos ZFS e faz o que Aaron Miller está mencionando em sua resposta aceita. Por que vale a pena, as reclamações foram resolvidas com a Oracle após cerca de 3 anos.

Eu tenho usado isso como uma solução corporativa desde 2000, e funciona bem. O custo de armazenamento após a primeira 'cópia' ocorre quando ocorre uma alteração no arquivo. Caso contrário, com muitas 'cópias' vem apenas um ligeiro aumento para o namespace.

Não acho que isso responda à pergunta sobre "nível do sistema operacional", mas sim em um "nível do sistema de arquivos".

    
por 10.08.2013 / 06:00
0

O novo Apple File System (APFS, assim chamado porque já existia um AFS que era outra coisa) faz essa mágica "auto hardlinking" / "desduplicação". O macOS 10.13 suporta nativamente (na maioria dos Macs) como o iOS 11.

Dito isto, não sinto que seja suficiente para torná-lo "git like", já que se fosse "git like" então também teria uma verificação criptográfica do estado da minha estrutura de diretórios em determinados pontos tempo para que eu pudesse ter certeza de que ninguém havia hackeado meu computador ou modificado meus diretórios de sistema. Na verdade, eu uso git repos para rastrear certos diretórios críticos do sistema em meus Macs, como arquivos de configuração Apache, LaunchDaemons, LaunchAgents e alguns outros - assim, quando eu instalo software ou executo meu servidor por um tempo, posso ver se algo se ferrou.

O APFS também tem suporte bacana para descarregar coisas do sistema de arquivos para a nuvem quando elas não são usadas há algum tempo, mas elas ainda parecem estar lá, e vão voltar da nuvem sob demanda.

Você sempre pode construir um Hackintosh e brincar com ele. BSD é divertido.

    
por 18.07.2017 / 07:05