BangDB
BangDB is a NoSQL database written in C/C++ from scratch to scale out applications suitable for heavy lifting.[1][2]
Industry | Database |
---|---|
Founded | 2012 |
Headquarters | |
Key people | Sachin Sinha (Creator) |
Parent | Iqlect Software Solutions |
Website | www |
It is a multi-flavored database available as BangDB Embedded, BangDB Server, Data Fabric and Elastic Cache.[3] It is a high-performance embedded database for transactional key value data which supports full ACID (Atomicity, Consistency, Isolation and Durability) by implementing optimistic concurrency control with parallel verification for high performance and concurrency and is downloadable via a BSD License.[4][5]
BangDB was developed and authored by Sachin Sinha in 2012.[2] It has its own buffer pool, write ahead log with crash recovery system and provides users with many configuration to control the execution environment including the memory budget.[6]
HistoryEdit
BangDB was developed in 2011 and released its first beta version in 2012 November.[7] BangDB 0.1 was released with few simple features such as key- value store DB with opaque data, support for Btree + extHash, get, put, delete and simple scan, write-ahead log and buffer pool.[8] When it was first developed, it was mostly used for fast key access especially for a small size data.
In 2014, BangDB 0.9 was released which included features like replication, support for multiple table types and index support. Currently BangDB 1.5 is the recent version for BangDB-embedded and server.[9]
BangDB is not fully open-source. It is offered as binaries under BSD 3 licence for free which has a limited usage constrain.[10]
BangDB, which is a part of IQLECT Software Solutions[11] was backed by Exfinity ventures in the year 2014.[12][13]
ArchitectureEdit
The architectural objectives while designing the BangDB were:
- The Flexibility - key-value store in various forms
- The performance and scalability
- The robustness and reliability.
BangDB - EmbeddedEdit
BangDB Embedded version is part of the BangDB family and a high level architecture consists of three main important components of the Database.[14][15]
- The Access Methods or indexes
- The Buffer Pool and management, and
- The Write Ahead Log
Access or indexing methods: The BangDB access methods are highly concurrent, which means on a machine with more CPUs or Cores, the db will perform better. Btree and hash methods are currently supported in the BangDB as access methods.
The Buffer Pool and management: The BangDB, when enabled, reads and writes data from the buffer pool. The buffer pool also allows one to control the memory budget on a machine.
The Write Ahead Log: The BangDB implements write ahead log, the ARIES algorithm, for data durability and atomicity. The write-ahead log provides the data recovering capability when required. For example, in the event of process or machine crash etc..., It recovers the data when restarted and brings the DB to the state where it was when it crashed.[15]
BangDB-ServerEdit
In this flavour, BangDB runs as network service and clients access it over the network. This model is good for sharing data with multiple apps or instances of an app. The typical use case for this flavour is cache on top of the database, a network data store etc.
The architecture of BangDB follows a form of Staged Event-Driven Architecture (SEDA) which suits a highly concurrent network server. The server is stage driven and with a number of stages available as configurable parameter. This makes the server well-conditioned even with increasing loads and connections in a highly stressed scenario.[16]
Main FeaturesEdit
Compatible with Multi-table types:Edit
Compatible with all table types like Normal table, Wide table and primitive table.[17]
Multi-indexing:Edit
Creates index on the family or lets database create on auto mode as defined.[17]
Highly Concurrent Operations on B Link - Tree:Edit
Manipulation of the tree performed by any thread using a small constant number of page locks anytime. Search procedure does not involve reading any node.[17]
Concurrent Buffer Pools:Edit
Separate pools for different types of data with semi-adaptive data flush to ensure performance degrades gracefully in the case of data overflow out of the buffer.[18]
Sequential Data/log:Edit
The write of data/log is always sequential and a Vectored read/write. Across the cluster, the user has more than one option. BangDB can be set as ACID within the node of the cluster.
Memory:Edit
Slab allocator is present for most of the memory requirements. Pre-allocated client buffer present for most of the operations which enhances efficient use of memory. It Runs on commodity hardware and with smallest amount of memory committed to it. Users can allocate as much as memory needed or available.
Real-time Analytics:Edit
Built in abstraction for Real-time data analysis is available. Counting, topk, sliding window are examples of inbuilt analytical abstractions in BangDB for various data analytics.[18]
Concurrency:Edit
Most of the data structures are concurrent and capable of handling tens of thousands of concurrent connections.[18]
Complex Event processing:Edit
Suitable for Complex Event processing and defines queries with no post processing and notifies, alerts while data is in the memory.[18]
Machine Learning:Edit
Suitable for training machine learning models using simple API and predicting events or streams and take necessary auto actions. Can be used for Model versioning, release and update process. Suitable for A/B testing framework, logging and alerting.[18]
R programming:Edit
Suitable to run R queries, building models, generating reports and charts. Integrates with R to provide insights in an ad-hoc manner to understand patterns and to select suitable ML mod-crash recovery model and WAL (Write-ahead log).
Robust and Crash-proof:Edit
Due to the write-ahead log feature, it frequently check points the log in order to speedup the data recovery process by replaying the log in case of db/machine crash.[18]
Differences with other database systemsEdit
Since BangDB is a NoSQL Database, it is not suitable for any relational database management systems (RDBMS) and cannot run SQL based queries. It is also said not to be suitable for heavy business intelligence queries and banking and financial DB structures.
But BangDB is time and storage efficient and has high processing speed for log data analysis, Streaming data performed in a distributed cluster environment.[19]
ReplicationsEdit
The Replication of data is enabled by default in the db. No replication can also be opted by users but in a Network DB scenario, the replication is recommended to be turned ON. The data replication in sync mode allows user to switch between master and standby modes at run time.
Apart from data replication, Log replication can also be opted.[18]
PerformanceEdit
BangDB performs well for both read and write in save mode or non-save mode (as a cache). BangDB implements its own buffer pool with semi-adaptive page prefetch and performed well even with billion keys insert when compared with other NoSQL DBS.
BangDB also implements write ahead log which append only and so it avoids random seeks by optimizing the disk writes.[18]
Transaction in BangDBEdit
BangDB allows to create multiple user connections and simultaneous operations can be run without any concurrency issues. BangDB is a concurrent DB engine allowing multiple threads or connections to modify the DB at a time.
For a Single operation, the concurrency is done by locking and for multiple transactions, it is offered through transactions (occ). The transaction can be enabled or disabled by setting appropriate bangdb.config.[18]
Supported platform for BangDB serverEdit
Operating Systems:Edit
Linux (Supports Ubuntu, Debian, CentOS, Fedora, RedHat, SUSE etc. with an OS version 2.6 X onwards (32/64) bit)[18]
Language:Edit
Client:Edit
See alsoEdit
External LinksEdit
ReferencesEdit
- ↑ "Big data firm Iqlect gets $2.5 million in Bridge Round". indiatimes.com. Retrieved 20 August 2020.
{{cite web}}
: CS1 maint: url-status (link) - ↑ 2.0 2.1 "A deep dive into NoSQL: A complete list of NoSQL databases". Big Data Made Simple. 2014-07-21. Retrieved 20 August 2020.
- ↑ Vivek, Tiwari; Basant, Tiwari; Singh, Thakur, Ramjeevan; Shailendra, Gupta (2016-07-22). Pattern and Data Analysis in Healthcare Settings. IGI Global. ISBN 978-1-5225-0537-2.
{{cite book}}
: CS1 maint: multiple names: authors list (link) - ↑ "Iqlect | About - Elastic BigData Space". bangdb.com. Retrieved 20 August 2020.
- ↑ "BangDB - NoSQL for Real Time Performance". bangdb.com. Retrieved 20 August 2020.
- ↑ "IQLECT provides insights in real-time, makes data analytics affordable". The Financial Express. 2017-03-22. Retrieved 20 August 2020.
- ↑ "Bangdb System Properties". db-engines.com. Retrieved 20 August 2020.
- ↑ "LIST OF NOSQL DATABASE MANAGEMENT SYSTEMS". no-sql database. Retrieved 20 August 2020.
{{cite web}}
: CS1 maint: url-status (link) - ↑ "Google Groups". groups.google.com. Retrieved 20 August 2020.
- ↑ "Bangdb System Properties". db-engines.com. Retrieved 20 August 2020.
- ↑ "IQLECT: Predictive & real-time data analytics to easily". QuickBooks. 2016-05-16. Retrieved 20 August 2020.
- ↑ "Exfinity ventures startups portfolio". 2014. Retrieved 20 August 2020.
{{cite web}}
: CS1 maint: url-status (link) - ↑ Exfinity Ventures, Exfinity Ventures. "Ventureast and Exfinity back analytics startup IQLECT in bridge round". Vcc Circle. Retrieved 20 August 2020.
{{cite news}}
: CS1 maint: url-status (link) - ↑ "BangDB Embedded — Национальная библиотека им. Н. Э. Баумана". ru.bmstu.wiki. Retrieved 20 August 2020.
- ↑ 15.0 15.1 "BangDB Resources". bangdb.com. Retrieved 20 August 2020.
- ↑ "Performance Data For LevelDB, Berkley DB And BangDB For Random Operations". highscalability.com. 29 November 2012. Retrieved 20 August 2020.
{{cite web}}
: CS1 maint: url-status (link) - ↑ 17.0 17.1 17.2 "BangDB 2.0 API". bangdb.com. Retrieved 20 August 2020.
- ↑ 18.0 18.1 18.2 18.3 18.4 18.5 18.6 18.7 18.8 18.9 "BangDB NoSql". bangdb.com. Retrieved 2020-02-25.
- ↑ Bridgeport University, Scholarworks. "Web Search and Browser Log analysis using BangDB for Decision Support" (PDF). Brigeport university scholarlinks. Retrieved 20 August 2020.
{{cite web}}
: CS1 maint: url-status (link)