Computing Library › Data Systems
Data Systems

Content-Addressable Storage

Content-addressable storage names each object by the hash of its bytes, giving automatic deduplication, integrity checking, and immutable references.

Naming by content

In a normal filesystem a file is named by its location: a path you choose. In content-addressable storage (CAS) a file is named by a cryptographic hash of its contents. The name is derived from the bytes, so identical content always yields the same name and any change to the bytes yields a different name. This inversion, from location-addressed to content-addressed, gives several properties for free.

Deduplication

Kronos motion — data assimilation

Because identical content hashes to the same key, storing the same bytes twice is a no-op: the second write finds the key already present. Systems that version data across many revisions rely on this heavily, since consecutive snapshots often share most of their content. Only the changed blocks consume new space.

Integrity

To verify an object you rehash its bytes and compare to its name. If they differ, the data is corrupt or has been tampered with. This makes silent corruption detectable and makes references self-validating, which matters for reproducible scientific artifacts that must be provably unchanged since publication.

Immutability

A content address is an immutable reference: it can only ever point at exactly one sequence of bytes. You cannot edit an object in place, because editing changes the hash and therefore the name. Updates create new objects; old references remain valid. This is why CAS underpins data versioning, container image layers, and distributed version control.

Hash choice and chunking

The trade-off is that lookups by human-meaningful name require a separate index mapping paths to hashes. CAS excels at integrity and dedup but is not itself a searchable catalog. Related: data versioning and data lineage.