Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cdt-dev] EDC and asynchronous operations

Hi Mikhail,

The main purpose of ACPM is to ensure data coherency, which means we
don't want to use old data in computations.

If you combine up-to-date and stale data in one transaction, you can get
invalid or contradictory results, or computations can fail altogether
because of fatal data inconsistency.

We want to be able to avoid that.


-----Original Message-----
From: cdt-dev-bounces@xxxxxxxxxxx [mailto:cdt-dev-bounces@xxxxxxxxxxx]
On Behalf Of Mikhail Khodjaiants
Sent: Tuesday, October 12, 2010 12:05 PM
To: cdt-dev@xxxxxxxxxxx
Subject: Re: [cdt-dev] EDC and asynchronous operations

  Hi Eugene,

> If a client encounter an invalid cache item, it can choose:
>   1. Abort the transaction and return an error.
>   Or 2. Start data retrieval on the item, add the transaction to the 
> wait list of the item, re-run the transaction when item state changes.
> Most clients choose #2.

Maybe I am missing something, but the following scenario is also an
option, isn't it?

1. The cache items are always "valid" for clients regardless of their
internal states. For instance, for a value request the corresponding
cache item always returns the "old" valid value.

2. A cache item can be marked (internally) as invalid. In this case an
internal update will be triggered by a client request. When the internal
update is completed, the cache notifies the clients of changes.

3. When a client receives a notification from the cache it reacts
accordingly (by requesting the new value, for instance).


cdt-dev mailing list

Back to the top