Browse Source

Merge pull request #2955 from enkore/issue/2310

docs/internals: note segment size limitation
TW 7 years ago
parent
commit
e9b892feb5
1 changed files with 4 additions and 1 deletions
  1. 4 1
      docs/internals/data-structures.rst

+ 4 - 1
docs/internals/data-structures.rst

@@ -96,7 +96,7 @@ files manually.
 A segment starts with a magic number (``BORG_SEG`` as an eight byte ASCII string),
 followed by a number of log entries. Each log entry consists of:
 
-* size of the entry
+* 32-bit size of the entry
 * CRC32 of the entire entry (for a PUT this includes the data)
 * entry tag: PUT, DELETE or COMMIT
 * PUT and DELETE follow this with the 32 byte key
@@ -118,6 +118,9 @@ When a repository is opened any ``PUT`` or ``DELETE`` operations not
 followed by a ``COMMIT`` tag are discarded since they are part of a
 partial/uncommitted transaction.
 
+The size of individual segments is limited to 4 GiB, since the offset of entries
+within segments is stored in a 32-bit unsigned integer in the repository index.
+
 Index, hints and integrity
 ~~~~~~~~~~~~~~~~~~~~~~~~~~