MCPcopy Index your code
hub / github.com/apache/ignite-3

github.com/apache/ignite-3 @3.1.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release 3.1.0 ↗ · + Follow
71,002 symbols 396,230 edges 7,956 files 30,465 documented · 43%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

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

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/ignite:3.0.0 cli
> connect http://node1:10300
> cluster init --name cluster

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.

Extension points exported contracts — how you extend this code

CompactionRevisionUpdateListener (Interface)
Listener which receives and handles the metastorage compaction revision update after watches have been started. It i [24 …
modules/metastorage-api/src/main/java/org/apache/ignite/internal/metastorage/CompactionRevisionUpdateListener.java
PayloadReader (Interface)
Payload reader. [22 implementers]
modules/client/src/main/java/org/apache/ignite/internal/client/PayloadReader.java
VaultService (Interface)
Defines interface for accessing to the Vault service. [6 implementers]
modules/vault/src/main/java/org/apache/ignite/internal/vault/VaultService.java
ConfigurationTree (Interface)
Configuration tree with configuration values and other configuration trees as child nodes. @param Value type [9 implementers]
modules/configuration-api/src/main/java/org/apache/ignite/configuration/ConfigurationTree.java
DataRegionConfiguration (Interface)
Common interface for volatile and persistent regions. [7 implementers]
modules/page-memory/src/main/java/org/apache/ignite/internal/pagememory/configuration/DataRegionConfiguration.java
JitComparator (Interface)
Interface for comparing two binary tuples, represented as UnsafeByteBufferAccessors. All implementations of this [36 implementers]
modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/index/sorted/comparator/JitComparator.java
NodeNamingStrategy (Interface)
Strategy for configuring node names in a Cluster. [29 implementers]
modules/runner/src/testFixtures/java/org/apache/ignite/internal/NodeNamingStrategy.java
ThrottlingContextHolder (Interface)
Context for throttling requests to a peer from a client of a replication group. [6 implementers]
modules/raft-api/src/main/java/org/apache/ignite/internal/raft/ThrottlingContextHolder.java

Core symbols most depended-on inside this repo

of
called by 8384
modules/api/src/main/java/org/apache/ignite/table/mapper/Mapper.java
returns
called by 2986
modules/sql-engine/src/testFixtures/java/org/apache/ignite/internal/sql/engine/util/QueryChecker.java
add
called by 2361
modules/schema/src/main/java/org/apache/ignite/internal/schema/mapping/ColumnMapper.java
of
called by 2183
modules/core/src/main/java/org/apache/ignite/internal/util/ArrayFactory.java
any
called by 1894
modules/configuration-api/src/main/java/org/apache/ignite/configuration/NamedConfigurationTree.java
stream
called by 1760
modules/core/src/main/java/org/apache/ignite/internal/util/Cursor.java
build
called by 1592
modules/api/src/main/java/org/apache/ignite/sql/Statement.java
check
called by 1571
modules/sql-engine/src/testFixtures/java/org/apache/ignite/internal/sql/engine/util/QueryChecker.java

Shape

Method 59,460
Class 8,869
Interface 1,292
Function 1,007
Enum 374

Languages

Java91%
C#4%
C++4%
TypeScript1%
Python1%
Ruby1%

Modules by API surface

modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/exp/RexImpTable.java308 symbols
modules/page-memory/src/main/java/org/apache/ignite/internal/pagememory/tree/BplusTree.java292 symbols
docs/assets/js/docsearch.min.js220 symbols
modules/table/src/test/java/org/apache/ignite/internal/table/distributed/replication/PartitionReplicaListenerTest.java180 symbols
modules/jdbc/src/main/java/org/apache/ignite/internal/jdbc/JdbcDatabaseMetadata.java180 symbols
modules/raft/src/main/java/org/apache/ignite/raft/jraft/core/NodeImpl.java178 symbols
modules/page-memory/src/integrationTest/java/org/apache/ignite/internal/pagememory/tree/AbstractBplusTreePageMemoryTest.java151 symbols
modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/framework/TestBuilders.java150 symbols
modules/raft/src/integrationTest/java/org/apache/ignite/raft/jraft/core/ItNodeTest.java137 symbols
modules/table/src/main/java/org/apache/ignite/internal/table/distributed/TableManager.java120 symbols
modules/jdbc/src/main/java/org/apache/ignite/internal/jdbc/JdbcResultSet.java120 symbols
docs/assets/js/railroad.js117 symbols

For agents

$ claude mcp add ignite-3 \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact