Baynoon is an object database server that understands and efficiently implements relationships (one to one, one to many and many to many) between entities using a simple query language.
Baynoon is written in object-oriented C++. Baynoon is also intended to be portable. Currently, it abstracts an object oriented threading API over pthread.
Baynoon is in an early stage of development, currently, the underlying engine is being written.
In addition, Baynoon's query language parser has neared the testing stage, Lemon was used for a parser generator, Flex was used for a tokenizer generator.
Everybody is welcome to join with suggestions, ideas or code submition!
Here are some key features of "Baynoon":
· Constant row length tables, with variable-length columns being externally stored (one file per column).
· Row-level locking against writes. Writers block readers only in the row they are writing to.
· Integrated table partitioning.
· Table locking is performed per-partition in order to reduce thread synchronization overhead.
· Variable-length columns are only limited by the amount of data that can be carried in memory. In the future, support for VarCol streaming maybe added.
· Constant row length implies implicit 'id' indexing, i.e an index does not need to be created for a quick look-up for a row with a certain id.
· Every Baynoon object implicitly has an 'id' member variable.