Hobby OS projects (by alaric)
At the time I updated the web site, I was leaning heavily towards a classic object-store model for the TUNGSTEN state within an entity, but I'm currently thinking more in terms of a Linda/Prolog/RDF style database of logical assertions, since that seems to be a more general and flexible data model.
Either way, efficient replication in the presence of network partitions is a pain. I want to read more on "extended virtual synchrony" before I settle for one solution over the other. Either way, I'm not planning on creating a perfect illusion of a single machine to the application; for efficiency, I want the application to provides hints as to its access patterns for certain bits of data (so that appropriate quorums can be allocated, etc), and when reading data, to express whether it needs the absolutely most up-to-date state (which may be impossible, if the network is partitioned and we are not in the largest partition; requiring the application to either wait or take an alternative course of action), or whether potentially outdated information will suffice, which can be obtained relatively quickly by asking the nearest mirror without needing to worry about another node somewhere having a more up to date copy.
Likewise, operations that change state need to be packaged into transactions that are as self-contained as possible, so they can be sent off to multiple mirrors of that state and executed in parallel on each, ideally without being bothered by different state changes arriving at different mirrors in different orders. For example, a shared object that is a set - such as a user's cookie database - can accept 'add new element' operations in any order and still produce the same set. However, 'update element' operations to the same element must be applied in the same order on all mirrors to get a consistent result. So applications must, to some extent, express how operations on their persistent states can be rearranged, to avoid the system having to establish global ordering for all operations, which would be inefficient.
By James, Thu 18th Dec 2008 @ 11:13 am
So whens the release? 😛 Wouldn't mind testing this thing with a couple of old forth apps I got kicking around on my drive. -Jim