You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

IDIEP-52
Author
SponsorValentin Kulichenko  
Created

  

StatusDRAFT


Motivation

Currently, Apache Ignite is being shipped as single monolith binary with lots of excess modules and libs, majority of which are not required in most use case scenarios.
Also, current upgrade process is too tied to binary delivery, requiring users to copy working directory, additional libs and other configurations between version upgrades, which is rather error prone.

This IEP targets to solve both problems the following way:

  1. Divide binary delivery into at least several parts:
    • apache-ignite-core with essential-only files to run Apache Ignite
    • apache-ignite-extras with non-essential parts like benchmarks, examples, etc.
  2. Enhance ignite.sh script to untie it from IGNITE_HOME and use Maven as main additional lib management system.

Final target – recreate binary delivery in a way, that will allow user to upgrade Apache Ignite instance with only downloading a new binary and executing the same ignite.sh command from new version.

Description

Binary Delivery Revamp

  1. Redesign binary assembly to prepare at least 2 archives:

    • apache-ignite-core with essential-only files to run Apache Ignite: bin, config, libs (without optional)
    • apache-ignite-extras with all other additional files: benchmarks, docs, examples, platform

  2. Correspondingly update RPB/DEB packages to mirror the new binary layout.
    Considering packages, modularisation can be further enhanced to have separate packages for each additional part of the delivery (apache-ignite-benchmarks, apache-ignite-examples, etc.)

Additional Libs Management System

Replace shipping of optional libs via including Maven-powered dependency management.

  1. Completely remove optional libs from any delivery.
  2. Update ignite.sh to support specifying additional libs names and use Maven to download target libs with dependencies.

Configurations Enhancements

Update Apache Ignite configuration via configuration files to support external files (outside IGNITE_HOME) with external paths (outside IGNITE_HOME too) to persisted between version upgrades directories (work, log, etc.)


Risks and Assumptions

Proposed changes will require one time re-setup of Apache Ignite instance as well as constructing updated ignite.sh run command.
Next version upgrade will require only running the same ignite.sh run command from new version binary.

Discussion Links

// Links to discussions on the devlist, if applicable.

Reference Links

// Links to various reference documents, if applicable.

Tickets

// Links or report with relevant JIRA tickets.

  • No labels