/ignite-3

Apache Ignite 3

Primary LanguageJavaApache License 2.0Apache-2.0

Apache Ignite 3

Apache Ignite 3 is a distributed database for high-performance computing.

  • ACID TRANSACTIONS: Ignite can operate in a strongly consistent mode that provides full support for distributed ACID transactions executed at the Serializable isolation level.
  • DISTRIBUTED SQL: Use Ignite as a traditional SQL database by leveraging JDBC drivers, ODBC drivers, or the native SQL APIs that are available for Java, C#, C++, and other programming languages.
  • COMPUTE API: With traditional databases, for in-place calculations, you use stored procedures that are written in a language such as PL/SQL. With Ignite, you use modern JVM languages to develop and execute custom tasks across your distributed database.
  • SCHEMA-DRIVEN ARCHITECTURE: Ignite built around schema-driven model ensuring consistency between DDL, internal models and data.
  • PLUGABLE STORAGE ENGINES: Ignite's modular architecture enables the customization of underlying data and metadata storage, offering in-memory storage and RocksDB as default options.
  • UNIFIED CLI TOOL AND REST API: Management tools now include built-in CLI and REST API allowing simple access and configuration of Ignite cluster.

Documentation

The latest documentation is generated together with the releases and hosted on the apache site.

Please check the documentation page for more information.

Contact

Ignite is a top level project under the Apache Software Foundation

Download

Latest release artifacts (source release and binary packages) are available from the Ignite web page.

Quick start

Run Ignite from released artifact

To start Ignite you need to download latest zip archive from the Ignite web page. Scroll down to the "Binary releases" section and download the version you are interested in.

Here is the command you can run to download current latest release:

https://dlcdn.apache.org/ignite/3.0.0-beta1/ignite3-3.0.0-beta1.zip
unzip ignite3-3.0.0-beta1.zip

After this you should have two directories: ignite3-db-3.0.0-<version> and ignite3-cli-3.0.0-<version>. The first one contains everything you need to start Ignite node, and the second one contains Ignite CLI tool.

After unpacking it, go to the ignite3-db-3.0.0-<version> folder and run the following command:

cd ignite3-db-3.0.0-beta1
./bin/ignite3db start

This command starts the Ignite node with the name defaultNode. If you want to change any node configuration, change values in etc/ignite-config.conf before the start.

After that you need to connect to your node with Ignite CLI in interactive mode:

cd ../ignite3-cli-3.0.0-beta1
./bin/ignite3

In CLI you need to initialize simple cluster via the following command:

cluster init --name myCluster --cmg-node defaultNode --meta-storage-node defaultNode

Now CLI can be switched into SQL interactive mode with command:

sql

In SQL interactive mode user can simply type SQL commands in CLI:

CREATE TABLE IF NOT EXISTS Person (id int primary key,  city varchar,  name varchar,  age int,  company varchar);
INSERT INTO Person (id, city, name, age, company) VALUES (1, 'London', 'John Doe', 42, 'Apache');
INSERT INTO Person (id, city, name, age, company) VALUES (2, 'New York', 'Jane Doe', 36, 'Apache');
SELECT * FROM Person;

Build from source

Ignite distributive zip archive can be built with Gradle:

./gradlew clean distZip

Build artifacts can be found in packaging/db and packaging/cli directories.

Run from source using Docker

Ignite can be started with the help of Docker:

./gradlew docker
cd packaging/docker
docker compose up -d

You can also run the CLI within the Docker:

docker run -it --rm --net ignite3_default apacheignite/ignite3 cli
> connect http://node1:10300
> cluster init --name cluster --meta-storage-node node1 --meta-storage-node node2 --meta-storage-node node3

For more information, you can check the Developer notes

Contribute

All contributions are welcome.

  1. Please open a Jira issue
  2. And create a pull request

For more information, you can check the Contribution guideline

License

The Apache Ignite project is licensed under the Apache 2.0 License. See the LICENSE file for details.