Skip to content

Commit 42a3234

Browse files
committed
appy suggestions from review
1 parent 4e4589a commit 42a3234

File tree

2 files changed

+14
-12
lines changed

2 files changed

+14
-12
lines changed

modules/ROOT/pages/database-internals/store-formats.adoc

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -554,12 +554,14 @@ The following data is stored for each element:
554554
* Relationships: a unique ID, one type, a source node, a target node, and a collection of properties.
555555
* Properties: key-value pairs.
556556

557+
All graph data files are stored under _$NEO4J_HOME/data/databases/databasename_.
558+
557559
[[block-format-store-files]]
558560
== Block format store files
559561

560-
The block format graph data files are stored under _$NEO4J_HOME/data/databases/databasename_.
561-
They are organized into a three-store logical structure that adapts to the amount of data stored for each node and relationship.
562-
The following is an overview of the most important store files, the store they belong to, data they contain, the size of each record, and what they are used for.
562+
In `block` format, all graph elements are stored in a set of store files with the prefix _block._.
563+
They are organized into three types of stores that adapt to the amount of data stored for each node and relationship.
564+
The following is an overview of the most important store files, the store type they belong to, data they contain, the size of each record, and what they are used for.
563565

564566
=== Small store
565567

@@ -572,7 +574,7 @@ The encoding attempts to fit as much data into this block as possible, typically
572574
The amount of data that fits depends heavily on the type and size of the data.
573575
If you have more labels, but no properties or small properties, more labels will fit, and vice versa.
574576
The same applies to relationships.
575-
You can fit more relationships if there are fewer properties, and vice versa.
577+
You can fit more relationships if there are fewer relationship properties, and vice versa.
576578
Keep in mind that if no data is present, the block still occupies 128 B.
577579
This block persists as long as the node exists.
578580

@@ -596,19 +598,19 @@ The size of this record also adapts to the total size of the relationship data,
596598
The record in _block.x1.db_ stores a reference to this dynamic record.
597599
This record can typically contain hundreds of relationships.
598600

599-
=== Dense stores
600-
601-
When the data connected to nodes, relationships, or properties exceeds the capacity of both the small and dynamic stores, the data is stored in the dense store files.
602-
It is based on a multi-root generational B+ tree structure that allows for efficient storage and retrieval of large amounts of data, where each node has a separate root.
603-
The following dense store files exist:
604-
605601
_block.big_values.db_::
606602
All properties of total _size < ~31 B_ are inlined with the node and relationship data in the small or dynamic stores. +
607603
Properties exceeding 31 B when encoded, typically longer strings or arrays, are stored in this file, and a reference is placed in the value's stead.
608604
The size of these records adapts to the encoded size of the property value, where the _size = X * 64 B_, with a maximum record size of 8192 B.
609605
If the encoded size of a property exceeds the maximum record size, the data is split into multiple records and linked together as a linked list.
610606
See xref:performance/space-reuse.adoc#space-reuse-large-property-values[Reuse of space for large property values in block format] for more details.
611607

608+
=== Dense stores
609+
610+
When the data connected to nodes and relationships exceeds the capacity of both the small and dynamic stores, the data is stored in the dense store files.
611+
It is based on a multi-root generational B+ tree structure that allows for efficient storage and retrieval of large amounts of data, where each node has a separate root.
612+
The following dense store files exist:
613+
612614
_block.relationship.dense.db_::
613615
Relationship dense store holds relationships for nodes with a large number of relationships.
614616
When the relationship data of a node exceeds the maximum size of the dynamic relationship record, the overflowing relationships are moved to this store.

modules/ROOT/pages/performance/space-reuse.adoc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,11 @@ If you want to shrink the size of your database, do not delete the _.id_ files.
4444
The store files must _only_ be modified by the Neo4j database and the `neo4j-admin` tools.
4545
====
4646

47-
[role=label--new-2025.12]
47+
[role=label--new-2026.01]
4848
[[space-reuse-large-property-values]]
4949
== Reuse of space for large property values in block format
5050

51-
Starting with Neo4j 2025.12, when allocating a large value of N units, if no such ID is available, the record is split into multiple smaller records.
51+
Starting with Neo4j 2026.01, when allocating a large value of N units, if no such ID is available, the record is split into multiple smaller records.
5252
This guarantees the reuse of space for large property values stored in the _block.big_values.db_ store file, sacrificing colocation in some cases.
5353
The level of accepted fragmentation is dynamic and depends on the fraction of unused records, i.e., no fragmentation if < 5% of the space is unused, then accepting some fragmentation for a bit higher unused percentage.
5454
If the unused percentage is high, records can be even more fragmented.

0 commit comments

Comments
 (0)