[oslc-core] TRS truncation of change log

Vivek Garg vivekgg at us.ibm.com
Thu May 2 17:29:12 EDT 2013


Hi Joe,

Below I have tried to replay my (and Matt Jarvis's ) understanding of the 
issue you are trying to solve and your proposed solution:

Problem: It may be inefficient to detect truncated change logs in some 
(edge?) cases
When processing a change log, a client may paginate through change log 
segments (pages) looking for the last processed change event or the 
cutoffEvent. For clients that have not recently processed a change log, it 
may mean fetching a large number of change log segments to locate the last 
processed or cutoffEvent. If the change event was found, the effort of 
paginating through the pages is worth it.  But if we were to fail to 
locate the change event after paginating all the pages, it is mostly 
wasted effort.

Some real life scenarios are:
a. A client has been busy processing the base resource for a very long 
time (e.g. for a week). While the base was being processed, the 
cutoffevent change event (latest change event reflected in the base) has 
become a truncation candidate. And server decided to truncate the change 
log including the cutoffEvent.
b. A client has been offline for a long time e.g. 7 days. One online, the 
client may paginate through all the change log pages, only to find that 
change log is missing the last processed change event.

Solution: 
We can provide a fast-fail detection for truncated change logs by 
including (perhaps optionally) the lastEvent in the change log segments. 

Does this accurately reflect the scenario you are thinking about?

Regards
Vivek




From:   Joe Ross/Austin/IBM at IBMUS
To:     oslc-core at open-services.net, 
Date:   05/02/2013 02:24 PM
Subject:        [oslc-core] TRS truncation of change log
Sent by:        "Oslc-Core" <oslc-core-bounces at open-services.net>



The Tracked Resource Set specification, states the following:
"To ensure that a new Client can always get started, the Change Log MUST 
contain the base cutoff event of the corresponding Base, and all Change 
Events more recent than it. Thus the Server is only allowed to truncate 
Change Events older than the base cutoff event. "

However, since processing of the change log would happen some time after 
the base was read, it is possible that truncation happens between the time 
that a client reads the base and the time that it starts processing the 
change log. Truncation could also happen while a client is paging through 
the change log. In that case, it would be useful for a client to know 
about the truncation event before processing the entire change log, so 
that it can switch gears and obtain a new base snapshot instead. It seems 
that it might be useful if each page of the change log also included a 
lastEvent property. If at some point during change log processing, 
lastEvent becomes more recent than the cutoffEvent value that client 
knows, the client could then abandon change log processing and obtain a 
new base snapshot instead.

Of course, we can add this property in our implementation, but seems it 
might be useful as an addition to the spec.


================================================
Joe Ross/Austin/IBM, joeross at us.ibm.com
Tivoli Autonomic Computing & Component Technologies
512-286-8311, T/L 363-8311_______________________________________________
Oslc-Core mailing list
Oslc-Core at open-services.net
http://open-services.net/mailman/listinfo/oslc-core_open-services.net

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://open-services.net/pipermail/oslc-core_open-services.net/attachments/20130502/13af27f8/attachment-0003.html>


More information about the Oslc-Core mailing list