On Thu, Jun 07, 2007 at 10:02:03PM -0400, Peter Amstutz wrote:
> On Thu, Jun 07, 2007 at 07:31:42PM -0400, Reed Hedges wrote:
> > 
> > How do listener notifications fit in with the S5 
> > vobject-as-logical-thread idea? I'm thinking specifically about impact 
> > on ability to scale number of objects that one listener is listening to. 
> Well, my primary concern with the listener system is that if you are 
> interested in a large number of vobjects, the s4 model of adding a 
> listener to each vobject individually has a lot of overhead and 
> redundancy.  However, because we want to be able to support multiple 
> worlds hosted in the same process (or a world segmented over multiple 
> sectors) it's not desirable to broadcast every update to every 
> potentially interested party.
> The general strategy I have in mind is to have updates sent to some 
> intermediate vobject that represents a group of vobjects.  Then becoming 
> a listener to that intermediate vobject would be sufficient to be able 
> to listen to the entire group.

Seems that this kind of relay or chaining can easily be created just by
creating vobjects to do the relaying. Then you can structure it however you
want.  In doing some hypervos stuff I am creatingsome general purpose listener
tools. Most of them will also be MetaObjects so thy cane be created remotely.

> > I wonder if we want to enrich the core listener types in S5 a bit, by 
> > adding conditions that can be checked before sending a notification for 
> > example.
> The main challenge with conditions is you either have to define a fixed 
> set of predefined conditions, or create a minilanguage in which you 
> write your arbitrary conditional expression.  Easier said than done, in 
> other words.

I think it would be a very useful feature. But we should postpone it until we
have more real world examples of what kinds of conditions would be required.
It's really just an optimization; but I've noticed two things: commonly the 
very first
thing that a listener does (or ought to do) is doa check on a new object's
cname or type, or on a property's data type; and that if you really want to have
dynamic response to vobject changes in an applications, you need to use a couple
layers of the current listeners (e.g. listen for children, then add a type
listener to new children with certain names, then add new listeners such as
property listeners in response to a type change), and it would be easier to make
very dynamic, event driven stuff if some of those more complex conditions were
available out of the box, and done efficiently.

But yeah, wait on this as a future refinement, need more data to determine how
to go about it.


vos-d mailing list

Reply via email to