Presentation is loading. Please wait.

Presentation is loading. Please wait.

Distributed Shared Memory Using The.NET Framework Thomas Seidmann Department of Computer Science and Engineering Faculty of Electrical Engineering and.

Similar presentations


Presentation on theme: "Distributed Shared Memory Using The.NET Framework Thomas Seidmann Department of Computer Science and Engineering Faculty of Electrical Engineering and."— Presentation transcript:

1 Distributed Shared Memory Using The.NET Framework Thomas Seidmann Department of Computer Science and Engineering Faculty of Electrical Engineering and Information Technology Slovak University of Technology seidmann@dcs.elf.stuba.sk http://www.cdot.ch/thomas/

2 Building distributed applications with.NET (1) (lower-level) socket programming.NET Remoting Web Services Concentration on RPC-style client/server relationship Remote access to shared objects (methods, properties) provided by a server (UDDI, manual discovery) Middleware for distributed objects

3 Node 1 Node 2 Server

4 Building distributed applications with.NET (2) Desired scenario: peer.NET applications collaborate on a set of shared objects Replication of objects Local access to methods (and properties) Provide the notion of objects shared among peer.NET applications Semantics of an object based DSM (Distributed Shared Memory) – coherence!

5 Node 1 Node 2 Node 3 Node 4 coherence protocol

6 Consistency model and coherence protocol Causal consistency model Multiple Reader Multiple Writer (MRMW) Write-update protocol Multicast transfer of diffs between nodes Causality relationship achieved by vector logical clocks - Associative array of pairs (PID, value) Shared object identification with a GUID

7 DSM Implementation Outline Mechanism for obtaining the state of a shared object Registration of every change of a shared object in a local storage Listening to changes made by remote nodes and to object state queries

8 DSM Implementation Outline Mechanism for obtaining the state of a shared object serialization Registration of every change of a shared object in a local storage interception Listening to changes made by remote nodes and to object state queries coherence thread

9 Serialization, Interception [serializable] Binary serialization formatter TransparentProxy RealProxyDSMProxy Method Entry: object diff storage cheched Method Exit: diff calculated; if nonzero, then added with the vector logical clock value to the storage

10 Coherence Thread Accesses object diff storage and the shared object via its DSMProxy Performs state changes according to remote write update messages Sends write update messages Requests other nodes to send write update messages (new shared object, timeout)

11 DSM Implementation Overview

12 Multicast Channel Service Object diffs transported with.NET Remoting Built-in channels are TCP-based IP-Multicast uses UDP as transport protocol UdpChannel, Implements IChannel

13 Programming Model for Shared Objects (1) Descendant of ContextBoundObject Must be serializable Annotated with ProxyAttribute specifying McastDSM.DSMProxy (State-Modifying public methods annoted with McastDSM.ModifiesStateAttribute)

14 Programming Model for Shared Objects (2) using System; using System.Runtime.Remoting; using System.Runtime.Remoting.Proxies; using McastDSM; [Proxy(DSMProxy)] [serializable] public class MySharedObject : ContextBoundObject, ISharedObject { private Guid myGuid = null; public Guid GuidProp { get {return myGuid;} set {myGuid = value;} } public int myMethod(string) { //... do something with string return 0; }

15 Programming Model for Shared Objects (3) using System; using System.Runtime.Remoting; using System.Runtime.Remoting.Channels; using McastDSM; using McastDSM.Channels; public class App { public static int Main(string[] args) { ChannelServices.RegisterChannel ( new UdpChannel()); // Create an instance of a // MySharedObject class MySharedObject myObj = new MySharedObject; myObj.GuidProp = "478280B9-874E-4795-B3C7-05CFDD96CD2C"; myObj.myMethod("Hello World"); return 0; }

16 Conclusions 100% managed code, compatible with Rotor Tested with well-known scientific applications (FFT-3D, Barnes Hut) LAN environment, simulated loss of messages (trafic shaping with FreeBSD) First focus on TRANSPARENCY Comfortable programming model

17 Future Work Second focus is on PERFORMANCE (diff calculation, message throughput) Trade-off between transparency and performance Other serialization formatters are being considered (SOAP) – might provide better diffs SOAP together with XML aware compression (XMill)?

18 Thank you very much for your attention http://www.cdot.ch/thomas/


Download ppt "Distributed Shared Memory Using The.NET Framework Thomas Seidmann Department of Computer Science and Engineering Faculty of Electrical Engineering and."

Similar presentations


Ads by Google