This page details a list of projects students may be interested in, which relate to Infinispan. They are often standalone, or minimally dependent on core Infinispan internals, often research-oriented or experimental in nature. Contributors interested in working on these should get in touch with the Infinispan developer community via IRC or via the developer mailing list and suggest proposals and discuss solutions.
ISPN-5185 - Add topology headers to the RESTful server
Hot Rod REST server could return topology information using HTTP headers. The information could be used by intelligent REST based clients to go directly to node which has relevant data.
ISPN-5186 - Implement a topology-aware RESTful client
This task is related to ISPN-5185. Topology information might be easily used for optimal routing for HTTP protocol.
ISPN-5188 - Support for JSON as indexable/queryable objects using the ProtoBuf schema definitions
The biggest challenge for this task is to introduce a JSON marshaller so that JSON values can be indexed and queried using the ProtoBuf schemas.
ISPN-5189 - Add a default compute function to the Cache interface
Java 8 has extended the Map interface with computeIfAbsent and putIfAbsent methods to support memoization. We could take this one step further by allowing setting a default mapping function using the Function<? super K,? extends V> signature so that invoking a get operation on a non-existent or expired entry will compute it and store it in the cache.
ISPN-6830 - Implement topology changes updates in Python client
Hot Rod protocol is a binary, platform independent, protocol created to enable clients to communicate with Infinispan servers. Hot Rod protocol clients can receive, as part of operation responses, cluster topology update information. The aim of this task is to implement this logic in Hot Rod's Python client.
ISPN-6831 - Implement topology changes updates in Ruby client
Hot Rod protocol is a binary, platform independent, protocol created to enable clients to communicate with Infinispan servers. Hot Rod protocol clients can receive, as part of operation responses, cluster topology update information. The aim of this task is to implement this logic in Hot Rod's Ruby client.
ISPN-6832 - Proof of correctness for complex distributed patterns
While the Java/Scala code in Infinispan is not overly complex, it's not suited for reasoning on the consequences of often-needed changes in the codebase. It would be very useful to be able to define patterns in an ad-hoc meta language, and provide a proof correctness of the patterns it uses, or at least proof the events it should avoid can not happen.
ISPN-6833 - Visualization and tracing of messages between nodes
We know what kind of messages should be generated between nodes to perform specific operations - in theory -, still to debug problems of configuration or implementation on the whole stack (application + Infinispan + JGroups) we often need to look into the logs, having thousands of trace lines even when sampling for small periods of time.