It is interesting to see how node, relationship and property records are stored differently on disk and in the cache.
It is all linked lists of fixed size records on disk. Properties are
stored as a linked list of property records, each holding a key and
value and pointing to the next property. Each node and relationship
references its first property record. The Nodes also reference the first
relationship in its relationship chain. Each Relationship references
its start and end node. It also references the previous and next
relationship record for the start and end node respectively.
On disk most of the information is contained in the relationship records, with the nodes just referencing their first relationship. In the Node cache this is turned around: the nodes hold references to all of its relationships. The relationships are simple, only holding its properties. The relationships for each node is grouped by RelationshipType to allow fast traversal of a specific type. All references (dotted arrows) are by ID, and traversals do indirect lookup through the cache.
View a video presentation of these slides on Skill Matter.
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)