Skip to content

Commit b5886b2

Browse files
committed
doc: mention idset compression in the "GCV" glossary item
1 parent 42ad3e6 commit b5886b2

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

doc/glossary.rst

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -254,17 +254,18 @@ GLOBCNT / GCV
254254
2^48. Every folder and message object is assigned a **unique,
255255
non-reusable** GC value (GCV). GCVs need not be assigned in any
256256
particular order, and no particular order should be inferred from GCVs.
257-
In practice, a strictly monotonically increasing counter is used. This
258-
is memory efficient and incurs lower fragmentation of the GCV space
259-
than random GCV assignment.
257+
In practice, a strictly monotonically increasing counter is used.
260258

261259
Some components can perform a *range reservation* (e.g.
262260
``ropGetLocalReplicaIds`` and the gromox-exmdb ``create_folder`` RPC),
263261
which can cause GCV values to apparently jump around: For example, in
264-
Gromox, a created folder may receive GCV 0x10000 and as
262+
Gromox, a created folder may receive GCV 0x10000 and, because
265263
``create_folder`` reserves 0x10001..0x1ffff for messages, the next
266264
folder gets GCV 0x20000. Once the first folder has exceeded its
267-
reservation, it will make another, e.g. 0x30000..0x3ffff.
265+
reservation, it will make another, e.g. 0x30000..0x3ffff. The
266+
per-folder range reservations improve the locality of a folder's
267+
message IDs, which is conducive to IDSET compression and reducing
268+
network traffic a little bit.
268269

269270
In Gromox (2.17), the SQLite fields ``folder_id`` and ``message_id``
270271
are GCVs rather than internal identifiers. (This may change at a later

0 commit comments

Comments
 (0)