A demonstration of the implementation of a distributed columnar NoSQL key-value pair based datastore for big data. With support for multiple nodes, node management, centralized control, replica management and fault tolerance. Implemented with GET(Query) and POST(entry) requests with persistent storage. Architecture suitable for 'read once write consistently' type of applications.
Built from scratch with Python and NodeJS.
GET: <tablename> <rowid> <column family>:<column>
POST: <tablename> <rowid> <column family>:<column> <value>
- Node.JS
- Python
- ZeroMQ - zmq library for python
- NodeJS child processes - through PythonShell
The architecture consists of 4 layers,
- Client - where the user enters the get/post commands
- Web Server - to handle client requests
- Application Master - node management, fault tolerance, replication management
- Node Manager - management of indivisual nodes