Tasks to move JBoss AS from JBC to Infinispan. Goal is to complete critical items by M4.
Distributed locking / session ownership
Determine long-run strategy for sharing access to JGroups Channel
Decouple AS distributed locking code from HAPartition; let us implement it on top of Infinispan RPCManager
Indicate whether lock request required asking another node (as a mechanism to detect failover)
w/ optimization to create a new lock w/o asking another node
- https://jira.jboss.org/browse/JBCLUSTER-268 (Brian)
- Pull distributed locking code out of AS, into a JBCLUSTER project
Replace JBossCache with Infinispan
Create ha-server-cache-ispn project
Define how CM's are exposed (JNDI, service locators, @Install)
Deal with MC dependency issue
Create parser, configuration objects, service
AS CacheManager impl
Figure how to configure desired channel
Figure how to inject desired channel
Improve JGroupsChannelLookup API
Add logic to fail deployments if configured
Remove FIELD from testsuite
Update existing DTDs, schemas to note that it's unsupported in AS 6
Remove methods from ha-server-cache-spi
Remove PojoCacheManagerLocator from ha-server-api
Web sessions via Infinispan
Implement web sessions in ha-server-cache-ispn
- As part of this, we need to be sure to rethink how we clear sessions out of the local distributed cache at war undeploy/deploy. It might be incorrect to clean them out.
JSESSIONID generation that hashes to local storage
ha-server-cache-spi and Impl in ha-server-cache-ispn
ISPN configuration via jboss-web.xml (total replication, num backups, sync/async)
Thought: numbackups -1 == total, 0 == local, > 0 == dist
0 means <distributable/> drives passivation???
Update ha-server-cache-spi (pass through JBossWebMetaData or just relevant bits?)
Using distributed locking / session ownership to prevent concurrent access
Using distributed locking / session ownership to invalidate L1 cache
No-op distributed locking with PersistentManager(Paul)
- not willing to require JGroups channel
- figure out how to load once per request
If session isn't locally stored on node handling it, change jvmRoute on session cookie to indicate a node where it is locally stored
Remove JbossCacheCluster (Tomcat integration)(Paul)
can be kept if trivial to implement in ha-server-cache-ispn; otherwise chuck it
Determine the basic caching strategy
Create equivalent to StatefulTreeCache?
Move to entirely new caching impl?
Ensure ids for newly created SFSB contexts hash locally
Require node to take ownership of session before exposing it to requests
Set replication configuration via @CacheConfig
If session isn't locally stored on node handling it, communicate this to client proxy so it can fail over to appropriate node?
Similar to JBAS-7853
Get rid of AS testsuite dependency on JBC
- Update the Clustering guide!