Packages 
Package Description
edu.caltech.nanodb.client
This package contains classes that allow NanoDB to be used from multiple concurrent clients, to maintain client session state, and so forth.
edu.caltech.nanodb.commands
This package contains the classes that represent the commands that the NanoSQL database recognizes.
edu.caltech.nanodb.config  
edu.caltech.nanodb.expressions
This package contains classes for representing and evaluating arithmetic and logical expressions.
edu.caltech.nanodb.functions
This package contains the abstractions for supporting simple functions, aggregate functions, and table-returning functions in NanoDB.
edu.caltech.nanodb.indexes  
edu.caltech.nanodb.plannodes
This package contains classes for representing query execution plans, as well as analyzing their costs.
edu.caltech.nanodb.queryast  
edu.caltech.nanodb.queryeval
This package contains the query-evaluation components of the database.
edu.caltech.nanodb.relations
This package contains the basic data-types for representing relations in NanoDB.
edu.caltech.nanodb.server  
edu.caltech.nanodb.server.performance  
edu.caltech.nanodb.server.properties  
edu.caltech.nanodb.sqlparse  
edu.caltech.nanodb.storage
This package contains the classes for the Storage Manager, which is responsible for how data is stored in and retrieved from database files.
edu.caltech.nanodb.storage.heapfile
This package provides a naive implementation of the heap file organization for NanoDB.
edu.caltech.nanodb.storage.writeahead
This package contains the implementation for the write-ahead log, which allows us to provide transaction atomicity, consistency and durability.
edu.caltech.nanodb.transactions
This package contains classes for managing transactions at the logical level, such as concurrency control and isolation, deadlock detection and aborting transactions.
edu.caltech.nanodb.util
This package contains various generally useful utility classes that aren't specific to a particular area of NanoDB functionality.