Overview

What it is?

SubRecord is a distributed, scalable, non-relational, attribute-oriented storage supposed to be used in the cloud.  May remind of SimpleDB, BigTable or another non-relational databases. It allows storing records (that contain key-value pairs) and retrieving them using key-index and/or full-text index. It consists of a master server(s) which holds an index,  talks to a cluster of data server nodes that keeps replicated data and exposes RESTful HTTP interface (JSON). It can scale seamlessly from zero-deployment local mode to multiple remote nodes.

Why?

If you attempt to store data there are many solutions around that typically could be divided into two groups: one is very useful, compact and simple ones, but lack of scaling capabilities. The other is scalable, sophisticated products, but inconsistent, built on the top of heterogenous technologies, hard to install and work with. You have to install this and that, often it depends on the operating system. The primary goal of SubRecord is to be 100% Java, embedable, Agile methodology friendly technology (it can be tested).

What for?

Master server exposes a RESTful interface, so can be consumed by any REST client (not necesarily a Java one).  Setup of your choice (e.g. 1 master sever and 3 data servers) can be accessed from any application to preserve its state w/o maintaining a specific data layer infrastructure for each and every application.  If you maintain a group of applications, all of them can use one and the same data repository. If you reach a point when it is not enough efficient you can add another node. It supports cloud computing by its layered architecture (API, cache, billing etc) so ultimately can be turned into a storage cloud (infinitely scalable storage space partitioned for multiple users) and launched as an SAAS platform.

What it is not?

It is not an RDBMS engine nor a sophisticated transactional database. It has nothing to do with JDBC and SQL. It is good for what it does. Despite of its simplicity, chances are it may be useful for you.

  1. No comments yet.
  1. No trackbacks yet.