The Chubby lock service for loosely-coupled distributed systems

The Chubby lock service for loosely-coupled distributed systems

Mike Burrows, Google Inc.

Abstract

We describe our experiences with the Chubby lock ser- vice, which is intended to provide coarse-grained lock- ing as well as reliable (though low-volume) storage for a loosely-coupled distributed system. Chubby provides an interface much like a distributed file system with ad- visory locks, but the design emphasis is on availability and reliability, as opposed to high performance. Many instances of the service have been used for over a year, with several of them each handling a few tens of thou- sands of clients concurrently. The paper describes the initial design and expected use, compares it with actual use, and explains how the design had to be modified to accommodate the differences.

1 Introduction

This paper describes a lock service called Chubby. It is intended for use within a loosely-coupled distributed sys- tem consisting of moderately large numbers of small ma- chines connected by a high-speed network. For example, a Chubby instance (also known as a Chubby cell) might serve ten thousand 4-processor machines connected by 1Gbit/s Ethernet. Most Chubby cells are confined to a single data centre or machine room, though we do run at least one Chubby cell whose replicas are separated by thousands of kilometres.

The purpose of the lock service is to allow its clients to synchronize their activities and to agree on basic in- formation about their environment. The primary goals included reliability, availability to a moderately large set of clients, and easy-to-understand semantics; through- put and storage capacity were considered secondary. Chubby’s client interface is similar to that of a simple file system that performs whole-file reads and writes, aug- mented with advisory locks and with notification of var- ious events such as file modification.

We expected Chubby to help developers deal with coarse-grained synchronization within their systems, and in particular to deal with the problem of electing a leader from among a set of otherwise equivalent servers. For

example, the Google File System [7] uses a Chubby lock to appoint a GFS master server, and Bigtable [3] uses Chubby in several ways: to elect a master, to allow the master to discover the servers it controls, and to permit clients to find the master. In addition, both GFS and Bigtable use Chubby as a well-known and available loca- tion to store a small amount of meta-data; in effect they use Chubby as the root of their distributed data struc- tures. Some services use locks to partition work (at a coarse grain) between several servers.

Before Chubby was deployed, most distributed sys- tems at Google used ad hoc methods for primary elec- tion (when work could be duplicated without harm), or required operator intervention (when correctness was es- sential). In the former case, Chubby allowed a small sav- ing in computing effort. In the latter case, it achieved a significant improvement in availability in systems that no longer required human intervention on failure.

Readers familiar with distributed computing will rec- ognize the election of a primary among peers as an in- stance of the distributed consensus problem, and realize we require a solution using asynchronous communica- tion; this term describes the behaviour of the vast ma- jority of real networks, such as Ethernet or the Internet, which allow packets to be lost, delayed, and reordered. (Practitioners should normally beware of protocols based on models that make stronger assumptions on the en- vironment.) Asynchronous consensus is solved by the Paxos protocol [12, 13]. The same protocol was used by Oki and Liskov (see their paper on viewstamped replica- tion [19, §4]), an equivalence noted by others [14, §6]. Indeed, all working protocols for asynchronous consen- sus we have so far encountered have Paxos at their core. Paxos maintains safety without timing assumptions, but clocks must be introduced to ensure liveness; this over- comes the impossibility result of Fischer et al. [5, §1].

Building Chubby was an engineering effort required to fill the needs mentioned above; it was not research. We claim no new algorithms or techniques. The purpose of this paper is to describe what we did and why, rather than to advocate it. In the sections that follow, we de- scribe Chubby’s design and implementation, and how it

OSDI ’06: 7th USENIX Symposium on Operating Systems Design and ImplementationUSENIX Association 335

 

 

has changed in the light of experience. We describe un- expected ways in which Chubby has been used, and fea- tures that proved to be mistakes. We omit details that are covered elsewhere in the literature, such as the details of a consensus protocol or an RPC system.

2 Design

2.1 Rationale

One might argue that we should have built a library em- bodying Paxos, rather than a library that accesses a cen- tralized lock service, even a highly reliable one. A client Paxos library would depend on no other servers (besides the name service), and would provide a standard frame- work for programmers, assuming their services can be implemented as state machines. Indeed, we provide such a client library that is independent of Chubby.

Nevertheless, a lock service has some advantages over a client library. First, our developers sometimes do not plan for high availability in the way one would wish. Of- ten their systems start as prototypes with little load and loose availability guarantees; invariably the code has not been specially structured for use with a consensus proto- col. As the service matures and gains clients, availability becomes more important; replication and primary elec- tion are then added to an existing design. While this could be done with a library that provides distributed consensus, a lock server makes it easier to maintain exist- ing program structure and communication patterns. For example, to elect a master which then writes to an ex- isting file server requires adding just two statements and one RPC parameter to an existing system: One would acquire a lock to become master, pass an additional inte- ger (the lock acquisition count) with the write RPC, and add an if-statement to the file server to reject the write if the acquisition count is lower than the current value (to guard against delayed packets). We have found this tech- nique easier than making existing servers participate in a consensus protocol, and especially so if compatibility must be maintained during a transition period.

Second, many of our services that elect a primary or that partition data between their components need a mechanism for advertising the results. This suggests that we should allow clients to store and fetch small quanti- ties of data—that is, to read and write small files. This could be done with a name service, but our experience has been that the lock service itself is well-suited for this task, both because this reduces the number of servers on which a client depends, and because the consistency fea- tures of the protocol are shared. Chubby’s success as a name server owes much to its use of consistent client caching, rather than time-based caching. In particular, we found that developers greatly appreciated not having

to choose a cache timeout such as the DNS time-to-live value, which if chosen poorly can lead to high DNS load, or long client fail-over times.

Third, a lock-based interface is more familiar to our programmers. Both the replicated state machine of Paxos and the critical sections associated with exclusive locks can provide the programmer with the illusion of sequen- tial programming. However, many programmers have come across locks before, and think they know to use them. Ironically, such programmers are usually wrong, especially when they use locks in a distributed system; few consider the effects of independent machine fail- ures on locks in a system with asynchronous communi- cations. Nevertheless, the apparent familiarity of locks overcomes a hurdle in persuading programmers to use a reliable mechanism for distributed decision making.

Last, distributed-consensus algorithms use quorums to make decisions, so they use several replicas to achieve high availability. For example, Chubby itself usually has five replicas in each cell, of which three must be run- ning for the cell to be up. In contrast, if a client system uses a lock service, even a single client can obtain a lock and make progress safely. Thus, a lock service reduces the number of servers needed for a reliable client system to make progress. In a loose sense, one can view the lock service as a way of providing a generic electorate that allows a client system to make decisions correctly when less than a majority of its own members are up. One might imagine solving this last problem in a dif- ferent way: by providing a “consensus service”, using a number of servers to provide the “acceptors” in the Paxos protocol. Like a lock service, a consensus service would allow clients to make progress safely even with only one active client process; a similar technique has been used to reduce the number of state machines needed for Byzan- tine fault tolerance [24]. However, assuming a consensus service is not used exclusively to provide locks (which reduces it to a lock service), this approach solves none of the other problems described above.

These arguments suggest two key design decisions: • We chose a lock service, as opposed to a library or

service for consensus, and • we chose to serve small-files to permit elected pri-

maries to advertise themselves and their parameters, rather than build and maintain a second service.

Some decisions follow from our expected use and from our environment: • A service advertising its primary via a Chubby file

may have thousands of clients. Therefore, we must allow thousands of clients to observe this file, prefer- ably without needing many servers.

• Clients and replicas of a replicated service may wish to know when the service’s primary changes. This

OSDI ’06: 7th USENIX Symposium on Operating Systems Design and Implementation USENIX Association336

 

 

suggests that an event notification mechanism would be useful to avoid polling.

• Even if clients need not poll files periodically, many will; this is a consequence of supporting many devel- opers. Thus, caching of files is desirable.

• Our developers are confused by non-intuitive caching semantics, so we prefer consistent caching.

• To avoid both financial loss and jail time, we provide security mechanisms, including access control. A choice that may surprise some readers is that we

do not expect lock use to be fine-grained, in which they might be held only for a short duration (seconds or less); instead, we expect coarse-grained use. For example, an application might use a lock to elect a primary, which would then handle all access to that data for a consider- able time, perhaps hours or days. These two styles of use suggest different requirements from a lock server.

Coarse-grained locks impose far less load on the lock server. In particular, the lock-acquisition rate is usu- ally only weakly related to the transaction rate of the client applications. Coarse-grained locks are acquired only rarely, so temporary lock server unavailability de- lays clients less. On the other hand, the transfer of a lock from client to client may require costly recovery proce- dures, so one would not wish a fail-over of a lock server to cause locks to be lost. Thus, it is good for coarse- grained locks to survive lock server failures, there is little concern about the overhead of doing so, and such locks allow many clients to be adequately served by a modest number of lock servers with somewhat lower availability.

Fine-grained locks lead to different conclusions. Even brief unavailability of the lock server may cause many clients to stall. Performance and the ability to add new servers at will are of great concern because the trans- action rate at the lock service grows with the combined transaction rate of clients. It can be advantageous to re- duce the overhead of locking by not maintaining locks across lock server failure, and the time penalty for drop- ping locks every so often is not severe because locks are held for short periods. (Clients must be prepared to lose locks during network partitions, so the loss of locks on lock server fail-over introduces no new recovery paths.)

Chubby is intended to provide only coarse-grained locking. Fortunately, it is straightforward for clients to implement their own fine-grained locks tailored to their application. An application might partition its locks into groups and use Chubby’s coarse-grained locks to allocate these lock groups to application-specific lock servers. Little state is needed to maintain these fine-grain locks; the servers need only keep a non-volatile, monotonically- increasing acquisition counter that is rarely updated. Clients can learn of lost locks at unlock time, and if a simple fixed-length lease is used, the protocol can be simple and efficient. The most important benefits of this

client processes

5 servers of a Chubby cell client

application chubby library

client application

chubby library

. . .

m RPCs m mastermmm

PPPPPq

�����1

Figure 1: System structure

scheme are that our client developers become responsible for the provisioning of the servers needed to support their load, yet are relieved of the complexity of implementing consensus themselves.

2.2 System structure

Chubby has two main components that communicate via RPC: a server, and a library that client applications link against; see Figure 1. All communication between Chubby clients and the servers is mediated by the client library. An optional third component, a proxy server, is discussed in Section 3.1.

A Chubby cell consists of a small set of servers (typi- cally five) known as replicas, placed so as to reduce the likelihood of correlated failure (for example, in different racks). The replicas use a distributed consensus protocol to elect a master; the master must obtain votes from a majority of the replicas, plus promises that those replicas will not elect a different master for an interval of a few seconds known as the master lease. The master lease is periodically renewed by the replicas provided the master continues to win a majority of the vote.

The replicas maintain copies of a simple database, but only the master initiates reads and writes of this database. All other replicas simply copy updates from the master, sent using the consensus protocol.

Clients find the master by sending master location requests to the replicas listed in the DNS. Non-master replicas respond to such requests by returning the iden- tity of the master. Once a client has located the master, the client directs all requests to it either until it ceases to respond, or until it indicates that it is no longer the master. Write requests are propagated via the consensus protocol to all replicas; such requests are acknowledged when the write has reached a majority of the replicas in the cell. Read requests are satisfied by the master alone; this is safe provided the master lease has not expired, as no other master can possibly exist. If a master fails, the other replicas run the election protocol when their master leases expire; a new master will typically be elected in a few seconds. For example, two recent elections took 6s and 4s, but we see values as high as 30s (§4.1).

OSDI ’06: 7th USENIX Symposium on Operating Systems Design and ImplementationUSENIX Association 337

 

 

If a replica fails and does not recover for a few hours, a simple replacement system selects a fresh machine from a free pool and starts the lock server binary on it. It then updates the DNS tables, replacing the IP address of the failed replica with that of the new one. The current mas- ter polls the DNS periodically and eventually notices the change. It then updates the list of the cell’s members in the cell’s database; this list is kept consistent across all the members via the normal replication protocol. In the meantime, the new replica obtains a recent copy of the database from a combination of backups stored on file servers and updates from active replicas. Once the new replica has processed a request that the current master is waiting to commit, the replica is permitted to vote in the elections for new master.

2.3 Files, directories, and handles

Chubby exports a file system interface similar to, but simpler than that of UNIX [22]. It consists of a strict tree of files and directories in the usual way, with name components separated by slashes. A typical name is:

/ls/foo/wombat/pouch

The ls prefix is common to all Chubby names, and stands for lock service. The second component (foo) is the name of a Chubby cell; it is resolved to one or more Chubby servers via DNS lookup. A special cell name local indicates that the client’s local Chubby cell should be used; this is usually one in the same building and thus the one most likely to be accessible. The remain- der of the name, /wombat/pouch, is interpreted within the named Chubby cell. Again following UNIX, each di- rectory contains a list of child files and directories, while each file contains a sequence of uninterpreted bytes.

Because Chubby’s naming structure resembles a file system, we were able to make it available to applications both with its own specialized API, and via interfaces used by our other file systems, such as the Google File System. This significantly reduced the effort needed to write basic browsing and name space manipulation tools, and reduced the need to educate casual Chubby users.

The design differs from UNIX in a ways that ease dis- tribution. To allow the files in different directories to be served from different Chubby masters, we do not expose operations that can move files from one directory to an- other, we do not maintain directory modified times, and we avoid path-dependent permission semantics (that is, access to a file is controlled by the permissions on the file itself rather than on directories on the path leading to the file). To make it easier to cache file meta-data, the system does not reveal last-access times.

The name space contains only files and directories, collectively called nodes. Every such node has only one name within its cell; there are no symbolic or hard links.

Nodes may be either permanent or ephemeral. Any node may be deleted explicitly, but ephemeral nodes are also deleted if no client has them open (and, for directo- ries, they are empty). Ephemeral files are used as tempo- rary files, and as indicators to others that a client is alive. Any node can act as an advisory reader/writer lock; these locks are described in more detail in Section 2.4.

Each node has various meta-data, including three names of access control lists (ACLs) used to control reading, writing and changing the ACL names for the node. Unless overridden, a node inherits the ACL names of its parent directory on creation. ACLs are themselves files located in an ACL directory, which is a well-known part of the cell’s local name space. These ACL files con- sist of simple lists of names of principals; readers may be reminded of Plan 9’s groups [21]. Thus, if file F’s write ACL name is foo, and the ACL directory contains a file foo that contains an entry bar, then user bar is permit- ted to write F. Users are authenticated by a mechanism built into the RPC system. Because Chubby’s ACLs are simply files, they are automatically available to other ser- vices that wish to use similar access control mechanisms.

The per-node meta-data includes four monotonically- increasing 64-bit numbers that allow clients to detect changes easily: • an instance number; greater than the instance number

of any previous node with the same name. • a content generation number (files only); this in-

creases when the file’s contents are written. • a lock generation number; this increases when the

node’s lock transitions from free to held. • an ACL generation number; this increases when the

node’s ACL names are written. Chubby also exposes a 64-bit file-content checksum so clients may tell whether files differ.

Clients open nodes to obtain handles that are analo- gous to UNIX file descriptors. Handles include: • check digits that prevent clients from creating or

guessing handles, so full access control checks need be performed only when handles are created (com- pare with UNIX, which checks its permissions bits at open time, but not at each read/write because file de- scriptors cannot be forged).

• a sequence number that allows a master to tell whether a handle was generated by it or by a previous master.

• mode information provided at open time to allow the master to recreate its state if an old handle is presented to a newly restarted master.

2.4 Locks and sequencers

Each Chubby file and directory can act as a reader-writer lock: either one client handle may hold the lock in exclu- sive (writer) mode, or any number of client handles may

OSDI ’06: 7th USENIX Symposium on Operating Systems Design and Implementation USENIX Association338

 

 

hold the lock in shared (reader) mode. Like the mutexes known to most programmers, locks are advisory. That is, they conflict only with other attempts to acquire the same lock: holding a lock called F neither is necessary to access the file F , nor prevents other clients from do- ing so. We rejected mandatory locks, which make locked objects inaccessible to clients not holding their locks: • Chubby locks often protect resources implemented by

other services, rather than just the file associated with the lock. To enforce mandatory locking in a meaning- ful way would have required us to make more exten- sive modification of these services.

• We did not wish to force users to shut down appli- cations when they needed to access locked files for debugging or administrative purposes. In a complex system, it is harder to use the approach employed on most personal computers, where administrative soft- ware can break mandatory locks simply by instructing the user to shut down his applications or to reboot.

• Our developers perform error checking in the conven- tional way, by writing assertions such as “lock X is held”, so they benefit little from mandatory checks. Buggy or malicious processes have many opportuni- ties to corrupt data when locks are not held, so we find the extra guards provided by mandatory locking to be of no significant value.

In Chubby, acquiring a lock in either mode requires write permission so that an unprivileged reader cannot prevent a writer from making progress.

Locking is complex in distributed systems because communication is typically uncertain, and processes may fail independently. Thus, a process holding a lock L may issue a request R, but then fail. Another process may ac- quire L and perform some action before R arrives at its destination. If R later arrives, it may be acted on without the protection of L, and potentially on inconsistent data. The problem of receiving messages out of order has been well studied; solutions include virtual time [11], and vir- tual synchrony [1], which avoids the problem by ensuring that messages are processed in an order consistent with the observations of every participant.

It is costly to introduce sequence numbers into all the interactions in an existing complex system. Instead, Chubby provides a means by which sequence numbers can be introduced into only those interactions that make use of locks. At any time, a lock holder may request a se- quencer, an opaque byte-string that describes the state of the lock immediately after acquisition. It contains the name of the lock, the mode in which it was acquired (exclusive or shared), and the lock generation number. The client passes the sequencer to servers (such as file servers) if it expects the operation to be protected by the lock. The recipient server is expected to test whether the sequencer is still valid and has the appropriate mode;

if not, it should reject the request. The validity of a sequencer can be checked against the server’s Chubby cache or, if the server does not wish to maintain a ses- sion with Chubby, against the most recent sequencer that the server has observed. The sequencer mechanism re- quires only the addition of a string to affected messages, and is easily explained to our developers.

Although we find sequencers simple to use, important protocols evolve slowly. Chubby therefore provides an imperfect but easier mechanism to reduce the risk of de- layed or re-ordered requests to servers that do not sup- port sequencers. If a client releases a lock in the normal way, it is immediately available for other clients to claim, as one would expect. However, if a lock becomes free because the holder has failed or become inaccessible, the lock server will prevent other clients from claiming the lock for a period called the lock-delay. Clients may specify any lock-delay up to some bound, currently one minute; this limit prevents a faulty client from making a lock (and thus some resource) unavailable for an arbitrar- ily long time. While imperfect, the lock-delay protects unmodified servers and clients from everyday problems caused by message delays and restarts.

2.5 Events

Chubby clients may subscribe to a range of events when they create a handle. These events are delivered to the client asynchronously via an up-call from the Chubby li- brary. Events include: • file contents modified—often used to monitor the lo-

cation of a service advertised via the file. • child node added, removed, or modified—used to im-

plement mirroring (§2.12). (In addition to allowing new files to be discovered, returning events for child nodes makes it possible to monitor ephemeral files without affecting their reference counts.)

• Chubby master failed over—warns clients that other events may have been lost, so data must be rescanned.

• a handle (and its lock) has become invalid—this typi- cally suggests a communications problem.

• lock acquired—can be used to determine when a pri- mary has been elected.

• conflicting lock request from another client—allows the caching of locks. Events are delivered after the corresponding action has

taken place. Thus, if a client is informed that file contents have changed, it is guaranteed to see the new data (or data that is yet more recent) if it subsequently reads the file.

The last two events mentioned are rarely used, and with hindsight could have been omitted. After primary election for example, clients typically need to commu- nicate with the new primary, rather than simply know that a primary exists; thus, they wait for a file modifi-

OSDI ’06: 7th USENIX Symposium on Operating Systems Design and ImplementationUSENIX Association 339

 

 

cation event indicating that the new primary has written its address in a file. The conflicting lock event in theory permits clients to cache data held on other servers, using Chubby locks to maintain cache consistency. A notifi- cation of a conflicting lock request would tell a client to finish using data associated with the lock: it would finish pending operations, flush modifications to a home loca- tion, discard cached data, and release. So far, no one has adopted this style of use.

2.6 API

Clients see a Chubby handle as a pointer to an opaque structure that supports various operations. Handles are created only by Open(), and destroyed with Close().

Open() opens a named file or directory to produce a handle, analogous to a UNIX file descriptor. Only this call takes a node name; all others operate on handles.

The name is evaluated relative to an existing directory handle; the library provides a handle on ”/” that is always valid. Directory handles avoid the difficulties of using a program-wide current directory in a multi-threaded pro- gram that contains many layers of abstraction [18].

The client indicates various options: • how the handle will be used (reading; writing and

locking; changing the ACL); the handle is created only if the client has the appropriate permissions.

• events that should be delivered (see §2.5). • the lock-delay (§2.4). • whether a new file or directory should (or must) be

created. If a file is created, the caller may supply ini- tial contents and initial ACL names. The return value indicates whether the file was in fact created. Close() closes an open handle. Further use of the han-

dle is not permitted. This call never fails. A related call Poison() causes outstanding and subsequent operations on the handle to fail without closing it; this allows a client to cancel Chubby calls made by other threads without fear of deallocating the memory being accessed by them.

The main calls that act on a handle are: GetContentsAndStat() returns both the contents and

meta-data of a file. The contents of a file are read atom- ically and in their entirety. We avoided partial reads and writes to discourage large files. A related call GetStat() returns just the meta-data, while ReadDir() returns the names and meta-data for the children of a directory.

SetContents() writes the contents of a file. Option- ally, the client may provide a content generation number to allow the client to simulate compare-and-swap on a file; the contents are changed only if the generation num- ber is current. The contents of a file are always written atomically and in their entirety. A related call SetACL() performs a similar operation on the ACL names associ- ated with the node.

Delete() deletes the node if it has no children. Acquire(), TryAcquire(), Release() acquire and

release locks. GetSequencer() returns a sequencer (§2.4) that de-

scribes any lock held by this handle. SetSequencer() associates a sequencer with a handle.

Subsequent operations on the handle fail if the sequencer is no longer valid.

CheckSequencer() checks whether a sequencer is valid (see §2.4).

Calls fail if the node has been deleted since the han- dle was created, even if the file has been subsequently recreated. That is, a handle is associated with an instance of a file, rather than with a file name. Chubby may ap- ply access control checks on any call, but always checks Open() calls (see §2.3).

All the calls above take an operation parameter in ad- dition to any others needed by the call itself. The oper- ation parameter holds data and control information that may be associated with any call. In particular, via the operation parameter the client may: • supply a callback to make the call asynchronous, • wait for the completion of such a call, and/or • obtain extended error and diagnostic information.

Clients can use this API to perform primary election as follows: All potential primaries open the lock file and attempt to acquire the lock. One succeeds and becomes the primary, while the others act as replicas. The primary writes its identity into the lock file with SetContents()

so that it can be found by clients and replicas, which read the file with GetContentsAndStat(), perhaps in response to a file-modification event (§2.5). Ideally, the primary obtains a sequencer with GetSequencer(), which it then passes to servers it communicates with; they should confirm with CheckSequencer() that it is still the primary. A lock-delay may be used with services that cannot check sequencers (§2.4).

2.7 Caching

To reduce read traffic, Chubby clients cache file data and node meta-data (including file absence) in a consis- tent, write-through cache held in memory. The cache is maintained by a lease mechanism described below, and kept consistent by invalidations sent by the master, which keeps a list of what each client may be caching. The pro- tocol ensures that clients see either a consistent view of Chubby state, or an error.

When file data or meta-data is to be changed, the mod- ification is blocked while the master sends invalidations for the data to every client that may have cached it; this mechanism sits on top of KeepAlive RPCs, discussed more fully in the next section. On receipt of an invali- dation, a client flushes the invalidated state and acknowl-

OSDI ’06: 7th USENIX Symposium on Operating Systems Design and Implementation USENIX Association340

 

 

edges by making its next KeepAlive call. The modi- fication proceeds only after the server knows that each client has invalidated its cache, either because the client acknowledged the invalidation, or because the client al- lowed its cache lease to expire.

Only one round of invalidations is needed because the master treats the node as uncachable while cache inval- idations remain unacknowledged. This approach allows reads always to be processed without delay; this is useful because reads greatly outnumber writes. An alternative would be to block calls that access the node during in- validation; this would make it less likely that over-eager clients will bombard the master with uncached accesses during invalidation, at the cost of occasional delays. If this were a problem, one could imagine adopting a hybrid scheme that switched tactics if overload were detected.

The caching protocol is simple: it invalidates cached data on a change, and never updates it. It would be just as simple to update rather than to invalidate, but update- only protocols can be arbitrarily inefficient; a client that accessed a file might receive updates indefinitely, caus- ing an unbounded number of unnecessary updates.

Despite the overheads of providing strict consistency, we rejected weaker models because we felt that program- mers would find them harder to use. Similarly, mecha- nisms such as virtual synchrony that require clients to exchange sequence numbers in all messages were con- sidered inappropriate in an environment with diverse pre- existing communication protocols.

In addition to caching data and meta-data, Chubby clients cache open handles. Thus, if a client opens a file it has opened previously, only the first Open() call neces- sarily leads to an RPC to the master. This caching is re- stricted in minor ways so that it never affects the seman- tics observed by the client: handles on ephemeral files cannot be held open if the application has closed them; and handles that permit locking can be reused, but can- not be used concurrently by multiple application handles. This last restriction exists because the client may use Close() or Poison() for their side-effect of cancelling outstanding Acquire() calls to the master.

Chubby’s protocol permits clients to cache locks—that is, to hold locks longer than strictly necessary in the hope that they can be used again by the same client. An event informs a lock holder if another client has requested a conflicting lock, allowing the holder to release the lock just when it is needed elsewhere (see §2.5).

2.8 Sessions and KeepAlives

A Chubby session is a relationship between a Chubby cell and a Chubby client; it exists for some interval of time, and is maintained by periodic handshakes called KeepAlives. Unless a Chubby client informs the master

otherwise, the client’s handles, locks, and cached data all remain valid provided its session remains valid. (How- ever, the protocol for session maintenance may require the client to acknowledge a cache invalidation in order to maintain its session; see below.)

A client requests a new session on first contacting the master of a Chubby cell. It ends the session explicitly either when it terminates, or if the session has been idle (with no open handles and no calls for a minute).

Each session has an associated lease—an interval of time extending into the future during which the master guarantees not to terminate the session unilaterally. The end of this interval is called the session lease timeout. The master is free to advance this timeout further into the future, but may not move it backwards in time.

Problem statement: what kind of problem is presented by the authors and why this problem is important?

  1. Problem statement: what kind of problem is presented by the authors and why this problem is important?
  2. Approach & Design: briefly describe the approach designed by the author?3.
  3. Strengths and Weaknesses: list the strengths and weaknesses, in your opinion
  4. 4.Evaluation: how did the authors evaluate the performance of the proposed scheme? What kind of workload was designed and used?
  5. Conclusion: by your own judgement.

 

 

Order a Similar Paper

Optimistic Total Order in Wide Area Networks

Optimistic Total Order in Wide Area Networks∗

António SOUSA , José PEREIRA, Francisco MOURA, Rui OLIVEIRA

Universidade do Minho, Portugal {als,jop,fsm,rco}@di.uminho.pt

Abstract

Total order multicast greatly simplifies the implementa- tion of fault-tolerant services using the replicated state ma- chine approach. The additional latency of total ordering can be masked by taking advantage of spontaneous order- ing observed in LANs: A tentative delivery allows the ap- plication to proceed in parallel with the ordering protocol. The effectiveness of the technique rests on the optimistic as- sumption that a large share of correctly ordered tentative deliveries offsets the cost of undoing the effect of mistakes.

This paper proposes a simple technique which enables the usage of optimistic delivery also in WANs with much larger transmission delays where the optimistic assumption does not normally hold. Our proposal exploits local clocks and the stability of network delays to reduce the mistakes in the ordering of tentative deliveries. An experimental evalu- ation of a modified sequencer-based protocol is presented, illustrating the usefulness of the approach in fault-tolerant database management.

1. Introduction

Total order multicast greatly simplifies the implementa- tion of fault-tolerant services using the replicated state ma- chine approach [25]. By ensuring that deterministic replicas handle the very same sequence of requests from clients, it is ensured that the state is kept consistent and the interaction with clients is serializable [12]. A particularly interesting application is the database state machine [21] which allows high performance replication of transactional databases.

Implementation of total order multicast is however more costly than other forms of multicast due to the unavoidable additional latency. For instance, in a sequencer based pro- tocol [5, 16] all processes (except the sequencer itself) have to wait for the message to reach the sequencer and for the sequence number to travel back before the message can be delivered.

On the other hand, protocols based on causal history [18, 23, 10] can provide latency proportional to the interarrival delay of each sender and thus lower latency than sequencer based protocols. However, when each sender has a large in-

∗Research supported by FCT, ESCADA proj (POSI/33792/CHS/2000).

terarrival time and low latency is desired, this requires the introduction of additional control messages. This is espe- cially unfortunate in large groups and in wide area networks with limited bandwidth links.

In some protocols, such as those based on consensus [7, 4] or on a sequencer [5, 16], the total order decided is the spontaneous ordering of messages as observed by some pro- cess. In addition, in local area networks (LANs) it can be observed that the spontaneous order of messages is often the same in all processes. The latency of total order pro- tocols can therefore be masked (not reduced) by tentatively delivering messages based on spontaneous ordering, thus allowing the application to proceed the computation in par- allel with the ordering protocol [17]. Later, when the total order is established and if it confirms the optimistic order- ing, the application can immediately use the results of the optimistic computation. If not, it must undo the effects of the computation and restart it using the correct ordering.

The effectiveness of the technique rests on the assumption that a large share of correctly ordered tentative deliveries offsets the cost of undoing the effects of mistakes. This is unfortunate as this makes optimistic delivery useful only in LANs where the latency is much less of a problem than in wide area networks (WANs).

This paper proposes a simple protocol which enables op- timistic total order to be used in WANs with much larger transmission delays where the optimistic assumption does not normally hold. Our proposal exploits local clocks and the stability of network delays to reduce the mistakes in the ordering of tentative deliveries by compensating the vari- ability of transmission delays. This allows protocols which are based on spontaneous ordering to fulfill the optimistic assumption and thus mask the latency.

An experimental evaluation of the technique is presented using a sequencer-based protocol, illustrating the useful- ness of the approach in fault-tolerant database management. When applied to the sequencer based protocol, our tech- nique does not introduce additional messages. The only overhead is that of an additional integer piggybacked on data messages. This compares favorably with both plain sequencer based and causal history based protocols.

The paper is structured as follows. The next section re- calls the problems of total order and optimistic total order multicasts, as well as the reasons preventing spontaneous

1

 

 

total order in wide are networks. Section 3 introduces the intuition underlying our proposal and presents a protocol providing optimistic delivery of messages based on a fixed- sequencer total order multicast protocol. In Section 4 we evaluate the performance gains of our approach. In Sec- tion 5 we discuss the paper contribution in general settings as well as applied to a specific application. Section 6 con- cludes the paper.

2. Background

2.1. Totally ordered multicast

Informally, totally ordered multicast (or atomic multicast) ensures that no pair of messages is delivered to distinct des- tination processes in different order. Totally ordered multi- cast greatly simplifies the implementation of fault-tolerant services using the replicated state machine (or active repli- cation) approach [25, 12]: By delivering exactly the same messages in the same order to a set of deterministic repli- cas, their internal state is kept consistent.

More formally, we consider an asynchronous message passing system composed of a finite set of sequential pro- cesses communicating over a fully connected reliable point- to-point network [7]. Processes do not have access to shared memory or to a global clock. A process may only fail by crashing and once a process crashes it does not recover. A process that never crashes is said correct. Totally ordered multicast is defined by primitives to-multicast(m) and to- deliver(m), and satisfies the following properties [14]: Validity. If a correct process to-multicasts a message m,

then it eventually to-delivers m. Agreement. If a correct process to-delivers a message m,

then every correct process eventually to-delivers m. Integrity. For every message m, every process to-delivers

m at most once, and only if m was previously to- multicast.

Total Order. If two correct processes to-deliver two mes- sages m and m′, then they do so in the same order.

Total order multicast has been shown to be equivalent to the generic agreement problem of consensus [7]. Therefore we must assume that in our system the consensus problem is solvable [11, 7], requiring that a majority of processes is correct and that failure detection is of class �S [6]. In some protocols, consensus is explicitly invoked to decide the message sequence [7, 4]. In others, consensus is implicit in a group membership service which supports the actual ordering protocol [5, 15, 10].

There is a plethora of total order protocols for asyn- chronous message passing systems which can be classi- fied according to several criteria [9]. Namely, some or- der the message while disseminating it [3, 2, 15]. Others take advantage of an existing unordered multicast proto- col [5, 16, 7] and work in two stages: First, messages are

p1 • seq(m1) %%

seq(m1) &&

//

p3 • DELIV(m1) //

p2 MCAST(m1)

66

<<

77oooo

• DELIV(m1) //

Figure 1. Sequencer based total order protocol.

disseminated using a reliable multicast protocol Then, an ordering protocol is run to decide which is the correct de- livery sequence of buffered messages. This results in addi- tional latency, when compared to reliable multicast.

An example of a protocol often used in group commu- nication toolkits is the sequencer [5, 16], which uses con- sensus implicitly in the view-synchronous reliable multi- cast protocol used to disseminate messages previously to ordering them. As depicted in Figure 1, a data message is disseminated using unordered reliable multicast. Upon re- ception (depicted as a solid dot), the message is buffered until a sequence number for it is obtained. A single pro- cess (p1 in the example) is designated as the sequencer: it increments a counter and multicasts its value along with the original message’s identification to all receivers as a control message. Data messages are then delivered according to the sequence numbers. A group membership protocol is used to ensure that for any given data message there is exactly one active sequencer.

Besides being a very simple protocol, it offers several ad- vantages, especially in networks with limited bandwidth or in large groups with large and variable message interarrival times: it requires at most a single additional control mes- sage for each data message and any message can always be delivered after two successive message transmission de- lays. The basic protocol is also easily modified to cope with higher message throughput by batching sequence numbers for several messages in a single one [5], reducing the num- ber of control messages at the expense of higher latency.

2.2. Optimistic total order

A reliable multicast protocol can deliver a message af- ter a single transmission delay from the originator to the receiver. This contrasts with the latency of totally ordered multicast1 which is either twice as large, when using a se- quencer based protocol, or proportional to message interar- rival delay in protocols using causal history. However:

• Some protocols, such as the sequencer, produce an or- dering which is the spontaneous ordering observed by some process.

• In local area networks, it can be observed that the spon- taneous ordering of message reception of all processes

1Except in the degenerate situation where a single process is multicas- ting and it can assume the sequencer role.

2

 

 

is often very similar, therefore, similar to the final or- dering decided by the sequencer.

Nevertheless, delivery incurs always in the additional la- tency. The optimistic atomic broadcast protocol [22] takes this in consideration to improve average delivery latency of a consensus based total order protocol.

Further latency improvements can be obtained if the ap- plication itself can take advantage of a tentatively ordered delivery. This is called optimistic delivery [17, 26] as it rests on the optimistic assumption that reliable multicast sponta- neously orders messages. It also implies that eventually an authoritative total order is determined, leading to a confir- mation or correction of previously used delivery order. To the interval between the optimistic delivery and the author- itative delivery we call optimistic window. It is during this interval that the application can optimistically do some pro- cessing in advance.

To define optimistic total order multicast we use two different delivery primitives an optimistic opt-deliver(m) that delivers messages in a tentative order and a final fnl- deliver(m) that delivers the messages in their final, or au- thoritative, order. Optimistic total order multicast satisfies the following properties [26]:

Validity. If a correct process to-multicasts a message m, then it eventually fnl-delivers m.

Agreement. If a correct process fnl-delivers a message m, then every correct process eventually fnl-delivers m.

Integrity. For every message m, every process opt- delivers m only if m was previously multicast; and every process fnl-delivers m only once, and only if m was previously multicast.

Local Order. No process opt-delivers a message m after having fnl-delivered m.

Total Order. If two processes fnl-deliver two messages m and m′, then they do so in the same order.

An example of such an application is the database state machine [21] which allows high performance replication of transactional databases and works as follows: transactions are executed optimistically by any of the replicas without locking. The resulting read and write sets are then multicast to all replicas which perform a deterministic certification to ensure that the transaction does not conflict with concur- rent transactions already committed. Total order multicast is used to ensure that the result of the certification process is identical in all replicas, thus ensuring consistency. If the or- der of messages is known in advance by optimistic delivery, this can be used to speed up the certification [17].

Notice that if the optimistic ordering turns out to be wrong, the application has to undo the effect of any pro- cessing it might have done. Therefore, the net advantage of optimistic delivery depends on the balance between the cost of a mistake and the ratio of correctly ordered optimistic de- liveries. In the database state machine, being able to undo

the effects of optimistic delivery just means than the trans- action cannot be effectively committed until authoritative delivery. When the optimistic delivery is wrong, there is a performance penalty: The processing resources used have been wasted.

The tradeoff is thus similar to the one involved in the de- sign of cache memories. However, the protocol designer has no possibility to reduce the cost of a mistake, as this depends solely on the application. The only option is thus to try to maximize the amount of messages which are deliv- ered early but correctly ordered.

2.3. Obstacles to spontaneous total order

A high ratio of spontaneously totally ordered messages which results in good performance of optimistic applica- tions is not trivially achieved, especially in wide area net- works. One reason for this is loopback optimization in the operating system’s network stack. Noticing that the out- going packet is also to be delivered locally, the operating system may use loopback at higher layers of the protocol stack and immediately queue the message for delivery. This allows it to be delivered in advance of packets from other senders which have reached the network first.

Another reason for out of order delivery lies in the net- work itself. Although not frequent, there is a possibility that packets are lost by some but not all destinations. A reliable multicast protocol detects the occurrence and issues a re- transmission. However, the delay introduced opens up the possibility of other packets being successfully transmitted while retransmission is being performed.

An additional issue is the complexity of the network topology. Different packets can be routed by different paths, being therefore subject to different queuing delays or even to being dropped by congested routers. This is especially noteworthy when there are multiple senders. Receivers which are nearer, in terms of hops, to one of them will re- ceive its messages first. Receivers which are nearer of an- other will possibly receive messages in the opposite order.

Notice however that bad spontaneous order in wide area networks is not attributable to large delays themselves, but to the fact that the delays to different destinations are likely to be different, often by two orders of magnitude. Consider Figure 2(a). Messages m1 and m2 are multicast to three different processes, including the senders themselves. The time taken to transmit each message varies with the recipi- ent, for instance, transmission to the sender itself (typically hundreds of microseconds by loopback) takes less time than transmission to other processes (typically up to tens of mil- liseconds over a long distance link). The result is that pro- cess p1 spontaneously orders message m1 first while p2 and p3 deliver m2 first.

Figure 2(b) shows a similar example where message transmission delays are longer but where is it more likely

Implementing Remote Procedure Calls ANDREW D. BIRRELL and BRUCE JAY NELSON Xerox Palo Alto Research Center

Implementing Remote Procedure Calls ANDREW D. BIRRELL and BRUCE JAY NELSON Xerox Palo Alto Research Center

Remote procedure calls (RPC) appear to be a useful paradigm for providing communication across a network between programs written in a high-level language. This paper describes a package providing a remote procedure call facility, the options that face the designer of such a package, and the decisions we made. We describe the overall structure of our RPC mechanism, our facilities for binding RPC clients, the transport level communication protocol, and some performance measurements. We include descriptior,s of some optimizations used to achieve high performance and to minimize the load on server machines that have many clients. CR Categories and Subject Descriptors: C.2.2 [Computer-Communication Networks]: Network Protocols—protocol architecture; C.2.4 [Computer-Communication Networks]: Distributed Sys­ tems—distributed applications, network operating systems; D.4.4 [Operating Systems]: Communi­ cations Management—message sending, network communication; D.4.7[Operating Systems]: Or­ ganization and Design—distributed systems

General Terms: Design, Experimentation, Performance, Security Additional Keywords and Phrases: Remote procedure calls, transport layer protocols, distributed naming and binding, inter-process communication, performance of communication protocols.

1. INTRODUCTION

1.1 Background The idea of remote procedure calls (hereinafter called RPC) is quite simple. It is based on the observation that procedure calls are a well-known and well- understood mechanism for transfer of control and data within a program running on a single computer. Therefore, it is proposed that this same mechanism be extended to provide for transfer of control and data across a communication network. When a remote procedure is invoked, the calling environment is suspended, the parameters are passed across the network to the environment where the procedure is to execute (which we will refer to as the callee), and the desired procedure is executed there. When the procedure finishes and produces its results, the results are passed backed to the calling environment, where execution resumes as if returning from a simple single-machine call. While the calling environment is suspended, other processes on that machine may (possibly)

Authors’ address: Xerox Palo Alto Research Center, 3333 Coyote Hill Road, Palo Alto, CA 94304. Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage, the ACM copyright notice and the title of the publication and its date appear, and notice is given that copying is by permission of the Association for Computing Machinery. To copy otherwise, or to republish, requires a fee and/or specific permission. © 1984 ACM 0734-2071/84/0200-0039 $00.75

ACM Transactions on Computer Systems, Vol. 2, No. 1, February 1984, Pages 39-59

 

 

40 A. D. Birrell and B. J. Nelson

still execute (depending on the details of the parallelism of that environment and the RPC implementation).

There are many attractive aspects to this idea. One is clean and simple semantics: these should make it easier to build distributed computations, and to get them right. Another is efficiency: procedure calls seem simple enough for the communication to be quite rapid. A third is generality: in single-machine com­ putations, procedures are often the most important mechanism for communica­ tion between parts of the algorithm.

The idea of RPC has been around for many years. It has been discussed in the public literature many times since at least as far back as 1976 [15]. Nelson’s doctoral dissertation [13] is an extensive examination of the design possibilities for an RPC system and has references to much of the previous work on RPC. However, full-scale implementations of RPC have been rarer than paper designs. Notable recent efforts include Courier in the Xerox NS family of protocols [4], and current work at MIT [10].

This paper results from the construction of an RPC facility for the Cedar project. We felt, because of earlier work (particularly Nelson’s thesis and asso­ ciated experiments), that we understood the choices the designer of an RPC facility must make. Our task was to make the choices in light of our particular aims and environment. In practice, we found that several areas were inadequately understood, and we produced a system whose design has several novel aspects. Major issues facing the designer of an RPC facility include: the precise semantics of a call in the presence of machine and communication failures; the semantics of address-containing arguments in the (possible) absence of a shared address space; integration of remote calls into existing (or future) programming systems; binding (how a caller determines the location and identity of the callee); suitable protocols for transfer of data and control between caller and callee; and how to provide data integrity and security (if desired) in an open communication network. In building our RPC package we addressed each of these issues, but it not possible to describe all of them in suitable depth in a single paper. This paper includes a discussion of the issues and our major decisions about them, and describes the overall structure of our solution. We also describe in some detail our binding mechanism and our transport level communication protocol. We plan to produce subsequent papers describing our facilities for encryption-based security, and providing more information about the manufacture of the stub modules (which are responsible for the interpretation of arguments and results of RPC calls) and our experiences with practical use of this facility.

1.2 Environment The remote-procedure-call package we have built was developed primarily for use within the Cedar programming environment, communicating across the Xerox research internetwork. In building such a package, some characteristics of the environment inevitably have an impact on the design, so the environment is summarized here.

Cedar [6] is a large project concerned with developing a programming environ­ ment that is powerful and convenient for the building of experimental programs and systems. There is an emphasis on uniform, highly interactive user interfaces, and ease of construction and debugging of programs. Cedar is designed to be used ACM Transactions on Computer Systems, Vol. 2, No. 1, February 1984

 

 

Implementing Remote Procedure Calls 41

on single-user workstations, although it is also used for the construction of servers (shared computers providing common services, accessible through the communication network).

Most of the computers used for Cedar are Dorados [8]. The Dorado is a very powerful machine (e.g., a simple Algol-style call and return takes less than 10 microseconds). It is equipped with a 24-bit virtual address space (of 16-bit words) and an 80-megabyte disk. Think of a Dorado as having the power of an IBM 370/168 processor, dedicated to a single user.

Communication between these computers is typically by means of a 3-megabit- per-second Ethernet [11]. (Some computers are on a 10-megabit-per-second Ethernet [7].) Most of the computers running Cedar are on the same Ethernet, but some are on different Ethernets elsewhere in our research internetwork. The internetwork consists of a large number of 3-megabyte and 10-megabyte Ether­ nets (presently about 160) connected by leased telephone and satellite links (at data rates of between 4800 and 56000 bps). We envisage that our RPC commu­ nication will follow the pattern we have experienced with other protocols: most communication is on the local Ethernet (so the much lower data rates of the internet links are not an inconvenience to our users), and the Ethernets are not overloaded (we very rarely see offered loads above 40 percent of the capacity of an Ethernet, and 10 percent is typical).

The PUP family of protocols [3] provides uniform access to any computer on this internetwork. Previous PUP protocols include simple unreliable (but high- probability) datagram service, and reliable flow-controlled byte streams. Between two computers on the same Ethernet, the lower level raw Ethernet packet format is available.

Essentially all programming is in high-level languages. The dominant language is Mesa [12] (as modified for the purposes of Cedar), although Smalltalk and InterLisp are also used. There is no assembly language for Dorados.

1.3 Aims The primary purpose of our RPC project was to make distributed computation easy. Previously, it was observed within our research community that the con­ struction of communicating programs was a difficult task, undertaken only by members of a select group of communication experts. Even researchers with substantial systems experience found it difficult to acquire the specialized exper­ tise required to build distributed systems with existing tools. This seemed undesirable. We have available to us a very large, very powerful communication network, numerous powerful computers, and an environment that makes building programs relatively easy. The existing communication mechanisms appeared to be a major factor constraining further development of distributed computing. Our hope is that by providing communication with almost as much ease as local procedure calls, people will be encouraged to build and experiment with distrib­ uted applications. RPC will, we hope, remove unnecessary difficulties, leaving only the fundamental difficulties of building distributed systems: timing, inde­ pendent failure of components, and the coexistence of independent execution environments.

We had two secondary aims that we hoped would support our purpose. We wanted to make RPC communication highly efficient (within, say, a factor of

ACM Transactions on Computer Systems, Vol. 2, No. 1, February 1984

 

 

42 A. D. Birrell and B. J. Nelson

five beyond the necessary transmission times of the network). This seems important, lest communication become so expensive that application designers strenuously avoid it. The applications that might otherwise get developed would be distorted by their desire to avoid communicating. Additionally, we felt that it was important to make the semantics öf the RPC package as powerful as possible, without loss of simplicity or efficiency. Otherwise, the gains of a single unified communication paradigm would be lost by requiring application programmers to build extra mechanisms on top of the RPC package. An important issue in design is resolving the tension between powerful semantics and efficiency.

Our final major aim was to provide secure communication with RPC. None of the previously implemented protocols had any provision for protecting the data in transit on our networks. This was true even to the extent that passwords were transmitted as clear-text. Our belief was that research on the protocols and mechanisms for secure communication across an open network had reached a stage where it was reasonable and desirable for us to include this protection in our package. In addition, very few (if any) distributed systems had previously provided secure end-to-end communication, and it had never been applied to RPC, So the design might provide useful research insights.

1.4 Fundamental Decisions It is not an immediate consequence of our aims that we should use procedure calls as the paradigm for expressing control and data transfers. For example, message passing might be a plausible alternative. It is our belief that a choice between these alternatives would not make a major difference in the problems faced by this design, nor in the solutions adopted. The problems of reliable and efficient transmission of a message and of its possible reply are quite similar to the problems encountered for remote procedure calls. The problems of passing arguments and results, and of network security, are essentialy unchanged. The overriding consideration that made us choose procedure calls was that they were the major control and data transfer mechanism imbedded in our major language, Mesa.

One might also consider using a more parallel paradigm for our communication, such as some form of remote fork. Since our language already includes a construct for forking parallel computations, we could have chosen this as the point at which to add communication semantics. Again, this would not have changed the major design problems significantly.

We discarded the possibility of emulating some form of shared address space among the computers. Previous work has shown that with sufficient care mod­ erate efficiency can be achieved in doing this [14]. We do not know whether an approach employing shared addresses is feasible, but two potentially major difficulties spring to mind: first, whether the representation of remote addresses can be integrated into our programming languages (and possibly the underlying machine architecture) without undue upheaval; second, whether acceptable effi­ ciency can be achieved. For example, a host in the PUP internet is represented by a 16-bit address, so a naive implementation of a shared address space would extend the width of language addresses by 16-bits. On the other hand, it is possible that careful use of the address-mapping mechanisms of our virtual memory hardware could allow shared address space without changing the address ACM Transactions on Computer Systems, Vol. 2, No. 1, February 1984

 

 

Implementing Remote Procedure Calls 43

width. Even on our 10 megabit Ethernets, the minimum average round trip time for a packe exchange is 120 microseconds [7], so the most likely way to approach this would be to use some form of paging system. In summary, a shared address space between participants in RPC might be feasible, but since we were not willing to undertake that research our subsequent design assumes the absence of shared addresses. Our intuition is that with our hardware the cost of a shared address space would exceed the additional benefits.

A principle that we used several times in making design choices is that the semantics of remote procedure calls should be as close as possible to those of local (single-machine) procedure calls. This principle seems attractive as a way of ensuring that the RPC facility is easy to use, particularly for programmers familiar with single-machine use of our languages and packages. Violation of this principle seemed likely to lead us into the complexities that have made previous communication packages and protocols difficult to use. This principle has occa­ sionally caused us to deviate from designs that would seem attractive to those more experienced in distributed computing. For example, we chose to have no time-out mechanism limiting the duration of a remote call (in the absence of machine or communication failures), whereas most communication packages consider this a worthwhile feature. Our argument is that local procedure calls have no time-out mechanism, and our languages include mechanisms to abort an activity as part of the parallel processing mechanism. Designing a new time-out arrangement just for RPC would needlessly complicate the programmer’s world. Similarly, we chose the building semantics described below (based closely on the existing Cedar mechanisms) in preference to the ones presented in Nelson’s thesis [13].

Database Security Research Paper and Outline

Instructions

Database Security Research Paper and Outline

In this course, each student is required to conduct research and write a paper that covers an approved topic area of database security.  Present your choice of topic for the Database Security Research Paper.  Your topic proposal should be at least one paragraph in length with citations to at least two references (besides the book) that help support the topic you wish to research.  A brief summary of these references should be included.  In addition, you must provide a one (1) page, high-level outline of your paper.  Draft and final versions of the research paper are due by the end of Weeks 5 and 7, respectively.  Although this is not a graded assignment, the quality of the research paper proposal and outline will factor into the overall research paper grade.  Topics for the Database Security Research Paper

Below are examples of the topics students may choose from, or one can be suggested by the student for approval by the instructor.

Anonymization/Pseudonymization, Data Hiding, Metadata and Security, XML Security, Authorization and Access Control, Data Integrity, Privacy Preserving Data Mining, Statistical Database Security, Control of Data Disclosure, Private Information Retrieval, Secure Stream Processing, Secure Auditing, Data Retention, Search on Encrypted Data, Digital and Enterprise Rights Management, Multimedia Security and Privacy, Private Authentication, Identity Management, Privacy Enhancing Technologies, Security and Semantic Web, Security and Privacy in Ubiquitous Computing, Security and Privacy of Health Data, Web Service Security, Trust Management, Policy Management, Applied Cryptography

Research Paper

Research Paper: This is a graduate course and students will be expected to research and write papers summarizing in their own words what they have found on current topics from the weekly readings. Research is a theoretical review of relevant literature and application of findings in the literature to a topic related to a specific industry, field, or business problem. The research must be conducted using peer-reviewed trade or academic journals. While Blogs, Wikipedia, encyclopedias, course textbooks, popular magazines, newspaper articles, online websites, etc. are helpful for providing background information, these resources are NOT suitable resources for this research assignment. Please Note: The UC Library staff are very helpful with assisting students in using the UC Online Library journal database. Please contact them if you have issues. In addition, the instructor has provided additional resources, including a research tutorial, in the “Course Resources” folder in the “Content” area of the course. Assignment Requirements:

  1. Choose a research topic from the chapter readings or from the list provided by your professor.
  2. Research/find a minimum at least four (4), preferably five (5) or more, different peer-reviewed articles on your topic from the University of the Cumberlands Library online business database. The article(s) must be relevant and from a peer-reviewed source. While you may use relevant articles from any time frame, current/published within the last five (5) years are preferred. Using literature that is irrelevant or unrelated to the chosen topic will result in a point reduction.
  3. Write a four (4) to five (5) page double spaced paper in APA format discussing the findings on your specific topic in your own words. Note – paper length does not include cover page, abstract, or references page(s).
  4. Structure your paper as follows:
    1. Cover page
    2. Overview describing the importance of the research topic to current business and professional practice in your own words.
    3. Purpose of Research should reflect  the potential benefit of the topic to the current business and professional practice and the larger body of research.
    4. Review of the Literature summarized in your own words. Note that this should not be a “copy and paste” of literature content, nor should this section be substantially filled with direct quotes from the article. A literature review is a summary of the major points and findings of each of the selected articles (with appropriate citations). Direct quotations should be used sparingly. Normally, this will be the largest section of your paper (this is not a requirement; just a general observation).
    5. Practical Application of the literature. Describe how your findings from the relevant research literature can shape, inform, and improve current business and professional practice related to your chosen topic.
    6. Conclusion in your own words
    7. References formatted according to APA style requirements

Grading Criteria:

  • Content Knowledge & Structure (25 points): All of the requested components are completed as assigned; content is on topic and related to competitive strategy, critical thinking is clearly demonstrated (few, if any, direct quotations from the source in the paper); scholarly research is demonstrated; topics and concepts gained from the assigned reading and/or from research is evident.
  • Critical Thinking (25 points): Demonstrates substantial critical thinking about topics and solid interpretation of materials and reflection.
  • Clarity & Effective Communication (25 points): Communication is clear, concise, and well presented; scholarly writing is demonstrated; grammar, sentence structure, writing in third person, and word choice is used correctly.
  • Integration of Knowledge & Articles (25 points): Articles used are current and relevant (preferably published within last five (5) years and MUST be from peer-reviewed journal article publications. At least four (4) peer-reviewed journal articles are examined and analyzed in the paper.
  • Presentation & Writing Mechanics (50 points): Cover page, headings, in-text citations, page citations (page number citations required for specific information such as dates, years, list of items from article, names, numbers, statistics, and other specific information), and references are properly formatted.

Please Note: Plagiarism will not be tolerated. The paper must be written in your own words.

TOPICS

Residency: Research Paper – List of potential research topics To complete the Article Research Paper, please select a topic from the list provided below or from the chapter readings.  Strategic Management: Creating Competitive Advantages  The strategic management process and its three interrelated and principal activities.  Corporate governance and stakeholder management  The importance of social responsibility, including environmental sustainability, and how it can enhance a corporation’s innovation strategy.  An awareness of a hierarchy of strategic goals can help an organization achieve coherence in its strategic direction.  Analyzing the External Environment of the Firm  The importance of developing forecasts of the business environment.  Environmental scanning, environmental monitoring, and collecting competitive intelligence  The impact of the general environment on a firm’s strategies and performance.  Forces in the competitive environment and profitability  Assessing the Internal Environment of the Firm  The primary and support activities of a firm’s value chain.  Value-chain analysis  The resource-based view of a firm  Financial ratio analysis  The value of the “balanced scorecard” in recognizing how the interests of a variety of stakeholders can be interrelated.  Why the management of knowledge professionals and knowledge itself are so critical in today’s organizations.  Social capital in leveraging human capital within and across the firm.  The importance of social networks in knowledge management and in promoting career success.  The vital role of technology in leveraging knowledge and human capital.  Why “electronic” or “virtual” teams are critical in combining and leveraging knowledge in organizations and how they can be made more effective.  The challenge of protecting intellectual property and the importance of a firm’s dynamic capabilities.  Business-Level Strategy: Creating and Sustaining Competitive Advantages    The central role of competitive advantage in the study of strategic management and the three generic strategies: overall cost leadership, differentiation, and focus.  How the successful attainment of generic strategies can improve the firm’s relative power vis-à-vis the five forces that determine an industry’s average profitability.  The pitfalls managers must avoid in striving to attain generic strategies.  How firms can effectively combine the generic strategies of overall cost leadership and differentiation.  What factors determine the sustainability of a firm’s competitive advantage?  The importance of considering the industry life cycle to determine a firm’s business-level strategy and its relative emphasis on functional area strategies and value-creating activities.  The need for turnaround strategies that enable a firm to reposition its competitive position in an industry.  Corporate-Level Strategy: Creating Value through Diversification  The reasons for the failure of many diversification efforts.  How managers can create value through diversification initiatives.  How corporations can use related diversification to achieve synergistic benefits through economies of scope and market power.  How corporations can use unrelated diversification to attain synergistic benefits through corporate restructuring, parenting, and portfolio analysis.  The various means of engaging in diversification – mergers and acquisitions, joint ventures/strategic alliances, and internal development.  The importance of international expansion as a viable diversification strategy.  The motivations (or benefits) and the risks associated with international expansion, including the emerging trend for greater offshoring and outsourcing activity.  The two opposing forces – cost reduction and adaptation to local markets – that firms face when entering international markets.  Entrepreneurial Strategy and Competitive Dynamics  The role of opportunities, resources, and entrepreneurs in successfully pursuing new ventures.  Three types of entry strategies – pioneering, imitative, and adaptive – commonly used to launch a new venture.  How the generic strategies of overall cost leadership, differentiation, and focus are used by new ventures and small businesses.  How competitive actions, such as the entry of new competitors into a marketplace, may launch a cycle of actions and reactions among close competitors.  The components of competitive dynamics analysis – new competitive action, threat analysis, motivation and capability to respond, types of competitive actions, and likelihood of competitive reaction.  Strategic Control and Corporate Governance  The value of effective strategic control systems in strategy implementation.  The imperative for contemporary control systems in today’s complex and rapidly changing competitive and general environments.  The role of corporate governance mechanisms in ensuring that the interests of managers are aligned with those of shareholders from both the United States and international perspectives.  Creating Effective Organizational Designs  The growth patterns of major corporations and the relationship between the firm’s strategy and its structure.  The implication of a firm’s international operations for organizational structure.  The different types of boundaryless organizations – barrier-free, modular, and virtual – and their relative advantages and disadvantages.  The need for creating ambidextrous organizational designs that enable firms to explore new opportunities and effectively integrate existing operations.  Strategic Leadership: Creating a Learning Organization and an Ethical Organization  The crucial role of emotional intelligence (EI) in successful leadership, as well as its potential drawbacks.  The importance of creating a learning organization.  The leader’s role in establishing an ethical organization.  Integrity-based and compliance-based approaches to organizational ethics.  Managing Innovation and Fostering Corporate Entrepreneurship  The importance of implementing strategies and practices that foster innovation.  The challenges and pitfalls of managing corporate innovation processes.  How corporations use new venture teams, business incubators, and product champions to create an internal environment and culture that promote entrepreneurial development.  How corporate entrepreneurship achieves both financial goals and strategic goals.  The benefits and potential drawbacks of real options analysis in making resource deployment decisions in corporate entrepreneurship contexts.  How an entrepreneurial orientation can enhance a firm’s efforts to develop promising corporate venture initiatives.  Analyzing Strategic Management Cases  How strategic case analysis is used to simulate real-world experiences.  How analyzing strategic management cases can help develop the ability to differentiate, speculate, and integrate when evaluating complex business problems.  The steps involved in conducting a strategic management case analysis.  How integrative thinking and conflict-inducing discussion techniques can lead to better decisions.

Problem Statement – Issues discussed by the author

I need the following after reviewing the paper

Problem Statement – Issues discussed by the author

Approach & design – How the authors approach to the issue & what proposed ideas they mentioned

Strengths and Weakness – strengths & weakness of the proposed approach & design, and about the paper.

Evaluation(Performance) – How the authors evaluated the proposed system, what parameters they used to test the performance

Conclusion(In readers perspective)

Along with these, I need to have a detailed explanation of the paper section-wise:

sections are:

Abstract

Introduction

Design

Mechanism for scaling

Use, Surprises and design errors

Comparision with related work

Summary

Conclusion

The Research Paper

English 1302: Research Paper

Spring 2023, ONLINE 2

English 1302: The Research Paper

 

The purpose of your research paper will be to persuade an audience to accept your claim; it is not simply a presentation of information or a grocery list of facts. You need to present the information in such a way that your readers understand and accept your point of view regarding your topic. Your topic must also be arguable, which is to say that there must be more than one valid perspective on the topic. You cannot select a topic that is already settled or that only has one point of view.

 

What will the topic be?

You should choose an issue an arguable issue about which you feel that you have something significant to contribute to the conversation . If you are unclear on what constitutes an arguable issue, please refer to the handout posted in eCampus that addresses these questions. If your issue does not have more than one legitimate point-of-view, it needs to be reconsidered.

 

Please note that the following topics will not be approved, as in my experience, they do not lead to successful papers. Papers on these topics will earn a grade of 0:

· Abortion

· Gun control

· Capital punishment / death penalty

· Global warming / climate change

· Child abuse / domestic abuse or violence

· Any topic that is exclusively faith-based, as it will not be appropriate to an academic audience.

 

What are the milestone dates for the research paper?

 

AssignmentDue Date and Submission Info
Topic Selection and Approval:

 

You will need to state the topic you are interested in and the position you plan to take on it. Questions will not show your position and will not be approved. Provide a statement instead.

Approved by Wednesday, 8 March (by email).

 

For each topic you want to consider, email me these items:

· Topic (a STATEMENT, NOT A QUESTION!)

· Position you plan to take on the topic

· Intended audience (as narrow as possible!)

 

DO NOT SUBMIT YOUR PROPOSAL INSTEAD OF A TOPIC!

 

If these items are not included for EACH proposed idea, you will be asked to provide them before any feedback is possible.

 

Do not wait until the a few minutes before the deadline to send your initial ideas, or your topic will probably not be approved by the deadline. Please be sure you have reviewed the topics that will not be approved before you send your suggestions.

Proposal for Research Paper due:Friday, 24 March @ 11:59 p.m.

Post proposal to the link in the week 10 folder.

1st Draft Due for PRG (min. 3 typed pgs):Post first 3 pages for peer review by Weds, 29 March @ 11:59 p.m. to the link in the week 11 assignments folder.
Set up tutoring session for 1st 3 pages

 

Set up your live tutoring session for the 1st 3 pages of your draft by Wednesday, 29 March
Provide feedback on 1st draftPost feedback on 3 peers’ drafts no later than 11:59 p.m. on Friday, 31 March. Go back to the 3-page submission link to find your assigned reviews.
Full Draft Due for PRG

(must include all sources, internal citations, and works cited!)

Post full draft of research paper, including works cited, for peer review by Tuesday, 11 April @ 11:59 p.m. in the week 7 assignments folder.
Set up tutoring session for complete draft (must include all sources, internal citations, and works cited!)Set up your live tutoring session for the full draft of your paper by Tuesday, 11 April; submit tutoring documentation no later than the day the final paper is due .
Provide feedback on full draftPost feedback on 3 peers’ drafts no later than 11:59 p.m. on Tuesday, 20 April. Go back to the full draft submission link to find your assigned reviews
Live class session (attendance expected!)Tuesday, 25 April @ 4:00 p.m. (Note that this is the session that will show you how to submit the full version of all resources you use in the paper; failure to provide your resources reduces your paper grade by 2 letter grades off the top, per department policy, so this is a HUGE deal!
Submit all resources used in research paper.Thursday, 27 April @ 11:59 p.m.

 

Upload ALL sources to the Dropbox folder I shared with you earlier in the course. This is the only acceptable way to submit sources, so be sure that you have access to the shared folder now! Missing sources result in an automatic score reduction of 2 full letter grades, so don’t miss this part!

Research Paper Due:Monday, 8 May @ 11:59 p.m. Late papers not accepted for any reason!!

 

Submit final copy of research paper, with works cited attached as last page(s) of file to the Research Paper Final Draft link in eCampus.

 

How do I put together the paper?

After identifying your topic, you will address the following elements of this issue in your paper:

· Identify the issue you will be examining

· Articulate your position on that issue (both of these will be done in your thesis)

· Provide a “history” of the issue in America, and specifically in terms of law, events leading up to the issue you’ve chosen, public opinion, etc). This portion will require research!

· Examine at least 2 “sides” (but no more than 3-4) of the issue thoroughly, drawing on research to support both sides.

· Provide support for your “side” of the issue, and for your version of how the issue should be addressed/resolved

 

You may choose your topic, within these parameters, but you should do so in consultation with and with approval from me.

 

Who will my audience be?

You may select the audience for your paper, but the audience you choose will need to be clearly articulated in your research paper proposal. I will refer to this proposal when reading the final copy of your research paper, and I will expect that your research paper will reflect what you proposed unless we discuss it in advance.

 

How long should the paper be?

Your research paper will be 6-8 word processed pages of text, plus the Works Cited page. In other words, your paper must be a minimum of 6 completely full, word-processed pages in MLA style, and your Works Cited page should begin no sooner than page 7.

 

Please remember that quantity does not equal quality. I won’t count words or pages; however, any research paper that is much shorter than six pages probably won’t be adequately developed, and any one that is much longer than seven or eight pages usually indicates that the writer didn’t narrow the topic sufficiently.

 

How many sources do I need?

This paper requires at least 10 resources from a variety of media. Please note that any missing sources will result in a letter grade reduction in your final paper grade per source missing. Also, remember that in order to be cited, the source must be used in the body of the paper!

 

You’ll need to consult books, periodicals, the library’s online databases, and the internet. In addition, I’m sure that some of your topics can be argued using field research (interviews, observations, and/or surveys).

 

I will only accept 2 of these sources from the Internet, and no more than 2 of your sources may be field research (interviews, observations, and/or surveys).

 

How should I format my paper?

All research papers must conform to MLA style for both format and documentation (ie: internal citations and works cited page).

 

The MLA Handbook, 9th edition, presents samples to help you with the format. The heading belongs in the upper left corner of the first page. This piece of writing is long enough to deserve a title; try to make it interesting so that the reader wants to find out what is in the paper!

 

Suggestions for Writing

· Get your proposal back before you begin writing the draft of your research paper to be sure your topic is sufficiently focused!

 

· Document paraphrases as well as direct quotes in your essay.

 

· Remember that citing a source in the paper but not listing it in the Works Cited page is an example of plagiarism. An excellent way to check your work before submitting the finished copy is to check off each citation on the Works Cited page as you read it in the essay. When you’ve finished, make sure that every entry on the Works Cited page has a check mark beside it. If not, you need to find out where the citation is missing. As you’re doing the checking, make sure the page numbers in the essay correspond to those listed in Works Cited.

 

· If all of the information in one paragraph in your essay comes from the same page of the same source, you may save the citation until the end of the paragraph. If you start a new paragraph, you must insert a citation at the end of one paragraph and then within the next paragraph.

 

· Everything is double-spaced–the essay and the Works Cited.

 

· Nothing has extra spaces inserted, including entries on the Works Cited.

 

· When you write about another piece of writing, use the present tense: “The author suggests that plastics are a continuing threat to the environment.”

 

I recommend spending a substantial amount of time editing your work and refining your documentation skills. Allow enough time to type your essay carefully and even more time to proofread carefully!!

Assignment – Managing a Health Care Crisis

 

Week 3 Assignment – Managing a Health Care Crisis

Overview

This assignment asks you to review a real-world scenario to assess your ability to outline the appropriate actions of someone in managerial epidemiology.

Scenario

The situation at the regional Good Health Hospital has become overwhelming since the outbreak of COVID-19. It appears that there are 15 cases of the disease with more cases each day.

To better understand the situation, the hospital has been in constant communication with the Centers for Disease Control and Prevention.

After a meeting yesterday with the chief administrator, Joe Wellborn, it has been decided that a more detailed process must be created to manage the situation.

Research has indicated that hospitals operating in the Tampa Bay area are also filling to capacity with COVID-19 patients. This substantiates the need for further communication and collaboration with the county and state health departments.

As a health care manager, it is your job to both manage the situation and make a detailed record of the circumstances and your process in a report from an epidemiological management perspective.

Instructions

For this assignment, create a PowerPoint presentation with 6–7 slides for the hospital administration outlining the steps to be taken to manage the situation. Please include the following:

  1. Summarize the roles and responsibilities of those involved in the response to the situation summarized above.
  2. Include the key elements when addressing the situation in a hospital.
  3. Summarize two specific actions an epidemiological manager would take to prevent future occurrences.
  4. Outline who should be notified and what information needs to be sent in each notification. This may include local and state health agencies as well as the CDC.
  5. Each slide should contain speaker notes. Be sure to use your own words and cite where necessary.

Resources

From Managerial Epidemiology:

  • Chapters 1, 3, 4, and 12.2.

The specific course learning outcome associated with this assignment:

  • Analyze the importance of managerial epidemiology roles and responsibilities in infection prevention and control in health care organizations.

 

 

 

 

 

Order a Similar Paper

write 400–600 words that respond to the following questions with your thoughts, ideas, and comments

write 400–600 words that respond to the following questions with your thoughts, ideas, and comments. This will be the foundation for future discussions by your classmates. Be substantive and clear, and use examples to reinforce your ideas.

Complete the following for this assignment:

  • Select 1 health issue—such as diabetes, cancer, aging, chronic diseases, or obesity—and describe how current health policy (federal or state) addresses this health issue.
  • List the steps required to develop health policy that impacts the targeted population.
  • Evaluate whether or not the health policy related to the issue selected has the potential to transform healthcare delivery in the United States.
  • If you believe that the current policy is not effective, make recommendations to improve the health policy, and support your work using credible, cited sources.

Note: Your post must include 2 quality references, 1 of which is from a peer-reviewed source and published within the last 5 years.

 

 

Order a Similar Paper