Thrudb is a set of simple services built on top of the Facebook Apache Thrift framework that provides indexing and document storage services for building and scaling websites. Its purpose is to offer web developers flexible, fast and easy-to-use services that can enhance or replace traditional data storage and access layers.
Thrudb - High Level Features
- Client libraries for most languages
- Incremental backups and redo logging
- Multiple storage backends (BerkeleyDB, Disk, MySQL, S3 included)
- Memcache and Spread integration.
- Built for horizontal scalability
- Simple and powerful search service
Thrudb - Services
- Thrudoc - Document storage service
- Thrudex - Indexing and search service
- Thruqueue - Persistent message queue service
- Throxy - Scaling service
StrokeDB
Minimalistic modular database engine.
StrokeDB stores a set of versioned documents identified by UUID. A document is a hash-like container of slots: flat set of values tagged with string keys. Slots store arbitrary serializable values (most common types are booleans, numbers, strings, arrays, numbers, time).
The concept. 1. Every repository is identified by UUID. 2. Every repository writes a log of commits. 3. Commit tuples: (timestamp, "store", uuid, version) (timestamp, "pull", repo_uuid, repo_timestamp) 4. When you pull from a repository: 1. Find out the latest timestamp in your history (index: repo_uuid -> repo_timestamp) 2. If there is not timestamp yet, pull the whole log. 3. If there is a timestamp for a repository UUID, pull the tail of the log. 4. For each "store" record: fetch the version. 5. For each "pull" record - add to a deferred list of repositories waiting for update. 6. When whole log is fetched, fetch deferred repositories. We have two options here: 1. Fetch from the same repository we've been fetching from few moments ago (say, fetch B log from A) 2. Or, fetch directly from the desired repository (B log from B repository)
MongoDB
MongoDB is an open source document-oriented database written in the C++ programming language.
MongoDB is designed for problems without heavy transactional requirements that aren't easily solved by traditional RDBMSs, including problems which require the database to span many servers.
CouchDB
- A document database server, accessible via a RESTful JSON API.
- Ad-hoc and schema-free with a flat address space.
- Distributed, featuring robust, incremental replication with bi-directional conflict detection and management.
- Query-able and index-able, featuring a table oriented reporting engine that uses Javascript as a query language.