Feature details

BangDB has very rich feature set and we are working hard to keep improving the existing ones and adding new ones to simplify the life of developers and enable them to deal with more challenging problems. Here is a high-level feature list for BangDB;
BangDB is designed to handle more than one data type. It deals with following kinds of data effectively;
BangDB has streaming capabilities natively implemented which allows users to simply ingest data and start dealing with time series data in real time manner.
Streaming constructs like sliding window, aggregations, statistics, anomalies, finding patterns, CEP (complex event processing), notifications, prediction etc. all of these are supported in a very simple way. User just has to write simple json and all of these could start working immediately with no extra coding for the same.
It also supports running statistics such as aggr, groupby, avg, std-dev, topk, min, max, count, unique count, skew, ex-kurtosis etc.
Explore more on this in the stream section
BangDB has AI (ML, IE and DL) capabilities natively integrated. This allows users to deal with model building, testing, training and deploying for prediction using simple APIs.
Further, since AI is within the db, therefore many activities on the AI side could be simply automated, which runs the BangDB for continuous intelligence
BangDB abstracts all the infrastructure level complexities and allows user to deal with the use cases. For ex; infrastructure, large files storage and retrieval, Memory management, Model versioning, deployment etc. all are taken care by the db
BangDB Ampere runs on almost all favourite clouds and it could be deployed within few minutes of sign up.
BangDB also could be deployed on cloud or on-prem data centers or within the device, as required
To store different data in efficient manner, user may use different kinds of table supported by the db
Normal table
This is suitable for key value data
Wide table
This is suitable for document data. It allows users to create different indexes and also complex queries
Primitive table
For many cases, we just need to deal with primitive types. Primitive tables are designed for maximum efficiency and performance for such data
Large table
This is designed to keep very large files and provides S3 kind of APIs to deal with it. User can upload and download very large files or object. The ML component also uses it for automating training, testing and deployment
BangDB has primary key concept and every data, irrespective of data type, it can be stored using the primary keys.
Primary keys can be stored in two different ways;
BangDB supports many kinds of indexes as these are necessary for efficient query and retrieval of the data.
Secondary indexes
Here, again there are several different kinds of secondary indexes that could be created
BangDB allows simple, complex, advanced queries to be run using simple express-able json language
Leveraging the different kinds of indexes, it is rather efficient to run some of the queries which could be complex for many other systems in the market
For ex; queries could be run on streaming data, different streams could be joined or filtered or processed for state based queries as well, in order to find interesting patterns
Complex event processing is inbuilt, which allows users or developers to find patterns within data in absolute manner.
This is very powerful and happens in realtime with very less overhead and latency
Most of the CEP in the market are memory bloating ones, BangDB implements file system backed CEP yet on streaming continuous data
BangDB implements OCC (Optimistic concurrency control) transaction and users can leverage this for different purposes.
However, every single operation is by default atomic in nature
BangDB implements write ahead logging with novel structure and algorithm which is based on Aries, and yet recovers data in a very high speed manner. Wal on one hand allows us to achieve transaction in efficient manner and on the other hand it allows db to recover from crash(system, process, db, machine etc.) in automated and high speed manner
BangDB can be made to run like in-mem db as well. This is purely from use case point of view. Default way for BangDB is to run in persistent mode
BangDB implements its own buffer pool/page cache and with predictive pre-fetching it manages data well beyond the working memory set
Further BangDB implements a IO layer within the db to leverage SSDs in much better manner for large amount data to keep the performance high
BangDB achieves high performance in all different models and flavours. It's one of the highest performing databases in the market. In fact it is 2-3X when compared to mongodb, 50-70% higher as compared to redis (even thought it's primarily a in-mem key/val db) etc.