package net.metanotion

BlockFile, an embeddable single-file database engine from the Metanotion project (2006), heavily modified from the original 0.1.1 release. It is the database behind the router's default naming service (BlockfileNamingService, stored in hostsdb.dat). Not for direct use by apps, clients or plugins; the API may change.

Data is stored in named skip lists (net.metanotion.util.skiplist) that behave roughly like a persistent java.util.SortedMap, with keys implementing Comparable. Values are serialized by implementing the Serializer interface. The engine reads and writes through RandomAccessInterface, an interface form of java.io.RandomAccessFile, so it has no dependence on the file system and runs on constrained platforms. There are no transactions, no SQL and no reflection-based serialization. The I2P fork adds on-disk page headers for robustness, automatic repair of some corruption types, and read-only databases.

Subpackages: net.metanotion.io (I/O and serialization), net.metanotion.io.block (block allocation), net.metanotion.io.block.index (indexes), net.metanotion.io.data (object serialization), net.metanotion.util.skiplist (skip lists).


  • All Classes and Interfaces
    Class
    Description
    Exists only to enable package.html to be included in javadoc.