log-structured file systems vs heap-allocated frames

During a discussion with a co-worker, the similarities between log-structured file systems and heap-allocated stack frames came up. They're basically the same concept, except that the former is optimized for disks, while the latter is optimized for memory. The first is useful for supporting transactions against a persistent store, while the second is used to support multi-shot continuations. This suggests that there's probably some insight in here where you realize that continuations and transactions are, in some larger sense, really the same thing.

In particular, consider that heap-allocated stack frames preserve the lexical state, but not the global state. Is there some analog to this concept for transactional systems, where some data is held constant per-transaction, but other data is shared globally? In the context of continuations this distinction makes sense -- the local state is essentially just flow control information -- but I'm not aware of any analog to flow control in transactional systems.

There's this paper on composable memory transactions, which is basically a log-structured store for functional programming languages. But because functional programming languages don't have side effects, the distinction between global and local state doesn't really apply here.

Hmmm.

Posted on April 13, 2005 10:49 AM
More programming articles

Comments

Related to Zipper as a delimited continuation, maybe? Surely seems like the same thing to me.

Posted by: Shae Erisson at April 30, 2005 10:46 PM
Post a comment









Remember info?




Prove you're human. Type "human":