Skip to content

Proposal: Add features to make OpenDDS a viable implementation technology for a distributed cache

Justin Wilson edited this page Nov 17, 2023 · 1 revision

A DDS is a form of distributed cache and one could use it in situations where one would use memcached, redis, kafka, etc. For this proposal, I would like to take an exemplar and see what it would take to implement that exemplar with OpenDDS. Some issues that I think would need to be addressed are:

  • Data ownership - DDS has very strict ownership semantics. How could we implement a system on top of OpenDDS with looser ownership semantics?
  • Replication - Similar to the ownership question, how can data be replicated for failover, scalability, etc.?
  • Persistence - How can data that requires persistence be persisted?
  • Pull vs. Push - OpenDDS is based on a push model, i.e., once you subscribe, all of the data is pushed to you. In a pull model, a read may block while data is requested from the writers of that data. Alternatively, the existing mechanisms could be used and the reader would just convey the instances that it was interested in.