...
Integration Name | +1 (explain if needed) | -1 (with explanation) | ||||
---|---|---|---|---|---|---|
Denis Magda - that's a side project for apps that use Twitter. | ||||||
ZeroMQ | Denis Magda - low usage, better to have as an independent Github project that can be maintained by anybody. | Alexey Zinoviev - all streaming tools/modules should be kept in one place (as part of AI or as Streaming AI separate project) | ||||
RocketMQ | Denis Magda - low usage, better to have as an independent Github project that can be maintained by anybody. | Alexey Zinoviev - all streaming tools/modules should be kept in one place (as part of AI or as Streaming AI separate project) | ||||
Storm | Denis Magda - low usage, better to have as an independent Github project that can be maintained by anybody. | Alexey Zinoviev - all streaming tools/modules should be kept in one place (as part of AI or as Streaming AI separate project) | ||||
Flume | Denis Magda - low usage, better to have as an independent Github project that can be maintained by anybody. | Alexey Zinoviev - all ETL tools/modules should be kept in one place (as part of AI or as ETL AI separate project) I mean that Flume is tool for loading big datasets to AI | ||||
Flink | Denis Magda - low usage, better to have as an independent Github project that can be maintained by anybody. | Alexey Zinoviev - all streaming tools/modules should be kept in one place (as part of AI or as Streaming AI separate project) | ||||
MQTT | Denis Magda - low usage, better to have as an independent Github project that can be maintained by anybody. | |||||
Camel | Denis Magda - low usage, better to have as an independent Github project that can be maintained by anybody. | |||||
Hibernate | Denis Magda - Spring Data gets much bigger adoption for Ignite deployments. Don't see a lot of traction with Hibernate. It's hard to maintain it in various variations - Ignite goes with several modules of different versions. Better to have as an independent Github project with forks for specific Hibernate versions. | Alexey Zinoviev - I suppose it's useful feature for wide adoption among Java Devs who use AI not like cache, but like database | ||||
JMS | Denis Magda - low usage, better to have as an independent Github project that can be maintained by anybody. | Alexey Zinoviev - all streaming tools/modules should be kept in one place (as part of AI or as Streaming AI separate project). Also, I didn't see the Kafka Integration in this list | ||||
AOP-Based Grid | Denis Magda - low usage, better to have as an independent Github project that can be maintained by anybody. Alexey Goncharuk Maybe drop it at all because moving this into a separate project may be a pain - a lot of internal API usages | |||||
JSR-107(JCache) | Denis Magda - don't see any value in supporting this JSR rather than claiming that specification. It's better to have much cleaner Ignite key-value API without any dependencies influenced by the specification. | Alexey Zinoviev we should ask about that question the user-community, I have heard many times that that the JCache implementation is important for Java Devs Ivan Pavlukhin It is quite natural for me to imagine integration with Ignite using some kind of standard API. The situation with JCache is similar to JDBC. AFAIR Spring has a JCache integration. If we are going to evolve caching trait then we should support easy integartion with Spring. If there alternatives to JCache then we should consider them. | ||||
OSGi | Denis Magda - this integration is already broken and badly maintained. Haven't come across anybody who uses OSGi in the projects Ignite is targeted for. | |||||
YARN | Denis Magda - not sure it's | OSGi | Denis Magda - this integration is already broken and badly maintained. Haven't come across anybody who uses OSGi in the projects Ignite is targeted for. | YARN | Denis Magda - not sure it's useful any longer and should be supported by the community. Alexey Zinoviev What was the purpose of this integration? | |
Mesos | Denis Magda - not sure it's useful any longer and should be supported by the community. Alexey Zinoviev What was the purpose of this integration? | |||||
.NET: Legacy Entity Framework and ASP.NET integrations | Denis Magda - outdated, needs to be replaced with a new one version. Pavel Tupitsyn integrations with legacy technologies; also blocks .NET Core migration | |||||
Scalar | Alexey Goncharuk Not used, brings unnecessary dependency on scala, adds library conflicts |
...
As part of the modularization, that needs to be considered for Ignite 3.0, it's worthwhile listing all the APIs that the community is planning to remove in Ignite 3.0. The APIs can belong to both Ignite core and modules that will stay in Ignite and will be officially supported by the community:
API | +1 (explain if needed) | -1 (with explanation) |
---|---|---|
Already deprecated APIs | ||
Local caches | Alexey Kuznetsov Can we "emulate" local cache by partitioned with "node filter to one node"? Alexey Goncharuk Local cache is meaningless in a distributed system, especially when a transaction is involved: suppose a prepare step completed and a node with local cache goes down. According to 2PC, we cannot proceed until the node goes up again | |
Spatial indexes | Denis Magda - the API is broken and not suited for production. Can be designed from scratch with Ignite 3.1 and 3.2. | Alexey Zinoviev It could be removed only in the 3.1 then the new implementation will be provided in other case we will poor with indices |
Full-text search | Denis Magda - the API is broken and not suited for production. Can be designed from scratch with Ignite 3.1 and 3.2. | Alexey Zinoviev It could be removed only in the 3.1 then the new implementation will be provided in other case we will poor with full-text indices |
Checkpointing SPI | Denis Magda - Ignite caches/tables can be used to store the checkpoints. This API is redundant. | |
Ignite.lock | Alexey Goncharuk The distributed lock concept is broken (see corresponding Aphyr video). The usual lock usage pattern is lock - update cache - unlock. The same semantics can be achieved using pessimistic transactions with keys locking, but instead, for an end-user, it is clear how lock can fail in a distributed system (transaction rollback). Pavel Kovalenko Very fragile API. Not tested well. Some failures can lead to unavailability of controlling such locks. Can be returned back and reworked after implementation of some consensus algorithm like Raft. | Denis Magda - unless an alternate solution is provided as part of existing Transactional APIs. There has to be a clear migration guide for Ignite.lock customers. Alexey Zinoviev It could be removed only in the 3.1 then the new implementation will be provided |
Cache.lock | Alexey Goncharuk Same arguments as with Ignite.lock, but even more redundant API | Alexey Zinoviev It could be removed only in the 3.1 then the new implementation will be provided |
Ignite Data Structures | Pavel Kovalenko Can |
be marked as not safe and reworked after implementation of some consensus algorithm like Raft. Ivan Pavlukhin The implementation quality is really not sufficient. As for me data structures in current flavor should not be used in production. We can deprecate current implementation as a first step. Later on we can add all necessarry implementations as they are ready and a required development effort seems not trivial. | Denis Magda - that's basic functionality of every IMDG and in-memory cache. We can't remove it. Instead, let's plan through activities that improve or reconsider current implementations. Alexey Zinoviev Agree with Denis Magdaalso we should extend the list of basic structures (ready to help) | |
GAR files | Denis Magda - to be replaced with JARs | |
"Force server mode" for client nodes | Denis Magda - don't see any value any longer. Alexey Goncharuk Already deprecated | |
Daemon nodes | Denis Magda - Visorcmd has to be preserved and updated to another protocol Alexey Kuznetsov - Visorcmd should be merged with controls.sh | |
CacheRebalanceMode.NONE and Rebalance Delay | Denis Magda - it can break data consistency in a cluster. Also, remove force rebalance mode as it can be used only if rebalance delay is set. Alexey Goncharuk The mode does not make sense, cannot be explained to an end-used | |
Indexing SPI | Denis Magda - it's highly unlikely that anybody used this. The community supports all the querying engines on its own. | |
QueryEntities and Annotations based configuration of SQL | Denis Magda - Alexey Goncharuk is going to propose an alternate API that unites these concepts. Sergey Kozlov - require full redesign, it should be fully compatible JDBC SQL and visa-versa | |
@CentralizedAffinityFunction | Alexey Goncharuk This API is no longer needed after exchange merge was introduced | |
IgniteCache localPeek/localEntries | Ivan Pavlukhin These methods look more like a debug stuff and have confusing semantics. At least should be moved outside of IgniteCache facade. |
...