GridDB Versions Compared

Introduction

GridDB offers three different versions that each have an increased number of features. All versions provide ACID compliance, high scalability, high performance through an in-memory architecture, and high reliability and availability with its hybrid cluster architecture.

GridDB Community Edition (CE) is the free and open-source version. This version could be considered as the most basic version of GridDB that still provides many benefits and features over other NoSQL competitors. GridDB CE (Community Edition) is available under the AGPLv3 license and was built with high performance, scalability, and fault tolerance in mind.

GridDB Standard Edition (SE) is the commercial version of GridDB offered. GridDB SE provides extra software support with updates and patches and provides new tools and features not seen in Community Edition. These include a online node additions, web dashboard, a command-line shell for cluster management, and spatial data types.

GridDB Advanced Edition (AE) and GridDB Vector Edition (VE) is an considered an upgraded version of Standard Edition that brings in new features that Standard Edition does not provide. The most notable feature is that it provides a high performance, parallel distributed SQL engine. This feature can be accessed through a NewSQL Interface. GridDB Vector Edition has all the features of GridDB Advanced Edition along with high-speed vector processing.

Common Features

Catered to IoT Data

GridDB is tailored for IoT data by using a key-container model of storing and accessing data. In many IoT applications, many devices report data very frequently and can have timestamps associated with them. GridDB provides a TimeSeries container that can handle timestamp that arrive at high rates. TimeSeries containers provide aggregation and sampling functions along with data compression as a way to save storage space.

High Performance

GridDB uses a Memory First, Storage Second approach to accessing data. Here frequently accessed data is stored in-memory and preferably within the same block. GridDB’s precise and effective use of multi-threading and CPU allocation reduce the overhead of database operations. Performance is further increased through parallel processing within and across nodes. This allows for GridDB to make maximal use of memory and CPU.

GridDB Community Edition

GridDB Community Edition is the open-source version of GridDB. Version 3.0.1 is free and available for download on the GridDB Downloads page along with its various connectors. GridDB Community Edition can be deployed in a public cloud environment and has an AMI available through AWS. GridDB brings pivotal features like:

Open Source and Well Documented

GridDB Community Edition is fully open-source and provides APIs and connectors to several frameworks for developers. GridDB has APIs in C, Java, Python, and Ruby. Developers can use the connectors to YCSB, Apache Spark, Hadoop MapReduce, Kafka, and KairosDB. All these options give flexibility in the ways one can access GridDB during development.

Source code for GridDB, its APIs, and its connectors can be viewed on Github

Setting Up and Adding Nodes in Community Edition

When using Community Edition, a GridDB cluster can be composed of many nodes. The procedure for adding new nodes is fairly simple and straightforward. Simply stop the cluster and rejoin all the nodes (including the new node). First login as the gsadm user on all node machines. From there, have each node in the current cluster leave the cluster. Then stop the node.

On each of the old nodes:

$ sudo su - gsadm
$ gs_leavecluster -u username/password
$ gs_stopnode -u username/password

Now that the cluster is stopped, the new node is ready to be added. Simply ensure that the new node has the same cluster definition file (gs_cluster.json) as all the other nodes. From there, just start all the nodes and join them into the cluster. Now the GridDB cluster is now operating and ready for use with the new nodes added.

In this example, we all add a new node at ip address 192.168.0.1 will be added to cluster named cluster1 that is made up of 3 nodes.

On all the nodes (both old and new), issue:

$ gs_startnode
$ gs_joincluster -c cluster1 -u username/password -n 4 -w

Node entry can also be specified with from another node (as long as all nodes are started with gs_startnode beforehand). In this case, the cluster will not begin operation until all 4 nodes have been joined (-n 4).

We will add the new node by issuing:

$ gs_joincluster -c cluster1 -n 4 -s 192.168.0.1:10040 -u username/admin 

Key Features of GridDB Standard Edition

GridDB Standard Edition is the commercial version of GridDB. You can sign up for an evaluation version of GridDB SE here. GridDB Standard Edition gives software support with maintenance releases, bug fixes, patches, updates, and company support 24/7, 365 days a year. GridDB also provides an AWS AMI. GridDB SE brings in useful utilities like:

Spatial Data Types

Spatial data are data points that can be mapped and stored as points or as topologies in a coordinate space. Spatial data is used heavily in GIS applications and map information systems. Spatial data that captures aspects of location are also quite frequently in IoT applications. Examples of spatial data include geometries like POINT, LINESTRING, POLYGON. Spatial data is represented with GEOMETRY columns in GridDB. Developers can spatial columns and spatial indexing to their containers. One can also make geometric queries using TQL such as spatial intersections. Developers can also create geometry objects and execute geometric functions using the C and Java APIs of GridDB Standard Edition.

map

More detailed information on Geometric data can be found on using geometry values post.

Web Management GUI

performance monitor

GridDB Standard Edition provides an intuitive, easy-to-use management dashboard application that runs in Apache Tomcat. In the web application, users can see and manage their GridDB clusters and repositories. Users and administrators can also view and manage the configurations, connections, and settings of the nodes with a GridDB cluster as well as issue and analyze TQL queries. Snapshots can be taken of nodes to view individual their performances at points in time. Individual containers can be listed and its properties and data can be managed from the dashboard as well. General system information like checkpoint and backup information can also be seen in the gui application. Errors, logs, and events that have occurred on containers and GridDB clusters are available for listing and analysis through the management GUI as well.

Repository management dashboard

Cluster Management Shell

GridDB provides a command line interpreter to operate on GridDB. This tool is known as gs_sh that can be accessed from the gsadm user. This command line tool allows a user to manage cluster and data operations in GridDB. For a GridDB cluster, clusters can be easily defined and their status and logs can be displayed. Individual nodes can be started and stopped from a cluster in gs_sh as well. GridDB containers and triggers can be listed and displayed. Indexes can be added and dropped from containers at will and TQL operations can be performed on containers through the shell as well.

The gs_sh can be used in two different modes. The first mode offered is interactive mode where special GridDB-specific commands can be entered like a traditional command-line. The second mode offered is batch-mode which involves the use of a script file in the .gsh format that contain series of subcommands to execute on GridDB.

Online Backup and Online Expansion

Expansion in a database involves increasing its size and capacity. This translates to adding more nodes to the database so it can scale out with commodity hardware. For most databases, adding more nodes can only be done when the database is offline. GridDB Standard Edition offers the ability for users to expand their database online without having to stop operation and halt services. When adding new nodes to a cluster in Community Edition, all the nodes in the cluster must leave the cluster and be restarted. This can be tedious and costly for a large database, especially with many nodes. In Standard Edition, this step can be skipped altogether, allowing scalability and performance to be improved without having to make the inconvenience of stopping service.

To add new nodes in GridDB Standard simply use the gs_appendcluster command. Specify the cluster that you wish to add to as well as the ip address and port of the node machine. For example to add a node ip address 192.168.0.3 to a cluster named largeCluster you would issue:

$ sudo su - gsadm
$ gs_appendcluster --cluster largeCluster 192.168.0.3:10040 -u username/password

Standard Edition also features online backup so periodic backups can be executed on a cluster as a safeguard against data corruption or application malfunctions.

Differential Backup Function

Differential Backup in GridDB AE
GridDB Standard Edition adds a new backup type known as differential or incremental backup. In incremental backup, the cluster database is stored in node units in a backup directory. For following backups, only the differences between the update block and the last backup gets backed up. Updated data blocks are only backed up once a specified baseline is executed. Differential backup can also be done online.

Export / Import Tools for Migration

Standard Edition provides export and import tools so GridDB nodes can recover from local damages and containers can be migrated, even from an RDB database. The export function of GridDB allows developers to export whole clusters, individual databases and containers, user rights, and row sets resulting from search queries. Exported data can be stored either in csv or binary formats. Individual or multiple containers can be exported into single files known as container data files as well.

The import function can be used to migrate a relational database into GridDB. Just like the export function, individual containers, databases, and clusters can be imported in GridDB. The way that the relational database translates to a GridDB database can be specified with a resource defintion, an RDB collection function, a mapping function, and a GridDB registration function.

Export/Import Functionality

Imports and export processes can be sped up by being executed in parallel. Details and instructions for using the export and import functionality can be found in this section

Setting Up Nodes in Standard Edition

In GridDB Standard Edition, nodes can be added using either the gsadm user from the command-line just like in Community Edition or by using the gs_sh shell. Node variables and can be created with the IP and Port numbers of the node machines using gs_sh. Cluster variables can be created with many node variables attached to it. The cluster can then be started, joined, or have nodes added to it.

// Access gsadm user and gs_sh shell
$ sudo su - gsadm
$ gs_sh
// Define node
gs> setnode node0 192.168.0.1 10000
// Define cluster and attach cluster to it
gs> setcluster cluster0 defaultCluster 239.0.0.1 31999 $node0
gs> joincluster $cluster0 $node0
// Additional Nodes can be added using 'appendcluster'
gs> setnode node2 192.168.0.2 10000
gs> appendcluster $cluster0 $node2

Key Features of GridDB Advanced/Vector Edition

GridDB Advanced Edition along with GridDB Vector Edition are the other commercial versions of GridDB. They can be obtained under contract. GridDB AE contains all of the features introduced in Standard Edition along with several new ones. These new features include:

Interface to Issue SQL Queries

GridDB Advanced Edition offers high speed SQL processing that is parallel and distributed. This version is SQL-92 compliant. GridDB uses a NewSQL-Interface where connectors like JDBC can issue SQL and are then processed by the high-speed SQL engine that are atop the NoSQL store. SQL queries can be executed from the gs_sh shell, the web application gui, and in C and Java using connectors. SQL functions allows developers to issue GROUP BY [HAVING], INSERT, DELETE, UPDATE, REVOKE, and GRANT commands to GridDB containers and databases. Developers can also create tables, indexes, users, passwords, and select individual columns using SQL commands.

GridDB SQL Engine diagram

More detailed documentation on SQL in GridDB AE here.

JDBC and ODBC Connectors

SQL commands can be used by applications in Java through the JDBC API. The JDBC interfaces allows users to manipulate data and build applications that use GridDB containers as tables and manipulate data with SQL in Java. The ODBC connector uses the C API of GridDB databases. It allows for Windows-compatible applications to access GridDB’s database management system. The current driver for ODBC in GridDB Advanced Edition is compatible with Windows 7, Windows 8, Windows Server 2008 R2 and Windows Server 2012 R2. These tools especially useful for classifying and analyzing data in Business Intelligence and ETL as they interface heavily with SQL.

Details on how to use JDBC driver with GridDB can be found in the JDBC connector section of the documentation.
Details on how to use the ODBC driver with GridDB can be found in the ODBC connector section.

Table Partitioning

Advanced Edition’s table partitioning feature helps arrange as much data in GridDB to be processed in-memory. This keeps performance as fast as possible. For applications with tables with a large number of rows, rows can be distributed to many so the memory of all nodes can be used for processing. GridDB AE uses the hash partitioning method to partition and distribute tables. Table partition allows for the table ends to be well distributed for fast access in applications that register data at high rates and for parallel retrieval of table data.

Table partitioning in AE

High-Speed Vector Processing for Vector Edition

GridDB Vector Edition features high speed vector processing. GridDB VE has all the features of GridDB SE and AE and includes the high speed SQL engine and table partitioning of Advanced Edition. Vector processing expresses data in high-dimension vectors and pre-indexes any similar vector groups. Vector processing uses high speed matching for vector data.

Conclusion

GridDB provides the best options for your backend database needs regardless of the scale of your application. GridDB Community Edition is well suited for smaller scale IoT applications while giving the benefit of a reliable, high performance database while still remaining open-source. GridDB Standard Edition is tailor-made for larger commercial applications with its additional tools and support for cluster management. GridDB Advanced Edition for applications that need the highest performance possible as well as an SQL engine they can use to join their business intelligence to their GridDB database.

If you have any questions about the blog, please create a Stack Overflow post here https://stackoverflow.com/questions/ask?tags=griddb .
Make sure that you use the “griddb” tag so our engineers can quickly reply to your questions.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.