Install and run BangDB server
Install
Step 1
You may get the BangDB using of one of these four ways:
- Pick and take the tar file from the download page
- Clone the BangDB public Github repo
- Simply use wget.
wget https://bangdb.com/downloads/bangdb_2.0_<"os_name_version">.tar.gz
- Or, use the Docker Image
Option A, B & C
Eventually all these three options gives you a tar file and we can install using it.
Following are the names of the binary, you may directly download using wget
Ubuntu 16
wget https://bangdb.com/downloads/bangdb_2.0_ubuntu16.tar.gz
Ubuntu 18
wget https://bangdb.com/downloads/bangdb_2.0_ubuntu18.tar.gz
Ubuntu 20
wget https://bangdb.com/downloads/bangdb_2.0_ubuntu20.tar.gz
CentOS 7
wget https://bangdb.com/downloads/bangdb_2.0_centos7.tar.gz
CentOS 8
wget https://bangdb.com/downloads/bangdb_2.0_centos8.tar.gz
RHEL 8
wget https://bangdb.com/downloads/bangdb_2.0_rhel8.tar.gz
The downloaded tar file will be like this (for Ubuntu 18 bangdb_2.0_ubuntu18.tar.gz)
Untar this file
tar -xzvf bangdb_2.0_ubuntu18.tar.gz
Step 2
cd bangdb_2.0_ubuntu18
You will find README here, which has the steps to install and run the BangDB server, must follow the steps provided in the README.
Run the install.sh file (May run for few min and finally everything should be set up)
bash install.sh
Step 3
Run the server There are two ways to run the server, using the server binary directly OR using the helper script
Let's use helper script
./bangdb-server start
This will run the server in background You may check the status of BangDB server using
./bangdb-server status
Status 'bangdb-server-2.0' : Running
And you may stop the server by
./bangdb-server stop
That's it.
You can also directly run bangdb-server using the binary, it will allow you to provide command line argument as well. This allows user to have more control on how server may run by using command line arguments.
However, all of these arguments could be configured by editing the bangdb.config file and use above mentioned helper script. Hence if you use script then these should be set in bangdb.config. See bangdb.config for more details.
It is super important to learn this if you wish to have more control on how server is run To run the server using this option, you need to go to bin folder and run the server that's it.
cd bin
./bangdb-server-2.0
use -help command line arg to see all the options
./bangdb-server-2.0 -help
There are few parameters that should be set and please see bangdb config page to learn more.
This is default mode of running the server and kindly see bangdb config page to learn various configurations and also running servers with added features. Next you should run cli and the test benchmark and check all is fine. Use the cli
cd cli
./bangdb-cli-2.0
To see the tables
show tables
To see BangDB servertype
show servertype
To see BangDB help
help
To see help for BangDB Stream
help stream
//so on...
BangDB cli is quite comprehensive and supports all activities that we can perform on BangDB, from DDL to DML to some admin tasks. See the bangdb cli page for lot more details.
Run test benchmark and test. Run bench to see all is good and also typical throughput for the server. Please note this gives bare minimum throughput data as single client runs, to check actual IOPS, pls see benchmark Make sure server is running or
Run the server
./bangdb-server start
Go to bench folder, let's go to cpp folder for now
cd bench/server_cpp
Build the test
bash build.sh
This will build a bench file, now run the bench
./bench
It will run simple put, get and scan and it's throughput Now run the java test, from main folder
cd bench/server_java
Compile
bash make-app.sh
Run
bash exapp.sh
//so on...
To do proper benchmark, we need to set up the config properly and also use a server which has minimum of 8GB RAM and 4 Cores. YCSB benchmark can also be set up and run. This would allow user to compare the number vis-a-vis other dbs.
You may use bangdb clients to write powerful application to enable some of the use cases. BangDB clients allows you to write highly efficient, high performance and scalable apps due to its own messaging framework, servers architecture and ability to handle high volume with speed at ease from tens of thousands of connections.