Skip to content

Deduplication

Casita reuses content at two levels. Equal complete byte sequences share one BlobId. For similar blobs, the standard store uses FastCDC to find chunk boundaries in the plaintext. Its default target is 256 KiB, with a 128 KiB minimum and 512 KiB maximum.

A small edit may shift nearby boundaries, but FastCDC usually finds the same boundaries later in the file. The new blob then stores changed chunks and reuses unchanged ones. Compression happens after chunking, so it does not change the blob’s identity or those boundaries.

Chunk IDs describe physical storage, not logical objects. A store can change its chunk size without changing any BlobId or ObjectKey. Repositories with different chunk settings can still exchange the same blobs.

During sync, compatible chunk stores can negotiate which chunks the destination already holds and send only missing chunks. Other transfers stream the complete plaintext payload. Collection keeps a shared chunk while any live blob still references it.

See Blob Storage for reads and physical layout, and Sync for transfer choices.