Next in thread → Next in month →

RE: [wsrp-interfaces] Leasing use cases and proposal for 2.0

From
Andre Kramer <>
Date
2004-01-19T08:57:44+00:00
ID
Thread
RE: [wsrp-interfaces] Leasing use cases and proposal for 2.0
Title: [wsrp-interfaces] Leasing use cases and proposal for 2.0

Use of 
a handle may refresh a lease. And in practice, it is likely to do so. The 
main difference seems to be that clients can influence when a grid 
service instance should be considered for garbage collection, rather than just 
the time until which it should not. No strong guarantees are normally given but 
a time-sensitive grid service (e.g. an evaluation license that is supposed to 
run out in 80 days) may enforce the termination time (and not 
auto-renew).

 

I 
agree that both forms of cloning are subject to the same message loss problem 
but in some sense explicit clone (clonePortlet operation) is simpler, as 
the consumer knows that a copy is being attempted (e.g. it could log all lost 
responses for admin report back to a producer).

 

regards,

Andre

  
-----Original Message-----
From: Kropp, Alan 
  [mailto:]
Sent: 17 January 2004 
  00:18
To: Andre Kramer; 
  
Subject: RE: [wsrp-interfaces] 
  Leasing use cases and proposal for 2.0

  
Do I 
  understand the grid leasing concept correctly?  It's a hard expiry, not 
  related to the last time the handle was accessed, right?  So that even if 
  a Consumer has been actively sending requests using a portlethandle that has a 
  3 month lease on it, when the lease is up the handle gets gc'ed, unless the 
  Consumer explicitly requests (and is granted) an extension for the 
  lease.

  
 

  
And 
  <alank>inline</alank>...

  
 

  
 

  
    
-----Original Message-----
From: Andre Kramer 
    [mailto:]
Sent: Friday, January 16, 2004 
    3:12 AM
To: 
    
Subject: [wsrp-interfaces] 
    Leasing use cases and proposal for 2.0

    
State maintenance using a "leasing" 
    concept: 
[10] Cary G. Gray and David 
    R. Cheriton. Leases: An Efficient Fault-Tolerant Mechanism for Distributed 
    File Cache Consistency. In Proceedings of the 12th ACM Symposium on 
    Operating Systems Principles, December 3-6, 1989, pages 202-210. 

    
or lifetime management through timeout based 
    renewal mechanisms (explicit operations or implicit through use) is a very 
    common way to manage state in the presence of failures in distributed 
    systems (Java's Jini, Microsoft's .NET Remoting). In fact, we already use 
    implicit leases and "soft state" via WSRP 1.0 Session Handles and possibly 
    (at the implementation level) cookie-based Application Server http 
    Sessions.

    
However, consumer registrations and portlets 
    lifetimes are currently only scoped by explicit deletion (deregister and 
    destroyPortlets operations). This leads to resource reclamation problems in 
    several scenarios:

    
If a consumer goes down and never recovers, a 
    producer may be unable to reclaim registrations and portlet handles and 
    associated resources. And doing so would probably require administrator 
    intervention: consumer admin to report or confirm failure and producer admin 
    to manually delete all registrations held by a consumer (portlets may then 
    be garbage collected simply).

    
If a consumer represents a "virtual organization" 
    then WSRP handles may be forwarded to fairly autonomous consumer entities 
    but created centrally in the organizational domain (delegated 
    administration) and they may even be shared between several semi-independent 
    entities at any one time. Handle destruction then becomes a fairly difficult 
    distributed garbage collection problem.

    
Our clone on write mechanism could also easily 
    lead to handle leakage bugs or errors (say if a consumer crashes or does not 
    get a performBlockingInteraction response  due to network failure). How 
    does a producer know that the consumer has received the reply from a 
    "clonePortlet" operation? Should it drop the handle if no getMarkup on the 
    new handle after some time? What if the consumer is staching away handles 
    for later future use?
<alank>clone on write handles should be handled 
    identically to handles that result from an explicit call to clonePortlet, I 
    think.</alank> 

    
Furthermore, significant confusion exists over 
    the requirements on what to do when a deregister() or destroyPortlets() 
    operations fails at the network level, even in WSRP 1.0. The consumer should 
    re-try at a later time but for how long? What if the producer is down for 
    some length of time and the consumer gives up before the producer comes 
    back?

    
Producers could just unilaterally destroy handles 
    when not used for some extended period of time (and I suspect some 1.0 
    systems will want to do this) but we have no standard way to advertise this 
    fact, or the nominal expiry period, through producer meta-data. That would 
    be the minimum useful addition we could make to address the above scenarios. 
    A consumer must then periodically make use of some operations to keep alive 
    handles.

    
However, rather than invent our own leasing 
    concept, an alternative approach would be to view WSRP registration and 
    portlet handles as OGSA (www.ggf.org) Grid Service handles (resolvable to 
    grid service instance references through which a standard (OGSI) "Grid 
    Service Interface" (SOAP/WSDL based) can be invoked). This interface 
    features the following operations:

    
requestTerminationAfter() - i.e. not before some 
    (possibly infinite) time period 
requestTerminationBefore() - i.e. not after some (possibly infinite) 
    time period 

    
The currently set terminationTime is available as 
    grid service data (similar to our WSRP properties). 

    
see: http://www.ggf.org/ogsi-wg 
https://forge.gridforum.org/projects/ogsi-wg/document/Final_OGSI_Specification_V1.0/en/1 
    

    
A consumer and producer would have to agree that 
    our handles represent Grid Service Handles (GSHs) and handle values (the 
    strings) must be resolvable to Grid service references (a WSDL doc 
    typically) by some agreed mechanism (using a Grid "HandleResolver" which 
    seems to be an underspecified area of the current Grid specifications 
    :-(.

    
A consumer can then resolve a WSRP handle (think 
    of this as casting the handle to a wsdl stub / proxy for a GridService 
    portType) and negotiate a leasing contract with a producer. Note that, 
    handles need not be backed by full grid service "objects" but can be 
    emulated by a container, so we add little cost and that the Grid specs allow 
    the lifetime of one handle to scope another (as would be the case for our 
    portlet handle scoped by a registration). We could make a portlet grid 
    service reference its "parent" producer grid service to ease discovery 
    etc.

    
For further motivation (of lease based lifetime 
    management) from the Grid see: http://www.globus.org/research/papers/ogsa.pdf section 
    6.3.

    
regards, 
Andre 

    
PS OGSI could also be used for portlet properties 
    / metadata and (asynchronous) notifications.
Next in thread → Next in month →