...
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 )
- Remove modules with legacy library versions: hibernate-4.2, hibernate-5.1, spring-data, visor-console-2.10, etc?Remove as many IGNITE_ parameters as possible from IgniteSystemProperties.
- Remove deprecated methods, fields and classes marked with `@deprecated`. Also revive IGNITE-6301 to remove indexedTypes field.
- 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 homebrew 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.
- Get rid of explicit locks outside the transaction.
- 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 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
- 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 nameGet rid of words Ignite, Grid in internal classes. Examples: GridFutureAdapter, GridManager, GridProcessor, etc...
{"serverDuration": 191, "requestCorrelationId": "39c6a5aa2aa2fdd9"}