In focus

Introduction To ThruDB

This article will provide an insight to ThruDB, and the features and services provided by it. ThruDB is an open source database built on top of Apaches Thrift framework.

Anmol Garg Mar 21, 2016

ThruDB is an open source database built on Apache's Thrift framework and is a set of simple services such as scaling, indexing and storage which is used for building and scaling websites.

It provides flexible, fast and easy-to-use services that simplify the management of the modern web data layer and provides developers with features and tools most web developers need. These features can be easily configured or turned off.

Thrudb contains two services
  • Thrudoc - Document storage service
  • Thrudex - Indexing and search service

  • Multi-master replication
  • Built for horizontal scalability
  • Incremental backups and redo logging
  • Multiple storage back-end client libraries for most languages
  • Simple and powerful search API

ThruDB provides web-scale data management by providing these services:
  • Thrucene - For Lucene-based indexing
  • Throxy - For partitioning and load balancing
  • Thrudoc - For document storage
  • Thruqueue - For a persistent message queue service
  • Thrift - For cross-language services framework
Compared to SimpleDB, ThruDB removes many of the former's restrictions- no 1024 byte limit per attribute, ability to use proprietary data formats, no query time limits, and more. Since it also runs on EC2 and public Thrift/ThruDB Amazon Machine Images (AMIs) exist, ThruDB is in a sense a competitor to SimpleDB.

Thrudb is an attempt to simplify the process of the modern web data layer which comprises indexing, caching, replication & backup. It provides a consistent set of services. Thrucene provides indexing, Throxy provides partitioning and load balancing, and Thrudoc provides document storage. To get a great overview of the design philosophy and API samples we can refer to Jake's whitepaper. The entire stack is implemented on top of Thrift, which has a great access for easy language interoperability and API access.

apache database thrudb