blob: 0959c5fcf9eb2d5e653ec9dd93bc682dcff20495 [file] [log] [blame] [view]
# Apache Ignite 3 Beta 1
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.
## Installation
1. 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
```
2. Unzip the downloaded file:
```
unzip ignite3-3.0.0-beta1.zip && cd ignite3-db-3.0.0-beta1
```
3. Add your installation directory to the PATH environment variable:
```
export IGNITE_HOME=$(pwd)
```
4. (optional) If you start the cluster locally then install the core artifacts:
```
sh $IGNITE_HOME/bin/ignite3-db.sh start
```
## Running Examples
Examples are shipped as a separate Maven project, which is located in the `examples` folder.
To start running you simply need to import provided `pom.xml` file into your favourite IDE.
The following examples are included:
* `RecordViewExample` - demonstrates the usage of the `org.apache.ignite.table.RecordView` API
* `KeyValueViewExample` - demonstrates the usage of the `org.apache.ignite.table.KeyValueView` API
* `SqlJdbcExample` - 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:
1. Import the examples project into your IDE.
2. Start a server node using the startup script:
```
sh $IGNITE_HOME/bin/ignite3-db start
```
3. (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
```
4. (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
```
5. Run the preferred example in the IDE.
## Using CLI
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.