Cloud Computing - An Emerging Technology & Cloud Computing Models
Orleans Cloud Computing
-
Upload
huzaifa-zafar -
Category
Technology
-
view
265 -
download
1
Transcript of Orleans Cloud Computing
![Page 1: Orleans Cloud Computing](https://reader030.fdocuments.us/reader030/viewer/2022032700/55d11630bb61eb603b8b45ef/html5/thumbnails/1.jpg)
Orleans Cloud Computing
Huzaifa Salman Zafar
![Page 2: Orleans Cloud Computing](https://reader030.fdocuments.us/reader030/viewer/2022032700/55d11630bb61eb603b8b45ef/html5/thumbnails/2.jpg)
Intro to Orleans cloud computing
Cloud computing Diverse clients(pc’s, smartphones, sensors etc.) Computation and data storage in cloud
(cloud=internet) Cloud systems are distributed systems
Distributed systems A distributed system is a software system in
which components located on networked computers communicate and coordinate their actions by passing messages
![Page 3: Orleans Cloud Computing](https://reader030.fdocuments.us/reader030/viewer/2022032700/55d11630bb61eb603b8b45ef/html5/thumbnails/3.jpg)
Message Passing
A type of communication between process
Messages may include functions, signals, and data packets
Works as follows A message is sent to a process Process may be an actor
![Page 4: Orleans Cloud Computing](https://reader030.fdocuments.us/reader030/viewer/2022032700/55d11630bb61eb603b8b45ef/html5/thumbnails/4.jpg)
Actor model
The Actor model was introduced in 1973 by Hewitt, Bishop and Steiger.
Mathematical model of concurrent computation Actor serves as basic building block of
concurrent computation. In response to a message received by actor,
actor can Make local decisions Create more actors Send more messages etc
![Page 5: Orleans Cloud Computing](https://reader030.fdocuments.us/reader030/viewer/2022032700/55d11630bb61eb603b8b45ef/html5/thumbnails/5.jpg)
Grains
Basic programming unit All the code run within grains Isolated units of state and computation Communicate through asynchronous
messages Messages are method calls
asynchronous messages Message is sent and does not need to wait for
reply Opposite of synchronous message passing
![Page 6: Orleans Cloud Computing](https://reader030.fdocuments.us/reader030/viewer/2022032700/55d11630bb61eb603b8b45ef/html5/thumbnails/6.jpg)
Promises
Within a grain, promises are mechanism for Managing asynchronous message passing Local task based concurrency
Concurrent computation Several threads of operation may execute
concurrently
![Page 7: Orleans Cloud Computing](https://reader030.fdocuments.us/reader030/viewer/2022032700/55d11630bb61eb603b8b45ef/html5/thumbnails/7.jpg)
Promises |continued….
Communication between grains Asynchronous message passing Orleans messages are method calls Message call returns immediately with a
promise for a future result An application can bind code to the
promise which will execute when result arrives
it can treat the promise like a future and explicitly wait for a result.
![Page 8: Orleans Cloud Computing](https://reader030.fdocuments.us/reader030/viewer/2022032700/55d11630bb61eb603b8b45ef/html5/thumbnails/8.jpg)
Goals of Orleans
Enable the developers unfamiliar with distributed systems to build large scale applications
That these systems handle multiple orders of large magnitude of growth without requiring redesign or rearchitecture.
![Page 9: Orleans Cloud Computing](https://reader030.fdocuments.us/reader030/viewer/2022032700/55d11630bb61eb603b8b45ef/html5/thumbnails/9.jpg)
Activations
To handle increase load on a grain And to provide higher system throughput
Orleans automatically creates multiple instantiations called activations
The activations process independent requests for the grain, possibly across multiple servers
These activations cannot share memory or invoke each other’s methods
![Page 10: Orleans Cloud Computing](https://reader030.fdocuments.us/reader030/viewer/2022032700/55d11630bb61eb603b8b45ef/html5/thumbnails/10.jpg)
Persistence
A cloud system has persistent state that is kept in durable storage.
Orleans integrates persistence into grains
Persistent grain state means State Changes in one activation of a grain
will be available for subsequent activations of the grain
Multiple activations can modify grain’s state Orleans provides a mechanism to reconcile
changes
![Page 11: Orleans Cloud Computing](https://reader030.fdocuments.us/reader030/viewer/2022032700/55d11630bb61eb603b8b45ef/html5/thumbnails/11.jpg)
Automated Scalability
A service is scalable if increased load can be handled by proportionally increasing server capacity
Techniques used for achieving scalability in orleans Asynchrony and replication
![Page 12: Orleans Cloud Computing](https://reader030.fdocuments.us/reader030/viewer/2022032700/55d11630bb61eb603b8b45ef/html5/thumbnails/12.jpg)
Programming model
Promises Grains execution model Error handling Grain interfaces Grain references Creating and using grains Grain classes
![Page 13: Orleans Cloud Computing](https://reader030.fdocuments.us/reader030/viewer/2022032700/55d11630bb61eb603b8b45ef/html5/thumbnails/13.jpg)
Promises
Orleans uses promises as its asynchrony communication
Promises have life cycle Unresolved (expecting a result in
unspecified time) fulfilled (result is received, value of
promise=result) Resolved(fulfilled or broken is considered
resolved. ). Implemented as .NET types
![Page 14: Orleans Cloud Computing](https://reader030.fdocuments.us/reader030/viewer/2022032700/55d11630bb61eb603b8b45ef/html5/thumbnails/14.jpg)
Grain Execution Model
When an activation receives a request, it processes it in discrete units of work called turns
All grain code execution, runs as a turn Many turns belonging to different
activations may run in parallel But each activation executes its turns
sequentially Hence, execution in an activation is
logically single threaded.
![Page 15: Orleans Cloud Computing](https://reader030.fdocuments.us/reader030/viewer/2022032700/55d11630bb61eb603b8b45ef/html5/thumbnails/15.jpg)
Grain interfaces
Orleans uses standard .NET interfaces to define the interface to grain’s services
Grain References A grain reference is a proxy object that
provides access to a grain. A proxy object acts as an intermediary
between the client and an accessible object. The purpose of the proxy object is to forward calls to the accessible object only if it is not destroyed.
![Page 16: Orleans Cloud Computing](https://reader030.fdocuments.us/reader030/viewer/2022032700/55d11630bb61eb603b8b45ef/html5/thumbnails/16.jpg)
Creating and Using Grains
For each grain interface, Orleans generates a static factory class and an internal proxy class
Clients use the factory classes to create, find, and delete grains.
The proxy classes are used by the Orleans runtime to convert method calls into messages.
![Page 17: Orleans Cloud Computing](https://reader030.fdocuments.us/reader030/viewer/2022032700/55d11630bb61eb603b8b45ef/html5/thumbnails/17.jpg)
Orleans runtime
The mechanisms that Orleans provides for an application is called Orleans runtime
Orleans is a framework for .NET runtime that can be used from any .NET language (C#, F#, etc.
Orleans can run on desktop machines, servers running Windows Server 2008, and the Microsoft Windows Azure cloud
platform.
![Page 18: Orleans Cloud Computing](https://reader030.fdocuments.us/reader030/viewer/2022032700/55d11630bb61eb603b8b45ef/html5/thumbnails/18.jpg)
.NET Framework
Is a software framework developed by Microsoft that runs primarily on Microsoft windows
The easiest way to build apps on the Microsoft platform
Provides Large class library (Framework class library) A software environment known as common
language runtime (CLR) CLR provides security, memory management, and
exception handling etc
![Page 19: Orleans Cloud Computing](https://reader030.fdocuments.us/reader030/viewer/2022032700/55d11630bb61eb603b8b45ef/html5/thumbnails/19.jpg)
Orleans runtime (continued)
The state of a grain is managed by the Orleans runtime initialization, replication, reconciliation, and
persistence The programmer identifies the
persistent state and Orleans handles the rest
![Page 20: Orleans Cloud Computing](https://reader030.fdocuments.us/reader030/viewer/2022032700/55d11630bb61eb603b8b45ef/html5/thumbnails/20.jpg)
Orleans runtime (continued)
Persistence Activate method, Handle requests (operate in
memory) Wait for completion of request , call deactivate Write to persistent storage
Replication An activation is single threaded, so processing is
limited But Orleans uses grain replication –multiple
activations of a grain And achieve elasticity and scalability
![Page 21: Orleans Cloud Computing](https://reader030.fdocuments.us/reader030/viewer/2022032700/55d11630bb61eb603b8b45ef/html5/thumbnails/21.jpg)
Orleans runtime (continued)
Isolation Activations of many different grains, as well as
multiple activations of the same grain are isolated
all activations communicate only through asynchronous message passing and reference each other using grain references (proxy objects).
This allows Orleans to place activations on any server, even across data centers, and migrate activations between servers, in order to balance load
![Page 22: Orleans Cloud Computing](https://reader030.fdocuments.us/reader030/viewer/2022032700/55d11630bb61eb603b8b45ef/html5/thumbnails/22.jpg)
Orleans runtime (continued)
Resource Management growing and shrinking the number of
activations of a grain Requests are initially randomly distributed
to existing activations A request arriving at an overloaded server
is rejected
![Page 23: Orleans Cloud Computing](https://reader030.fdocuments.us/reader030/viewer/2022032700/55d11630bb61eb603b8b45ef/html5/thumbnails/23.jpg)
Orleans runtime (continued)
State Reconciliation If multiple activations of a grain
concurrently modify their persistent state, the changes must be reconciled into a single, consistent state.
a last-writer-wins strategy data structures (records, lists, and
dictionaries) that track updates and automatically reconcile conflicting changes
![Page 24: Orleans Cloud Computing](https://reader030.fdocuments.us/reader030/viewer/2022032700/55d11630bb61eb603b8b45ef/html5/thumbnails/24.jpg)
Orleans runtime (continued)
Transactions A transaction is created at the arrival of an
initial, external request from a client A transaction is completed when the
request processing finishes execution. It is committed when its changes are
written to durable storage
![Page 25: Orleans Cloud Computing](https://reader030.fdocuments.us/reader030/viewer/2022032700/55d11630bb61eb603b8b45ef/html5/thumbnails/25.jpg)
APPLICATIONS
Here we discuss 3 applications Chirper
large-scale Twitter-like publish-subscribe system for distributing small text message updates within a large network of consumers / subscribers
Linear Algebra Library General purpose computations on scalars,
vectors, and matrices (including higher dimensions as tensors).
![Page 26: Orleans Cloud Computing](https://reader030.fdocuments.us/reader030/viewer/2022032700/55d11630bb61eb603b8b45ef/html5/thumbnails/26.jpg)
Chirper
A Chirper account is naturally modeled as a grain The account grain exposes three public
interfaces: IChirperAccount, IChirperSubscriber and IChirperPublisher
IChirperAccount single user account, start and stop following another
user IChirperSubscriber and IChirperPublisher are
used for subscription and notification activities An account that receives or sends large number
of messages is replicated to balance load
![Page 27: Orleans Cloud Computing](https://reader030.fdocuments.us/reader030/viewer/2022032700/55d11630bb61eb603b8b45ef/html5/thumbnails/27.jpg)
Linear Algebra Library
The core of a linear algebra library is the vector-matrix multiplication
This operation is the basis for many algorithms, including PageRank, clustering,
vector-matrix multiply is quite simple if data is held in memory on one machine
Consider a web graph greater than 10^11 pages with more than 10^12
links The Web graph is the graph of the Web pages
together with the hypertext links between them.
![Page 28: Orleans Cloud Computing](https://reader030.fdocuments.us/reader030/viewer/2022032700/55d11630bb61eb603b8b45ef/html5/thumbnails/28.jpg)
Linear Algebra Library
The computations are broken into worker grains that own pieces of the data set.
Special coordinator grains manage the computation by dynamically assigning work to worker grains
![Page 29: Orleans Cloud Computing](https://reader030.fdocuments.us/reader030/viewer/2022032700/55d11630bb61eb603b8b45ef/html5/thumbnails/29.jpg)
Large Graph Engine
Graphs are central to web search, social networking, and other web applications
Large graphs pose many challenges they do not fit a single computer and
distributed algorithms are communications intensive
partitioning and distributing graph data (nodes, edges, and metadata) across many machines
represent a partition of the nodes by a grain
![Page 30: Orleans Cloud Computing](https://reader030.fdocuments.us/reader030/viewer/2022032700/55d11630bb61eb603b8b45ef/html5/thumbnails/30.jpg)
Large Graph Engine
Every server hosts a small number of partition grains, and every partition grain contains a moderate number of graph data nodes (10^4 – 10^6)
A graph algorithm running in a partition directly accesses nodes in its partition
Accesses across partitions involve sending messages between partition grains
it imposes no restrictions on the size of a grain . Grains can hold potentially large amounts of
state
![Page 31: Orleans Cloud Computing](https://reader030.fdocuments.us/reader030/viewer/2022032700/55d11630bb61eb603b8b45ef/html5/thumbnails/31.jpg)
PERFORMANCE MEASUREMENTS Chirper We created a synthetic network of 1,000
user accounts each user following 27 random users ran load generator processes on
multiple machines each generator posting messages of
varying size The system can deliver approximately
7,000 chirps per second (1600 tweets per second by twitter)
![Page 32: Orleans Cloud Computing](https://reader030.fdocuments.us/reader030/viewer/2022032700/55d11630bb61eb603b8b45ef/html5/thumbnails/32.jpg)
Related Work
Actors Actors are a well-known model for
concurrent programming Orleans extends the basic actor model
with support for replication, transactions, and consistency
E is an object-oriented programming language for secure distributed computing.
E has a concurrency model similar to Orleans
![Page 33: Orleans Cloud Computing](https://reader030.fdocuments.us/reader030/viewer/2022032700/55d11630bb61eb603b8b45ef/html5/thumbnails/33.jpg)
Related Work
Distributed Object Models Enterprise Java Beans (EJB), Microsoft’s
Component Object Model (COM), and the Common Object Request Broker Architecture (CORBA) Based on distributed objects primarily
synchronous RPC They share Orleans’s goals of offering a
higher-level collection of abstractions that hide some of the complexity of building distributed systems
![Page 34: Orleans Cloud Computing](https://reader030.fdocuments.us/reader030/viewer/2022032700/55d11630bb61eb603b8b45ef/html5/thumbnails/34.jpg)
FUTURE WORK
An on-going area of research is resource management
when and where should a new activation be created, rather than reusing an existing one?
When should an existing activation be deactivated?
important area for future work is in extending Orleans to run on devices such as PCs and smartphones
![Page 35: Orleans Cloud Computing](https://reader030.fdocuments.us/reader030/viewer/2022032700/55d11630bb61eb603b8b45ef/html5/thumbnails/35.jpg)
CONCLUSIONS
This paper described the design and implementation of Orleans
actor-like model of isolated, replicated grains that communicate through asynchronous messages and manage asynchronous computations with promises
We believe that the Orleans framework can significantly simplify the development of cloud applications
This is not a strong guarantee, as it is possible to write a bad program in any language
![Page 36: Orleans Cloud Computing](https://reader030.fdocuments.us/reader030/viewer/2022032700/55d11630bb61eb603b8b45ef/html5/thumbnails/36.jpg)
CONCLUSIONS
Cloud services achieve high throughput by processing multiple, independent requests concurrently
Orleans supports a simple, single threaded model within a grain, but permits parallelism between grains, although limited to message passing
Computers and networks fail in distributed systems, so error handling and recovery code is fundamental.
![Page 37: Orleans Cloud Computing](https://reader030.fdocuments.us/reader030/viewer/2022032700/55d11630bb61eb603b8b45ef/html5/thumbnails/37.jpg)
CONCLUSIONS
Cloud applications must respond to varying and unpredictable workloads.
Grain replication offers a simple, mostly transparent mechanism that permits Orleans to allocate more computing resources at bottlenecks in an application
Orleans is currently being used by several projects inside Microsoft Research
that training and education remains an important aspect of cloud software development
![Page 38: Orleans Cloud Computing](https://reader030.fdocuments.us/reader030/viewer/2022032700/55d11630bb61eb603b8b45ef/html5/thumbnails/38.jpg)
Thank You