Apache Ignite is a distributed database for high-performance computing with in-memory speed.
Ignite 3 is the next generation of the platform that will support a modernized modular architecture, along with improved usability and developer experience.
The current beta version includes the following features:
- RPM and DEB packages: simplified installation and node management with system services.
- Client's Partition Awareness: Clients are now aware of data distribution over the cluster nodes which helps avoid additional network transmissions and lowers operations latency.
- C++ client: Basic C++ client, able to perform operations on data.
- Autogenerated values: now a function can be specified as a default value generator during a table creation. Currently only gen_random_uuid is supported.
- SQL Transactions.
- Transactional Protocol: improved locking model, multi-version based lock-free read-only transactions.
- Storage: A number of improvements to memory-only and on-disk engines based on Page Memory.
- Indexes: Basic functionality, hash and sorted indexes.
- Client logging: A LoggerFactory may be provided during client creation to specify a custom logger for logs generated by the client.
- Metrics framework: Collection and export of cluster metrics.
- Download Ignite 3 Beta 1:
curl -L "https://www.apache.org/dyn/mirrors/mirrors.cgi?action=download&filename=ignite/3.0.0-beta1/ignite3-3.0.0-beta1.zip" -o ignite3-3.0.0-beta1.zip
- Unzip the downloaded file:
unzip ignite3-3.0.0-beta1.zip && cd ignite3-db-3.0.0-beta1
- Add your installation directory to the PATH environment variable:
export IGNITE_HOME=$(pwd)
- (optional) If you start the cluster locally then install the core artifacts:
sh $IGNITE_HOME/bin/ignite3-db.sh start
Examples are shipped as a separate Gradle project, which is located in the examples
folder.
To start running you simply need to import provided build.gradle
file into your favourite IDE.
The following examples are included:
RecordViewExample
- demonstrates the usage of theorg.apache.ignite.table.RecordView
APIKeyValueViewExample
- demonstrates the usage of theorg.apache.ignite.table.KeyValueView
APISqlJdbcExample
- demonstrates the usage of the Apache Ignite JDBC driver.SqlApiExample
- demonstrates the usage of the Java API for SQL.VolatilePageMemoryStorageExample
- demonstrates the usage of the PageMemory storage engine configured with an in-memory data region.PersistentPageMemoryStorageExample
- demonstrates the usage of the PageMemory storage engine configured with a persistent data region.
To run any other example, do the following:
- Import the examples project into your IDE.
- Start a server node using the startup script:
sh $IGNITE_HOME/bin/ignite3-db start
- (optional) Setup ignite3-cli in your terminal:
cd ignite3-cli-3.0.0-beta1
alias ignite3="$(pwd)/bin/ignite3" >> ~/.bash_profile
source bin/ignite_completion.sh
- (optional) If the cluster is not initialized then initialize the cluster:
ignite3 cluster init --cluster-name=ignite-cluster --cluster-endpoint-url=http://localhost:10300 --meta-storage-node=defauldNode
- Run the preferred example in the IDE.
Beta 1 leverages the advantage of using the CLI for the development. Updated CLI ships the following features:
- Bash auto-completions. If you are using bash/zsh you can hit the TAB during typing ignite commands.
- Interactive mode. Enter the interactive by running
ignite
without arguments. - SQL REPL. Run SQL queries right from your terminal with
ignite sql
command.