Files
scylladb/docs/dev
Michael Litvak 43c76aaf2b logstor: split log record to header and data
Split the `log_record` to `log_record_header` type that has the record
metadata fields and the mutation as a separate field which is the actual
record data:

struct log_record {
    log_record_header header;
    canonical_mutation mut;
};

Both the header and mutation have variable serialized size. When a
record is serialized in a write_buffer, we first put a small
`record_header` that has the header size and data size, then the
serialized header and data follow. The `log_location` of a record points
to the beginning of the `record_header`, and the size includes the
`record_header`.

This allows us to read a record header without reading the data when
it's not needed and avoid deserializing it:
* on recovery, when scanning all segments, we read only the record
  headers.
* on compaction, we read the record header first to determine if the
  record is alive, if yes then we read the data.

Closes scylladb/scylladb#29457
2026-04-16 10:00:35 +03:00
..
2023-03-31 17:19:08 +03:00
2023-12-07 11:10:17 +02:00
2025-02-11 00:17:43 +02:00
2025-02-11 00:17:43 +02:00
2026-04-09 13:08:02 +02:00
2025-02-11 00:17:43 +02:00
2025-01-09 10:40:47 +00:00
2024-02-13 17:16:15 +02:00
2025-02-13 01:54:08 +02:00
2025-02-11 00:17:43 +02:00
2023-01-27 19:15:39 +01:00
2023-01-27 19:15:39 +01:00
2025-02-11 00:17:43 +02:00
2025-09-12 15:58:19 +03:00

Scylla developer documentation

This folder contains developer-oriented documentation concerning the ScyllaDB codebase. We also have a wiki, which contains additional developer-oriented documentation. There is currently no clear definition of what goes where, so when looking for something be sure to check both.

Seastar documentation can be found here.

User documentation can be found on docs.scylladb.com

For information on how to build Scylla and how to contribute visit HACKING.md and CONTRIBUTING.md.

Index

Module list and dependencies

Repository layout and short summary of components