Apple construiu o iCloud para armazenar bilhões de bancos de dados
O uso do FoundationDB pela Apple para alimentar o iCloud na escala de bilhões de bancos de dados lógicos gera comparações entre bancos de dados e sistemas de arquivos e destaca como arquiteturas modernas de armazenamento confundem essa fronteira. Os comentaristas contrastam esse backend elegante com o comportamento muitas vezes pouco confiável da experiência do usuário do iCloud, citando problemas de anos com sincronização de fotos, arquivos e mensagens e a falta de backups do Time Machine na nuvem. O tópico também aborda quem mais usa FoundationDB em produção, como migrações de esquema em larga escala são tratadas e por que ferramentas alternativas como Obsidian ou CouchDB têm sucesso ou dificuldade com sincronização e consistência.
Confiabilidade do iCloud e experiência do usuário
- Vários comentários relatam baixa confiabilidade: fotos e arquivos presos na sincronização por dias, contagens de fotos inconsistentes entre dispositivos e progresso/estado opaco.
- Alguns usuários resolveram problemas apagando dados locais do iCloud ou usando as ferramentas de solução de problemas da Apple, mas outros dizem que isso não ajudou ou exigiu horas de espera.
- iMessage/“Messages in iCloud” é descrito como instável: o estado de lido/não lido e de exclusão muitas vezes falha em sincronizar de forma consistente entre macOS e iOS.
- Os usuários acham difícil controlar quais itens ficam armazenados localmente versus descarregados, especialmente no iPhone, levando a re-downloads frequentes e comportamento offline inutilizável.
- Alguns abandonaram o iCloud para sincronização de arquivos por completo, frustrados porque o comportamento de “Optimize storage” é imposto até em ferramentas de sincronização de terceiros via a API FileProvider da Apple.
Discussões sobre banco de dados versus sistema de arquivos
- Vários comentários argumentam que, em um alto nível de abstração, sistemas de arquivos e bancos de dados são semelhantes: ambos mapeiam chaves/caminhos para blobs/registros e podem ser construídos uns sobre os outros.
- Outros enfatizam diferenças práticas importantes: capacidade de consulta, semântica de transações/ACID, sensibilidade de desempenho e “simpatia mecânica” para discos.
- Sistemas históricos e experimentais são citados: WinFS, ReiserFS, BeFS do BeOS, Oracle DBFS, bcachefs, bancos de dados hierárquicos da era dos mainframes e projetos que usam FUSE + SQL.
- O consenso tende para “um sistema de arquivos é uma forma especializada de banco de dados”, mas com APIs, restrições de desempenho e expectativas de ecossistema muito diferentes.
FoundationDB e a arquitetura da Apple
- O uso de FoundationDB pela Apple, junto com camadas de nível superior (por exemplo, Record Layer), é elogiado por ser tecnicamente elegante ao dar suporte a bilhões de bancos de dados lógicos.
- Alguns praticantes relatam experiências excelentes construindo sistemas transacionais e orientados a esquema em FoundationDB, observando que a entrada operacional e a escalabilidade não são triviais.
- O tópico lista vários adotantes externos (por exemplo, análises, monitoramento, provedores de nuvem, servidores de e-mail, KV stores), além de defensores de auto-hospedagem que preferem clusters bare-metal.
Backups e Time Machine no iCloud
- Vários comentaristas gostariam que o Time Machine pudesse fazer backup no iCloud, espelhando os backups do iOS.
- A ausência é vista como estranha dada a estratégia de serviços da Apple; possíveis razões mencionadas: custo de armazenamento, redundância com dados existentes no iCloud, largura de banda de upload doméstica e complexidade da API no macOS.
- Alguns usuários contornam isso com armazenamento em nuvem de terceiros e ferramentas como gerenciadores de dotfiles; outros preferem snapshots verdadeiros em nível de sistema.
Storage engines e desempenho
- A pilha de armazenamento subjacente do FoundationDB é discutida: primeiros b-trees do SQLite, depois RocksDB, e o mecanismo Redwood da Apple com otimizações específicas do FDB, como compressão de prefixo.
- O mecanismo experimental HCTree do SQLite é mencionado como um possível ganho futuro de desempenho se amadurecer.
Notas e ferramentas de sincronização
- Apple Notes via iCloud é elogiado por alguns pelo tratamento de conflitos; outros relatam perda séria de dados e o evitam.
- Obsidian recebe fortes elogios por seu fluxo de trabalho e ecossistema de plugins; a sincronização baseada em iCloud para Obsidian é descrita como pouco confiável por alguns, enquanto o serviço de sync próprio do Obsidian é relatado como estável.