Presentation is loading. Please wait.

Presentation is loading. Please wait.

4 novembre 2005GDS meeting - Rennes1 JuxMem : a multi-protocol architecture Sébastien Monnet GDS meeting.

Similar presentations


Presentation on theme: "4 novembre 2005GDS meeting - Rennes1 JuxMem : a multi-protocol architecture Sébastien Monnet GDS meeting."— Presentation transcript:

1 4 novembre 2005GDS meeting - Rennes1 JuxMem : a multi-protocol architecture Sébastien Monnet GDS meeting

2 4 novembre 2005GDS meeting - Rennes2 Low level layers JXTA & JuxMem core (java/C) JuxMem core ID getComID() Communications send(senderID, tag, message) addTagListener(tag, listener) Search localPublish(adv) remotePublish(adv) localSearch(advTag, advValue, number, listener) remoteSearch(advTag, advValue, number, listener) JuxMem core (Mathieu Jan)

3 4 novembre 2005GDS meeting - Rennes3 Fault-tolerance layer Self-organizing group - provider side (java only) API send(message, level) setMessageEventHandler(handler) join(id) / leave(id) setGMeventHandler(handler) Goals Perform replication Manage group size Deals with failures and new commers Store group ids Flat and hierarchical multicast JuxMem core (Mathieu Jan) Self-organizing group

4 4 novembre 2005GDS meeting - Rennes4 Fault-tolerance layer Self-organizing group - client side (java/C) API send(message) setMessageEventHandler(handler) Goals Data location local and global search data & com id(s) Allocation LDG (cache creation) JuxMem core (Mathieu Jan) Self-organizing group client stub

5 4 novembre 2005GDS meeting - Rennes5 Consistency interface Communication layer - provider side (java only) GDG level sendLockAck(id, msg) sendLockReadAck(id, msg) sendUnlockAck(id, msg) sendUpdateAck(id, msg) sendReadAck(id, msg) sendResetRequest(id, msg) setHandler(gDGHandler) JuxMem core (Mathieu Jan) Self-organizing group CP communications

6 4 novembre 2005GDS meeting - Rennes6 Consistency interface Communication layer - provider side (java only) LDG level setHandler(lDGHandler) Com with GDG sendLockRequest(msg) sendLockReadRequest(msg) sendUnlockRequest(msg) sendUnlockReadRequest(msg) sendReadRequest(msg) sendUpdateRequest(msg) sendResetAck(msg) Com with client sendLockAck(id, msg) sendLockReadAck(id, msg) sendUnlockAck(id, msg) sendUpdateAck(id, msg) sendReadAck(id, msg) sendRlxReadAck(id, msg) sendResetRequest(id, msg)

7 4 novembre 2005GDS meeting - Rennes7 Consistency interface Communication layer - client side (java/C) sendLockRequest(msg) sendLockReadRequest(msg) sendUnlockRequest(msg) sendUnlockReadRequest(msg) sendReadRequest(msg) sendRlxReadRequest(msg) sendUpdateRequest(Message msg) sendResetAck(Message msg) setHandler(clientHandler) JuxMem core (Mathieu Jan) Self-organizing group client stub CP communications

8 4 novembre 2005GDS meeting - Rennes8 Consistency protocol layer LDG/GDG/Client Communication layer counterpart (one receive per send) Client only Memory access acquire() acquireRead() … JuxMem core (Mathieu Jan) Self-organizing group CP communications Consistency protocol

9 4 novembre 2005GDS meeting - Rennes9 JuxMem layers JuxMem core (Mathieu Jan) Self-organizing group provider CP com - GDG GDG CP Self-organizing group client stub CP com - LDGCP com - client LDG CP Client CP

10 4 novembre 2005GDS meeting - Rennes10 JuxMem’s generic objects To help the programmer For consistency ClientProtocolImpl LDGProtocolImpl GDGProtocolImpl For group communication SOGImpl SOGClientStubImpl

11 4 novembre 2005GDS meeting - Rennes11 JuxMem’s selectors Choosing the right implementation For consistency ProtocolSelectorImpl For group communication SOGSelectorImpl // all new protocols should be added there (and theyr identifier in ProtocolConfig interface) public void addProtocols() { addProcotol(ProtocolConfig.FLAT_EC_PROTOCOL, "juxmem.consistency.impl.protocols.flatec.EcProtocolInstanciation"); addProcotol(ProtocolConfig.EC_PROTOCOL, "juxmem.consistency.impl.protocols.ec.EcProtocolInstanciation"); addProcotol(ProtocolConfig.ECRR_PROTOCOL, "juxmem.consistency.impl.protocols.ecrr.EcRRProtocolInstanciation"); }

12 4 novembre 2005GDS meeting - Rennes12 Adding a new protocol Write 3 classes extending the generic ones (client, ldg, gdg) Write a class that instantiate the 3 others Extends ProtocolInstantiation Overload openClientProtocol Overload openProviderProtocol Add it in ProtocolSelectorImpl

13 4 novembre 2005GDS meeting - Rennes13 Using the new protocol During allocation Select the right protocol in the attrib field attrib.putValue(AllocSearchCriteria.NUMBER_OF_COPIES, Integer.toString(y)); attrib.putValue(SOGConfig.SOG_TYPE,Integer.toString(SOGN ames.BASIC_SOG)); attrib.putValue(ProtocolConfig.PROTOCOL, Integer.toString((ProtocolConfig.NEW_PROTOCOL))); …. memID = juxMemService.alloc(SIZE_ALLOC, attrib);

14 4 novembre 2005GDS meeting - Rennes14 Adding / using a new SOG The same way Extend SOGImpl Extend SOGClientStubImpl Add a line in SOGSelector Choose the new SOG in attrib

15 4 novembre 2005GDS meeting - Rennes15 Instantiation Client side Alloc CP instantiation (according to attrib) Search for providers Send allocMsg to providers (wait for acks) ClientCom instantiation SOGClientStub instantiation (according to attrib)

16 4 novembre 2005GDS meeting - Rennes16 Instantiation Provider side Upon allocMsg reception CP instantiation GDGCom & LDGCom instantiation SOG instantiation Send ack back to the client

17 4 novembre 2005GDS meeting - Rennes17 Conclusion Adding a new CP/SOG is easy Different pieces of data can use different SOG/CP Currently available SOG : noRepl, optimist, pessimist CP : flatEC, EC, ECRR


Download ppt "4 novembre 2005GDS meeting - Rennes1 JuxMem : a multi-protocol architecture Sébastien Monnet GDS meeting."

Similar presentations


Ads by Google