Distributed Shared Memory Using The .NET Framework - PowerPoint PPT Presentation

About This Presentation
Title:

Distributed Shared Memory Using The .NET Framework

Description:

... Computer Science and Engineering ... properties) provided by a server (UDDI, manual discovery) ... Multicast Channel Service. Object diffs transported with. ... – PowerPoint PPT presentation

Number of Views:28
Avg rating:3.0/5.0
Slides: 19
Provided by: thomass96
Category:

less

Transcript and Presenter's Notes

Title: Distributed Shared Memory Using The .NET Framework


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_at_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
Server
Node 2
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 3
coherence protocol
Node 2
Node 4
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
  • RealProxy DSMProxy
  • 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/
Write a Comment
User Comments (0)
About PowerShow.com