Oak comes with two node storage flavours: Segment and Document. Segment storage is optimised for maximal performance in standalone deployments, and document storage is optimised for maximal scalability in clustered deployments.
The node storage implement the NodeStore APIs. Those are ultimately representations of the node state model. The NodeStore exposes its functionality through a pure Java API, which is suited to work with in Java, and has lower performance and memory overhead.