dev@shoal.java.net

Shoal DSC(distributed state cache)'s consistency question

From: Bongjae Chang <carryel_at_korea.com>
Date: Sat, 9 Feb 2008 19:07:21 +0900

Hi all. I'm a beginner in Shoal Project.

Recently, I have reviewed Shoal's source code because I am interested in Generic Clustering Framework.

I know DSC uses point-to-point communication(JXTA) with all instances for reliablity.

following Shoal's source code is a message sending part in GroupCommunicationProviderimpl.java
---
public void sendMessage(...) {
    ...
    List<String> currentMembers = getGMSContext().getGroupHandle().getAllCurrentMembers();
    for (String currentMember : currentMembers) {
        ...
        clusterManager.send(id, message);
    }
    ...
}
---

The above, I have a question in DSC(distributed state cache, default implementation)

Does Shoal DSC guarantee data consistency for same group?

for example,
Current members consist of A, B and C.
When A send a message(key="a", value="1") to the group,
B send another message(but same key, key="a", value="2") to the group at the same time.
At this time, can the group memers(A, B, C) view same value about key="a" in DSC? (all "1" or all "2" )
I think it doesn't matter about value(whether "1" or not), but it's important whether group members have same view concurrently or not.
And does DSC guarantee Atomicity?(All sent or not)

If DSC guarantees consistency and atomicity, please explain the mechanism briefly :-)
Or please let me know the web link about this information.

I need your helps. Thanks!

--
Bongjae Chang