Path: utzoo!utgpu!watserv1!watmath!att!att!linac!pacific.mps.ohio-state.edu!zaphod.mps.ohio-state.edu!usc!snorkelwacker.mit.edu!mintaka!ai-lab!rice-chex!caroma From: caroma@rice-chex.ai.mit.edu (Carl R. Manning) Newsgroups: comp.object Subject: Re: Stash Collection (Economic models) Summary: Look in "The Ecology of Computation", Huberman, editor Keywords: Economic GC Message-ID: <12080@life.ai.mit.edu> Date: 29 Nov 90 01:18:37 GMT References: <2853@esquire.dpw.com> <2855@esquire.dpw.com> <1990Nov28.075224@Unify.com> Sender: news@ai.mit.edu Organization: MIT Artificial Intelligence Laboratory Lines: 81 In article <1990Nov28.075224@Unify.com> grp@Unify.com (Greg Pasquariello) writes: >I would be interesed in someone posting more information about the >"economic model" mentioned yesterday, whereby objects pay rent, get >evicted, etc. A basic idea of the Agoric (market) model is that large systems which allocate resources through markets (e.g. economies based largely on capitalism) can often make better use of resources than those where planners try to anticipate ahead of time what the resource needs will be (e.g. command economies; programmers & system operators). The theory is that local market prices reflect the actual (not just anticipated) locally available supplies of, and local needs for, a resource, so resource decisions made according to these prices can make better use of the resource. So, as our computer systems become integrated into larger Open Information Systems, perhaps we can best make use of the resources by setting it up as a Market ecology, which doesn't require anyone to understand the overall system in order for it to evolve toward more efficient use of resources. In order to set up markets for resources, we have to build systems which charge for resource use: processing, storage, communications, etc. Part of the cost of using a resource is the overhead for charging and collecting for use of the resource; part of the cost for using market mechanisms is the transaction cost of negotiating prices in the market system. There's a tradeoff between (a) using the market to allocate resources where they're needed most, but taking on overhead and transaction costs, and (b) using a command-style planning to allocate larger amounts of resources ahead of time and avoid the overhead, but risk less efficient allocation since the decisions are based on anticipated resource conditions rather than actual ones. Therefore, in some situations rent will likely be charged for resources at the `agency', `application', or `server' level rather than at the individual object level, just as your company probably doesn't pay rent (or property taxes) on each office individually. In other situations, the transaction/overhead cost of smaller allocations is worth the benefit in flexibility, e.g. you might pay for an object agent to migrate temporarily to a knowledgebase server to make some queries, or to negotiate protocols for future interactions, just as your company can pay for individual hotel rooms in another city when it sends you to a conference or to negotiate a contract. In such a market system, when local demand for a resource rises, the price for that resource will also rise; those uses of the resource who are renting at the market rate will find their costs rising, and if the costs rise high enough, they will have incentive to cut back on the use of that resource, e.g. put things off until later when the price is lower, get rid of large tables of noncritical cached info, move things to cheaper areas (disk or another machine). The market provides *incentive* for doing these things. The price mechanisms provide the local information for making decisions about what to do. They do not provide actual mechanisms for actually doing these things, just the competitive incentive to do them the best way you can figure out how (or be outperformed by competitors). So to get back to stashes... Markets mechanisms can help a system decide when to stash and when to release the stashed info, but by themselves won't help much in figuring out how to implement the stash itself. Enough rambling. Those who are interested might take a look at The Ecology of Computation B.A. Huberman, editor New York: Elsevier Science Publishers, 1988 In particular at the chapters "Markets and Computation: Agoric Open Systems" by Miller & Drexler "Incentive Engineering for Computational Resource Management" by Drexler & Miller If you find the book interesting, you might also find something interesting in the more recent citations at the end of "Primed for Performance", Tad Hogg, June 1990 BYTE, p241 Cheers, CarlManning@ai.mit.edu