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

Compare with Current View Page History

« Previous Version 19 Next »

General Ideas

  • Rename GridFutureAdapter and other Ignite Core classes that misuse "adapter" term.
  • Remove AbstractFailureHandler.ignoredFailureTypes: critical failures should be handled, not masked. (There is no ideas about how exactly handle unknown errors. Discussion: http://apache-ignite-developers.2346864.n4.nabble.com/GridDhtInvalidPartitionException-takes-the-cluster-down-td41459.html )
  • Make 'pairedConnections' on by default in TcpCommunicationSpi?
  • Implement new BinaryObject with field type changes and constant-time access to constant-length fields.
  • Rename configuration checkpointFrequency to checkpointInterval (or probably other options used Frequency word but really meaning Interval)
  • For all versioned FooBarerV3 classes, etc, remove all previous V2,  versionless classes, make it the only one without V3.
  • Replace home-brewed GridFutureAdapter with standard CompletableFuture.
  • Restructure future interfaces: IgniteInternalFuture should extend IgniteFuture.
  • Support Java9+ Automatic modules ( https://issues.apache.org/jira/browse/IGNITE-11461 ) for all Jars.
  • Reorder modules tree:
    • group ignite-spring, ignite-flume- ignite-spar, iginte-camel, ignite-cassandra into ignite/integrations
    • group ignite-dev-utils, ignite-benchmarks, ignite-tools  into ignite/dev-support
    • etc...
  • Get rid of words Ignite, Grid in internal classes. Examples: GridFutureAdapter, GridManager, GridProcessor, etc...

To Be Removed List

  • Local caches (they are useless but require a lot of time to be supported)
  • Scalar - it is already extremely outdated and noone asks for an update
  • Visorcmd - a node that is always connected to the grid may be a destabilizing behavior; actionable utilities like control.sh make more sense
  • Full text and spacial indexes - they are not persistent; should be rewritten for durable memory later on
  • Schedule module - hardly used, local-only scheduling (same issues as with local cache)
  • Explicit locks outside the transaction - lock concept is broken in a distributed system
  • Modules with legacy library versions: hibernate-4.2, hibernate-5.1, spring-data, visor-console-2.10, etc?
  • Remove current data structures (Lock, Semaphore, Set, Queue). Cache-based implementation leads to configuration issues. May be implemented on top of cache API in an auxiliary library or have an internal cache-free implementation
  • AOP - hard to believe it's used
  • Deprecated metrics - kept only for backward compatibility
  • Checkpoint SPI - regular caches may be used as a storage, no need for another storage abstraction
  • Old thin client and old JDBC connector
  • GAR files - should be replaced with JAR files, no need for tasks scan inside the jar. Also, remove IgniteCompute methods executing tasks by task name
  • Deprecated methods, fields and classes marked with `@deprecated`. Also revive IGNITE-6301 to remove indexedTypes field
  • As many IGNITE_ parameters as possible from IgniteSystemProperties
  • "Force server mode" for client nodes
  • JSR107 (JCache) compatibility (useless but require a time to be supported) 


  • No labels