6.10.2.6 ReleaseChunk
Immutable
Records are never updated after creation.
6.10.2.6.1 Purpose¶
A piece of a file, identified by its content, so identical pieces are stored once and shared by every manifest that contains them.
6.10.2.6.2 Questions it answers¶
- Is this content already stored?
- How large is a chunk before and after compression?
- Can a chunk be deleted yet?
6.10.2.6.3 Fields¶
| Field | Type | Cardinality | Description |
|---|---|---|---|
id |
string (uuid) |
1..1 |
Key. |
hash |
string |
1..1 |
Hash of the uncompressed content. |
encryption_key |
ReleaseEncryptionKey | 0..1 |
(hash, encryption_key) is unique: the same content is stored once per key, and once unencrypted. |
size_raw |
integer |
1..1 |
|
size_stored |
integer |
1..1 |
|
compression |
enum | 1..1 |
Values: none, zstd, lzma. |
storage_key |
string |
1..1 |
Unique. |
created_at |
datetime |
1..1 |
6.10.2.6.4 Relationships¶
References
Referenced by
ReleaseManifest.chunks(0..*)
6.10.2.6.5 Rules & constraints¶
- A piece of a file, addressed by its content. Deduplication is global, since the publisher is one.
- A chunk is deleted only when no retained manifest references it, in two phases (mark, then sweep after a grace period), so that an upload in progress is not broken.