Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Some of the modules (mainly, integration components and thin clients) can be isolated into separate projects with independent lifecycles.

Cleanup

Ignite 3.0 is a major release, which gives us a unique opportunity to make incompatible changes. This can be used to do a cleanup and remove deprecated APIs and features. Additionally, all APIs should be revisited from this point of view – anything that is not relevant anymore should be removed from the project; some APIs can be reworked and modernized.

TBD: full list of removals.

GraalVM Native Image Support

GraalVM is gaining a lot of popularity, especially in the context of serverless environments and frameworks like Micronaut and Quarkus. Currently, even Ignite thin client blocks software from being built into a native GraalVM image – this needs to be fixed. Preferably, we should support this for thick clients as well, although this is a lower priority and might require much bigger effort.

Cleanup

Ignite 3.0 is a major release, which gives us a unique opportunity to make incompatible changes. This can be used to do a cleanup and remove deprecated APIs and features.

...

Additionally, all APIs should be revisited from this point of view – anything that is not relevant anymore should be removed from the project; some APIs can be reworked and modernized.

List of proposed removals (WIP):

  • *Resource annotations except for the IgniteInstanceResource 
  • Job scheduler API
  • Messaging API (question)
  • Gridify/AOP
  • On-heap cache and eviction policies (question)
  • IGFS and Hadoop Accelerator
  • Indexing SPI
  • Communication and discovery SPIs (should be internal components not exposed to the public API)
  • Checkpoint SPI
  • Mesos and Yarn integrations
  • OSGi integration
  • Local caches
  • Scalar
  • Explicit locks (question)
  • GAR file deployment
  • "Force server" mode for client nodes
  • CacheRebalanceMode  and rebalance delay - should always work in the ASYNC  mode (current default)
  • Daemon nodes
  • Custom affinity functions

Other changes

  • Replace IgniteFuture  with Java's CompletableFuture