Re: Questions on activities

From: Geoffrey M. Clemm (geoffrey.clemm@rational.com)
Date: Fri, Apr 21 2000

  • Next message: Michelle Harris: "Re: Questions on activities"

    Date: Fri, 21 Apr 2000 00:06:12 -0400 (EDT)
    Message-Id: <200004210406.AAA25161@tantalum.atria.com>
    From: "Geoffrey M. Clemm" <geoffrey.clemm@rational.com>
    To: ietf-dav-versioning@w3.org
    Subject: Re: Questions on activities
    
    
       From: Jim Whitehead <ejw@ics.uci.edu>
    
       if the activities are kept as a flat list in a single collection,
       this listing could have hundreds or thousands of entries.  Trial
       and error doesn't seem right either.  What if two clients decide to
       use the naming scheme "activity{activity #}", as in "activity0001",
       "activity0002", etc.  Then if a new client comes along, it'll try
       "activity0001" --> nope, already taken.  OK, try "activity0002" -->
       nope, sorry again, keep trying. For a large number of activities,
       1,000 (or insert your favorite large number here) requests later
       it'll say, "OK, here you go, you finally picked a free name".  Or,
       the client could simply say, "dear server, please assign me a
       unique name following your naming conventions". 1 request, 1
       response, much more predictable behavior.
    
       > I think you make a very good point.  Any suggestions on how to
       > marshal this kind of request?
    
       I think the MK* method could be submitted to the enclosing
       collection, and the semantics of the method would be to generate a
       new unique name, and in the response return the name that was
       selected.
    
    That's OK with me.  Anyone object?  I believe this applies only to
    activities, of which there is an ever increasing number.  I believe
    workspaces should have a client requested name, since old workspaces
    will be cleaned up periodically.
    
        having the rationale for DAV:needed-activity-set be the recording of
        dependent activities makes sense.  But, it seems to me that this
        could potentially get us into trouble.  I think there is a lot of
        policy that surrounds the successful use of this property, and we
        need to provide some guidance on how to use it.
    
        For example, the tendency is for this activity to grow without
        bounds, since over time every new change will be dependent on a
        large number of other changes.
    
    I haven't seen this happen in practice.  A given change is usually
    applied to a particular workspace, with no specific other activity
    that it depends on.
    
        There needs to be some way to take a snapshot and say that, as of
        this snapshot, all dependencies have been accounted for. After the
        snapshot, the dependency tree can start being built again.
    
    I don't think users will be building many dependency trees.  Every so
    often they might say "you need this activity in order to use this other
    one", but that's about it.
    
       my concern here is twofold:
    
       a) complicated features in WebDAV that aren't anywhere even as complex as
       this (e.g., shared locking, writing properties) haven't been used, and I
       think one reason is that not enough guidance was provided.  Without any
       guidance on how clients should make use of this feature, I don't think it
       will be used at all.
    
    I don't see that the DAV:needed-activity-set is complex.  The only
    semantics are that if you MERGE an activity, the MERGE is also applied
    to all the DAV:needed-activity-set of the activity.
    
       b) If clients do end up using the feature, I'm concerned they might choose
       mutually contradictory (or perhaps just merely interfering) policies on its
       use.
    
    I've never seen this problem arise in activity-based systems, so I
    guess don't share your concern.  Has anyone ever experienced this kind
    of activity dependency bloat in a versioning system?
    
    Cheers,
    Geoff