Skip to content

2011 12 1 objpersistance

Orran Krieger edited this page Dec 1, 2011 · 1 revision

who: Jonathan and Orran

We had a wide ranging discussion on how persistence, distribution, failure ties into our OO model, the translation table, and the role of the root object.

Key takeaways:

  • The use of a root object is much less baked than we tended to use them in K42. One of the values of root in K42 was a way to hang our hat as primordial source of shared data, initialization data, .... That is much less important/relavent in a distributed system, where any instance of an object can fail.
  • It is language specific the programming model, but in some cases there will be a logical root object, in other cases an EBB will just provide the EBB infrastructure with a set of callbacks to handle particular protocal events (e.g., a miss)
  • An EBB is a Chimera, made up of a bunch of different types of objects, rather than what we typically did in K42 where representatives where homogenous.
  • We talked bunch about persistence:
    • In K42 we had translation table for clustered objects, and then implemented hash tables ... inside EBBs. We then realized that we had another implementation of a distributed hash table in the translation infrastructure itself.
    • In EBBOS, we will be exploiting low-level HW specific features of networks, translation HW... to optimize translation hash function. We will also require a much better model than we had in K42 to distribute state... to handle failures.
    • the Intuition is that we should have one highly tuned set of core mechanisms, with HW accelleration.. think of it as a meta-protocal. The on a per EBB basis we can have specific protocols to store the state of specific object, incorporating the domain specific knowledge where an expert programmer wants to. When I understand my data, can create a very different protocol that understands the nature of their data.
    • The EBB location, miss handling, is just another consumer of the low-level meta-protocol.
    • Think of it as a big key-value store, where the ID of a tranlation entry is the key, and the thing pointed to is the data being stored.
Clone this wiki locally