Kratika Agrawal created IGNITE-28699:
----------------------------------------

             Summary: External Store / CacheStore SPI: no read-through / 
write-through in Ignite 3.x (regression from 2.x)
                 Key: IGNITE-28699
                 URL: https://issues.apache.org/jira/browse/IGNITE-28699
             Project: Ignite
          Issue Type: Improvement
          Components: storage engines ai3
         Environment:  **Apache Ignite:** 3.1.0 (migrated from 2.17.0)
- **JDK:** Java 21 (LTS), `--enable-native-access=ALL-UNNAMED` required for 
module access
- **Topology:** Multi-node clusters; tested with 2-node and 3-node 
SharedNothing deployments,
  co-located on a single host as well as across hosts. `raft.fsync=true` 
auto-enabled for
  SharedNothing to survive ungraceful restarts.
- **Storage profiles:** Mix of `aipersist` (persistent) and `aimem` (in-memory) 
regions per
  table. External backing stores in use: Cassandra, Oracle, JDBC, custom DAO.
            Reporter: Kratika Agrawal


### Problem

Ignite 2.x exposed `CacheStore<K,V>` (load / loadAll / write / writeAll / 
delete) plugged in via
`CacheConfiguration.setCacheStoreFactory(...)` + `setReadThrough(true)` / 
`setWriteThrough(true)`.
This let applications integrate Cassandra, Oracle, JDBC, or custom stores as a 
transparent
backing store: a cache miss called `load(key)`, a `put` called `write(entry)`, 
etc.

Ignite 3.1.0 removed both the `CacheStore` interface and the 
`CacheConfiguration` SPI used to
register it. There is no documented replacement in the Table / KeyValueView / 
RecordView APIs.

### Ask

1. **Restore an equivalent SPI** on `Table` / `KeyValueView`: e.g.
   `tableConfiguration.cacheStoreFactory(...)` with `load(key)` / 
`write(entry)` / `delete(key)`
   hooks fired by the storage engine on miss / put / remove.
2. If a restoration is out of scope, document the intended 3.x pattern for 
"external system
   of record + Ignite cache" deployments. Today's options
   (custom interceptors? compute jobs? application-side wrappers?) are not 
specified.
3. Is this a regression — 2.x users migrating to 3.x lose a first-class 
integration
   point with no documented path forward.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to