- 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)
ForceKeyRequests and related code. Since we have Late affinity assignment and primary node partitions are always up to date we don't need to request actual data from backups
@CentralizedAffinityFunction and related code. I don't see any real usages of custom affinity functions that use this annotation
Leave Exchanges Merge + Late Affinity assignment as the only PME protocol. Remove centralized affinity distribution in case of node left and no merge exchange legacy modes
CacheRebalanceMode.NONE and Rebalance Delay as it can break data consistency in a cluster. Also, remove force rebalance mode as it can be used only if rebalance delay is set
- .NET: Legacy Entity Framework and ASP.NET integrations
- Daemon nodes
- Near cache - extremely rare deliberate usage, performance issues, slowdowns new features development, a lot of "if near() then skip test" at TeamCity
- DiscoverySpi#failNode and other "for tests only" public methods.
- Redis and Memcached protocols support
- IndexingSpi
- Old Service Grid implementation
- QueryEntity and annotation based indexed types configuration
- CacheFileLocalStore - obsolete, have native persistence now
- Get rid of ignite-shmem
- Get rid of Discovery & Communication compatibility with previous versions (Ignite does not allow heterogeneous clusters).
- Get rid of cache groups, instead provide another way to support large number of caches.
- Get rid of custom affinity support (and other user closures in a configuration as many as possible)