Background

In scalable distributed systems like cloud computing systems [1] and peer-to-peer (P2P) overlay networks [2] systems, resource objects like databases and files are replicated and distributed to multiple server computers in order to increase the performance, reliability, and availability. In P2P overlay networks, objects, especially multimedia objects like movies are in nature autonomously distributed through peer-to-peer communication. There are many discussions on how to maintain the mutual consistency of multiple replicas like the two-phase locking (2PL) [3], read-one-write-all (ROWA) [4], and quorum-based (QB) [5] protocols. In the 2PL protocol, all the replicas are first locked before they are read and write. On the other hand, only one replica is locked for read while every replica is locked for write in the ROWA protocol. In the QB protocol, subsets of the replicas for read and write operations are referred to as read quorum Q r and write quorum Q w , respectively. Every pair of read and write quorums include at least one common replica. Only if every replica in a quorum could be locked, a transaction can manipulate the replicas in the quorum. In Cassandra [6], the synchronization scheme based on the quorum concept [4] is adopted.

Various types of objects including multimedia objects are distributed in P2P overlay networks. Multimedia objects are characterized in terms of quality of service (QoS) like frame rate and number of colours in addition to the contents. Thus, not only the content but also QoS parameters of an object are manipulated. For example, suppose there are three replicas o1, o2, and o3 of a fully-coloured movie object o in a quorum Q. A scene subobject is added to the replica o2. On the other hand, the colour of another replica o3is changed with monochromatic one. The replica o2 is newer than the replica o3 in terms of the content while the replica o3 is newer than the replica o2in terms of number of colours. Thus, replicas are partially ordered in terms of newness of not only content but also QoS parameters in a quorum. The partially ordering newness precedent relation insertcodeforeq 1here among replicas of a multimedia object is defined in the paper [7]. On the other hand, replicas of a file object are totally ordered just in terms of newness of content in the traditional QB protocol. Here, there is no newest replica in the quorum Q. A complete quorum includes a newest replica. A newest replica should be a monochromatic replica with the scene subobjects in the quorum Q. The replicas o2 and o3can be made the newest one by degrading colours and adding the scene subobjects, respectively. Thus, even if a quorum is not complete, some replica o i might be made the newest by applying operations with data held in other replicas o i in the quorum. An incomplete quorum which can be complete is referred to as completable. The replica Q is completable. We discuss how to obtain the newest replica in an incomplete but completable quorum. In the traditional QB protocol, every quorum is complete. However, multimedia quorums can be completable.

We propose a multimedia quorum-based (MQB) protocol in this paper. Here, each replica of a multimedia object holds the vector of counters, where there is one counter for each of the content and QoS parameters. If a transaction issues a read operation op, the transaction selects the newest replica o i in a quorum Q op . If not found, one replica o i is selected and is made newest by obtaining operations and data which are not performed on the replica o i through communicating with other replicas. Then, the transaction reads the replica o i in the quorum Q op . The content and QoS parameters of every replica are updated to be the newest. Here, computation and communication resources are consumed to update every replica in the quorum Q op . In order to reduce the computation and communication overheads, every quorum is tried to be completable, that is, only the counter vector of every replica is updated in the quorum Q op but all the replicas themselves are not updated. We evaluate the MQB protocol compared with the QB protocol and show the communication overhead in the MQB protocol can be reduced with the QB protocol.

In section “Method”, we discuss the newness-precedent relations on replicas of multimedia objects. In section “Evaluation”, we discuss the multimedia quorum-based (MQB) protocol to maintain the mutually consistency of replicas. In section “Conclusions”, we evaluate the MQB protocol compared with the QB protocol in terms of communication overheads.

Method

Partially Ordering Relations of Multimedia Replicas

Multimedia objects

A multimedia object o is characterized in terms of not only content parameter o.c but also quality of service (QoS) parameters o.Q. A content o.c shows data structure, i.e. the part_of structure of subobjects. QoS o.Q is specified in a tuple of QoS parameters 〈q1, .., q l 〉 (l≥0). Frame rate and resolution are examples of QoS parameters. Thus, each replica o i of an object o is specified in a pair of the content o i .c and QoS parameters o i .Q. It is noted a traditional replica o i like a text object is just specified in terms of a content o i .c. The content o i .c in a replica o i is manipulated in a content operation like delete-subobject while QoS parameters. o i .Q is manipulated in a QoS operation like change-colour.

In a QoS parameter frame rate (fr), 40[fps] is richer than 20[fps]. Thus, for a pair of values x and y of a QoS parameter q k , y is richer than x (xy) (y is poorer than x) iff y includes more volume of data than x. For example, 2040[fps]. Let c1and c2be a pair of contents of an object o. A content parameter c2 is richer than a content c1(c1 is poorer than c2) ( c 1 c 2 ) if c1 is a component of c2. A value x can be obtained by just removing some data from a value y if xy. However, if yx, the value x cannot be obtained without adding any data to the value y. For example, a fully coloured movie object can be degraded to a monochromatic one by just removing the colour data. However, we have to add colour data to a monochromatic object in order to change with a coloured one.

A scheme of an object o is written in a tuple 〈p0, p1, .., p l 〉 where the first parameter p0stands for a content parameter o.c and the k th parameter p k indicates a QoS parameter o. q k (k = 1, .., l). o. p i shows a parameter p i of an object o (i = 0, 1, .., l).

Newness-precedent relation

Let O be a set {o1, .., o n } of replicas of an object o(n≥1) in the system. Here, the content parameter o j .c of a replica o j is newer than the content o i .c of another replica o i ( o i .c o j .c) iff (if and only if) the content parameter o j .c is updated, e.g. some subobject is deleted but o i .c is not updated. A content o i .c precedes a content o j .c( o i .c o j .c) iff o i .c o j .c or o i .c=o j .c. A QoS parameter o j .q k of a replica o j is newer than o i .q k ( o i . q k o j . q k ) iff the parameter q k is changed in the replica o i but is not in the replica o j . For example, a monochromatic replica o j is obtained by changing the QoS parameter cl (colour) of a fully coloured replica o i . Here, the QoS parameter o j .cl is newer than o i .cl( o i .cl o j .cl). A QoS parameter o i .q k precedes o j .q k with respect to newness ( o i . q k o j . q k ) iff o i . q k o j . q k or o i .q k =o j .q k .

Replicas in the replica set O are partially ordered in the newness-precedent relation insertcodeofeq 1here( O 2 ). A replica o i precedes a replica o j with respect to newness ( o i o j ) iff o i .c o j .c and o i . q k o j . q k for every QoS parameter q k (k =0, 1, .., l). A replica o i is equivalent with a replica o j (o i o j ) iff o i .c=o j .c and o i .q k =o j .q k for every QoS parameter q k . A replica o i is newer than another replica o j ( o i o j ) iff o i o j but o i o j . A replica o i is uncomparable with a replica o j (o i o j ) iff neither o i o j nor o j o i . In the traditional quorum-based (QB) protocols [8] [3], replicas in the replica set O are totally ordered, i.e. for every pair of replicas o i and o j in the replica set O, either o i o j or o j o i , that is, o i o j . On the other hand, replicas of a multimedia object o are partially ordered in the newness-precedent relation insertcodeofeq 1here. For example, the content parameter o j .c of a replica o j is newer than the content o i .c( o i .c o j .c) while some QoS parameter o i .q k is newer than o j .q k ( o j . q k o i . q k ). Here, a pair of replicas o i and o j are uncomparable (o i o j ).

Newest replica in a quorum

In terms of the newness precedent relation insertcodeofeq 1here, we define the least upper bound (lub) and greatest lower bound (glb) of replicas. o i o j shows a least upper bound (lub) of a pair of replicas o i and o j , which is a replica o k such that o i o k and o j o k and there is no replica o h such that o i o h o k and o j o h o k . o i o j indicates a greatest lower bound (glb) of replicas o i and o j , which is a replica o k such that o k o j and o k o j and there is no replica o h such that o k o h o i and o k o h o j . Let Q be a quorum of replicas o1, .., o n . Q indicates the lub o 1 .. o n of every replica in the set Q, i.e. top replica of the set Q, which shows the newest replica in the quorum Q. A replica o i is maximal iff there is no replica o j in the quorum Q such that o i o j . Ma x Q shows a subset of maximal replicas in the quorum Q. A quorum Q is referred to as complete iff the lub Q exists in the quorum Q. Here, a quorum Q is referred to as complete iff there is a top replica Q in the quorum Q.

Figure 1 shows a quorum Q of five replicas o1, o2, o3, o4, and o5 of a multimedia object o, Q = {o1, o2, o3, o4, o5}. Each replica o i has a content parameter (c) and QoS parameter colour (cl), i.e. o i = 〈c, cl〉. Here, a directed edge o i o j shows the newness-precedent relation o i o j . A replica o1 is composed of three fully coloured subobjects, blueberry b, orange r, and strawberry s. The content parameter c is 〈b, r, s〉, o1 = 〈〈b, r, s〉, fullycolour (fc)〉. Suppose initially o1o2o3o4o5.

In a content operation delete, a subobject r is removed in the replicas o2and o5. Here, o2o5= 〈〈b, s〉, fc〉. For a pair of the replicas o2and o5, the content parameters o2.c and o5.c are newer than o1.c( o 1 .c o 2 .c) and o 1 .c o 5 .c while the QoS parameters o2.cl are o5.cl are the same as o1.cl, o1.cl=o2.cl. Hence, the replica o1precedes the replica o2( o 1 o 2 ) and o 1 o 5 . Similarly, {o3, o4} o 2 and {o3, o4} o 5 . { o 1 , o 3 , o 4 } o 5 .

Next, a pair of the replicas o3and o4are changed by degrading with monochromatic (mc) ones by a down-colour (dc) operation; o3o4= 〈〈b, r, s〉, mc〉. Here, the QoS parameters cl of the replicas o1and o2are newer than o1.cl( o 1 .cl o 3 .cl) and o 1 .cl o 4 .cl while o3.c=o4.c=o1.c=〈b, r, s〉. The replica o1precedes the replica o3( o 1 o 3 ) and o 1 o 3 . Similarly, o 1 o 4 . Here, a pair of the replicas o2and o3are uncomparable (o2o3). Similarly, o5o3, o2o4, and o5o4.

Then, the subobject orange r is deleted in the replica o4; o4= 〈〈b, s〉, mc〉. Here, o 2 o 3 = o4.

A lemon subobject l is added to the replica o5. Here, o5= 〈〈b, l, s〉, fc〉. Here, there is no lub o 4 o 5 in the quorum Q. A pair of the replicas o4and o5are maximal and the replica o1is a bottom of the quorum Q, i.e. o 1 = o 2 o 3 as shown in Figure 2. There is no top replica Q in the quorum Q. The lub o 4 o 5 shows the newest replica for the replicas in the quorum Q. By changing the colour cl of the replica o5into mc or deleting the orange r from the replica o4, a top replica 〈〈b, s〉, mc〉 (= o 4 o 5 ) can be obtained.

Figure 1
figure 1

Replicas of a multimedia object.

Figure 2
figure 2

Newness precedence of content and QoS.

In Figure 2, the vertical axis shows the newness of the content parameter c. The content c = 〈b, r, s〉 is changed with the content 〈b, s〉, i.e. b,r,sb, s〉. Hence, o1.c (= 〈b, r, s〉) includes a larger volume of data than o2.c(= 〈b, s〉), i.e. o 1 .c o 2 .c. The horizontal axis indicates the newness of the QoS parameter cl. The QoS parameter cl is changed from fc to mc, i.e. fc insertcodeofeq 1here mc. The QoS parameter o1.cl(=fc) includes more volume of data than o2.cl(= mc). Thus, b,sb,r,s and mc insertcodeofeq 3here fc. A replica o j is richer than a replica o i ( o i o j ) iff o i .c o j .c and o i . q k o j . q k for every QoS parameter q k . This means, the replica o i can be obtained by deleting data and degrading the richer replica o j to a less QoS one.

In the QB protocol [9], there is at least one newest replica o i in a read quorum Q r .A transaction reads the newest replica o i in the quorum Q r .A transaction writes every replica in a write quorum Q w . Then, every replica in the quorum Q w gets the newest. In the QB protocol, each replica has the version counter. The version counter of every replica in a write quorum Q w is incremented so that the version counter of each replica in the quorum Q w shows the maximum value in the replica set O. Hence, the write quorum Q w includes at least one newest replica whose version counter is the maximum. A replica whose version counter is the maximum is the newest. Every replica is required to be complete in the QB protocol.

For a pair of values x and y, max(x, y) is defined to be the value x if yx. Here, max(x, y) = max(y, x). max(x, y) = ⊥ if xy. The upgrade operation o i + o j on a pair of replicas o i and o j a replica o h such that o h .c=max(o i .c, o j .c) and o h .q k =max(o i .q k , o j .q k ) for every QoS parameter q k . + Q shows o1 + .. + o n for a quorum Q (= {o1, .., o n }). + Q shows a replica o which may not be in a quorum Q but which can be the top replica Q. Here, let m c be max {o i .co i Q} and m q k be max {o i .q k o i Q} in a quorum Q. A replica o i can be upgraded to an lub of a quorum Q if the content parameter o i .c and every QoS parameter o i .q k could be changed to m c and m q k , respectively. In order to reduce the overhead to upgrade a replica, one of the maximal replicas is taken. For example, a maximal replica o i with the smallest number of parameters to be changed is taken. Then, the maximal replica o i is upgraded. A quorum Q is referred to as completable iff + Q is Q. That is, some replica o i can be upgraded to the top replica Q. The quorum Q shown in Figure 1 is incomplete but completable since one of the maximal replicas o5 and o6 can be upgraded.

Types of operations

Let op be an operation supported by an object o, i.e. read or write operation.Let Q op (O) be a quorum for an operation op. Here, there might not be the newest, i.e. top replica in the quorum Q op . That is, the lub Q op is not in the quorum Q op . Even if there is no top replica in the quorum Q op , there is some maximal replica o i in the quorum Q op .

There are two types of write operations by which replicas are changed:

Enriching (E) type.

Impoverishing (I) type.

Suppose a value x is changed with another value y of a content or QoS parameter in an operation op. Here, the value x precedes the value y, i.e. y is newer than x (xy). If op is an enriching type of operation, y is richer than x (xy). Otherwise, yx. A richer replica o i can be easily changed into a poorer replica because data in the replica is just removed without using additional data not in the replica o i . On the other hand, we need additional data which is not in a replica o i to change a poorer replica o i in order to a richer one. Thus, in an enriching operation, some volume of data is added to a replica o i , i.e. the replica o i is enriched. For example, an orange subobject r is added to the replica o4 by a content operation insert as shown in Figure 2. The number of colours (cl) is increased in a QoS operation up-colour (uc), i.e. changed with the fully coloured one as shown in Figure 3 (a). This is an enriching operation. On the other hand, some data is removed from a replica in an impoverishing operation, i.e. the replica is made poorer. For example, some subobject, say an orange r is deleted from a replica o by a content operation delete as shown in Figure 3 (b). On the other hand, further data which is not in the replica is required to increase the frame rate. Thus, it is easier to perform the impoverishing type of write operation than the enriching type on a replica.

Figure 3
figure 3

Enriching and impoverishing operations.

Suppose there are a pair of monochromatic replicas o i and o j of a multimedia object o, which are composed of a blueberry b, orange r, and strawberry s subobjects. A pair of the replicas o i and o j are equivalent, o i o j where o i .c=o j .c=〈b, r, s〉 and o i .cl=o j .cl=mc. Then, a transaction T1 deletes an orange subobject r in the replica o i . The top, i.e. newest replica is the replica o i while o j is obsolete. Since delete is an impoverishing write operation, the replica o j can be made a newest one by just deleting the subobject r. On the other hand, suppose a transaction T2 changes the colour (cl) parameter of the replica o i to be fully coloured in an up-colour (uc) operation. The uc operation is an enriching one. In order to change the replica o j , data to make the replica o j fully coloured has to be sent to the replica o j since the replica o j does not have the data while o i has the data. Even if the operation uc which is applied to the replica o i is obtained to the replica o j , the replica o j cannot be changed without obtaining the colour data from the newest replica o i .

In the QB protocol, Q o p i Q o p j ϕ for every pair of quorums Q o p i and Q o p j of conflicting operations o p i and o p j . The quorum-based protocol for abstract types of operations on objects is discussed in the paper [5].

Multimedia Quorum-Based (MQB) Protocol

Counter vectors

Let Q be a quorum of replicas o1, .., o n (n≥1) of a multimedia object o. Each replica o i is characterized in terms of the content o i .c and QoS parameters o i .q1, .., o i .q l (i = 1, .., n). Here, a tuple of parameters 〈p0, p1, .., p l 〉 is a scheme of a replica o i . Here, the object o i is written as a tuple 〈v0, v1, .., v l 〉 (l≥1) of values, where v0 shows the content c and v k stands for a value of a QoS parameter q k for k=1, .., l. A vector o i .V = 〈v c o , v c1,.., v c l 〉 of version counters is assigned to a replica o i = 〈o i .v0, o i .v1, .., o i .v l 〉. Initially, o i .V = 〈0, 0, .., 0〉. Each time an element o i .q k is changed (k=0, 1, .., l), the counter o i .v c k is incremented so that the counter o i .v c k is the maximum in the quorum Q.

Suppose a counter v c k is incremented since a parameter o i .p k is changed in a replica o i by performing an operation op on the replica o i (k∈{0, 1, .., l}). First, the maximum counter value v is taken in a set {o i .v c k o i Q op } of the counter values of the quorum Q op . In the quorum Q op , the maximum value v of the counter v c k is incremented by one, v = v + 1. Then, o i .v c k = v on every replica o i in the quorum Q op . The value of the k th parameter o i .q k of a replica o i is the newest if the counter v c k is maximum in the quorum Q op .

Let us consider a quorum Q of five replicas o1, o2, o3, o4 and o5 shown in Figure 1, Q = {o1, o2, o3, o4, o5}. Initially, every replica is equivalent in the quorum Q, i.e. o1o2o3o4o5. Each replica o i has one QoS parameter colour (cl) and a vector o i .V= 〈o i .v c0, o i .v c1〉 (i = 1, .., 5). In each vector o i .V, o i .v c0 is a counter for the content parameter o i .c(= o i .v0) and o i .v c1 is a counter for the QoS parameter cl (number of colours) o i .cl(= o i .v1). In every replica o i , initially o i .V= 〈0, 0〉 where o i is composed of three fully coloured subobjects s, g, and a, i.e. o i = 〈〈s, g, a〉, fl〉.

First, the fully coloured replicas o2and o5are updated by changing the colour parameter cl with the monochromatic one, o2= o5= 〈〈s, g, a〉, mc〉. The counter v c1is incremented by one. Here, o2.V= o5.V= 〈0, 1〉 since the second parameter cl is changed.

Next, a pair of replicas o3and o4are obtained by deleting an orange subobject r, i.e. o3.V= o4.V= 〈1, 0〉 where o3= o4= 〈〈s, g〉, fc〉 since the first content v0is changed.

Then, the orange subobject r is deleted in the replica o4, o4= 〈〈s, g〉, mc〉. Here, o4.V= 〈1, 1〉. Here, o 1 o 2 o 4 where o1.Vo2.V and o2.Vo4.V.

Then, the fully coloured lemon subobject l is added to the replica o5, o5= 〈〈b, l, s〉, fc〉. The counter vector o5.V is changed with 〈2, 0〉.

Here, a pair of the replicas o2and o3 are uncomparable (o2o3) where a pair of the vectors o2.V= 〈1, 0〉 and o3.V= 〈0, 1〉 are not comparable. o 1 o 3 since o1.V<o3.V. o 3 o 4 and o 3 o 5 where o3.Vo4.V and o3.Vo5.V, o4o5since o4.V= 〈1, 1〉 and o5.V = 〈2, 0〉. Figure 4 shows the vector o i .V of each replica o i (i = 1, .., 5). Here, a directed edge o i o j shows the newness-precedent relation o i o j . Here, there is no top replica in the quorum Q. Here, max(o4.v c0, o5.v c0) = 2 and max(o4.v c1, o5.v c1) = 1. Hence, if the colour parameter o5.cl of the replica o5 is changed with monochromatic one mc, the replica o5 gets the top replica 〈〈b, l, s〉,mc〉. Here, the counter o5.v c0 is incremented by one, o5.V= 〈2, 1〉. In another way, the replica o4 can be the newest replica 〈〈b, l, s〉, mc〉 by adding a monochromatic lemon l to the replica o4.

Figure 4
figure 4

Counter vectors of replicas.

Write operations

Suppose a transaction T issues a write operation op to change the k th parameter p k of a replica o i (0≤kl). A transaction T first locks a replica o i in the op mode before performing an operation op on the replica o i . Here, a lock mode o p1 is referred to as conflict with a lock mode o p2 if an operation o p1 conflicts with an operation o p2. If the replica o i is already locked in a mode conflicting with the operation op, the transaction T has to wait.

[Write procedure]

First, the transaction T locks every replica o i with an op mode in the quorum Q op . If every replica o i could not be locked, the transaction T waits.

If successfully locked, the transaction T writes the k th element o i .v k of every replica o i and collects the vector o i .V from every replica o i in the quorum Q op .

vc= max ( o1.v c k , .., o n .v c k ) and the transaction T changes o i .v c k with vc + 1 in every replica o i of the quorum Q op .

The version counter v c k of every replica in the quorum Q op is changed with the maximum value vc. In order to reduce the computation and communication overheads, the parameter o i .p k of every replica o i is not always changed while the counter is updated:

If the operation op is an enriching type, the parameter o i .q k of every replica o i is updated in the quorum Q op .

If op is an impoverishing type, the parameter o i .q k of only the top replica o i is updated.

We consider the replicas of the object o shown in Figure 5. Suppose a transaction T1 adds a lemon subobject l to the replicas. The operation add is an enriching type of write operation. Suppose Q add is a quorum {o1, o2, o3} of the replicas for the add operation. Here, o1= 〈〈b, r, s〉, fc〉, o2 = 〈〈b, s〉,fc〉, and o3 = 〈〈b, r, s〉, mc〉. A pair of the replicas o2and o3 are maximal, Ma x Q add = {o2, o3} Q add . Here, max(o1.c, o2.c, o3.c) = 〈b, s〉 (= o2.c = o3.c) and max(o1.cl, o2.cl, o3.cl) = mc. Here, the replica o2 can be the top replica 〈〈b, s〉, mc〉〉 by upgrading the replica o2, o2 = + Q add . Then, the lemon subobject l is added to the replica o2. Here, o2 = 〈〈b, l, s〉, mc〉. A pair of the other replicas o1and o3 are changed so that o1o2 and o3o2. That is, the colour parameter cl of the replica o1is changed with monochromatic one mc, the orange subobject r is deleted, and the lemon l is added to the replica o1. The orange r is deleted and the lemon l is added to the replica o3. Then, a pair of the replicas o2 and o3 get equivalent with the replica o1(o2o3o1 = 〈〈b, s〉, mc〉).

Figure 5
figure 5

Upgrade of a replica.

Next, suppose a transaction T2deletes a subobject b. Here, suppose there are three replicas o1, o2, and o3 shown in Figure 2. One maximal replica o2 is taken and upgraded to 〈〈b, s〉, mc〉. Then, b is removed. Here, o2= 〈〈s〉, mc〉. Since the delete operation is an impoverishing one, the other replicas o1 and o2are not updated and the delete operation is logged in o1 and o2.

Read operations

Next, suppose a transaction T issues a operation op to replicas of an object o to read the parameter p k (k = 0, 1, .., l). The transaction T has to read the k th parameter o i .p k of the newest replicas o i in the quorum Q op . In order to read the newest replica o i , the transaction T has to read the version counter o j .v c k from every replica o i in the quorum Q op :

[Read procedure]

  1. 1

    First, the transaction T locks every replica with an op mode in the quorum Q op . If every replica could not be locked, the transaction T waits.

  2. 2

    If every replica could be successfully locked, the transaction T collects the vector o i .V from every replica o i in the quorum Q op .

  3. 3

    If there is a replica o i such that o j .Vo i .V for every replica o j in the quorum Q op , the replica o i is the top of the replicas in the quorum Q op , i.e. o i = Q op and is the newest in the quorum Q op . The transaction T reads the replica o i and change the counter o i .v c k in every replica in the quorum Q op .

  4. 4

    If there is no top replica in the quorum Q op , the transaction T has to upgrade one maximal replica o i in Q op , i.e. o i = +Q op which is the top Q op of the quorum Q op . The transaction T reads the k th element o i .v k of the replica o i and changes the counter o j .v c k with o i .v c h in every replica in Q op .

Upgrade of a maximal replica

If a top replica is not in the quorum Q op , the transaction T has to obtain a top replica from the replicas in the quorum Q op in the read procedure. We discuss how to upgrade a maximal replica o i to the top replica, i.e. o i = +Q op by using the vectors of the replicas. A replica o i is referred to as satisfy a counter vector V = 〈v c0, v c1, .., v c l 〉 iff o i .v c k = v c k for k = 0, 1, .., l.

First, one maximal replica o i is selected in the quorum Q op as follows:

[Selection of a maximal replica]

  1. 1

    The transaction T obtains a vector V=〈v c 0,v c 1,..,v c l 〉 where v c k = max({o i .v c k o i Q op }) for k = 0,1,..,l from the collection of the vectors collected in the quorum Q op .

  2. 2

    A replica o i which satisfies the vector V = 〈v c 0, v c 1, .., v c l 〉, i.e. o i .v c k = v c k for every k = 0, 1, .., l, shows the top replica Q op . If the replica o i is found, the transaction T reads the replica o i .

  3. 3

    Otherwise, the transaction T selects a replica o i where ∣{v c k o i .v c k = v c k for k = 0, 1, .., l}∣ is the maximal in the quorum Q op . That is, a maximal replica o i is selected so that the overhead to change the replica can be reduced.

The replica o i found at step 3 is not the top in the quorum Q op . Here, a parameter p k of a replica o i is current if o i .v c k is maximum. Otherwise, the parameter p k is obsolete. Hence, the transaction T updates the parameters of the replica o i as follows:

[Upgrade of a maximal replica]

  1. 1

    For each obsolete parameter p k , the transaction T finds a replica o j where o j .p k is current in the quorum Q op which satisfies o i .v c k <v c k .

  2. 2

    The transaction T updates each obsolete parameter o i .p k with the current one o j .p k by using the replica o j .

  3. 3

    The vector o i .V is updated as o i .V= V.

At step 1, the replica o j found by the transaction T has the newest value of each obsolete parameter p k of the replica o i . The value of the parameter o i .p k has to be enriched to the parameter value o j .p k . If the parameter value o i .p k is richer than o j .p k , i.e. o j . p k o i . p k , the QoS parameter of the replica o i can be impoverished just by deleting some data in the replica o i without using additional data. Otherwise, the parameter p k of the replica o i has to be enriched, i.e. we need further data which is not in the replica o i to enrich the value of the QoS parameter p k . Hence, the content o i .v0 of the replica o i is required to be the same as the replica o j , i.e. o i .v0 = o j .v0.

The elements o i .v0, o i .v1, .., o i .v l of every replica o i in the quorum Q op (O) are changed with the newest ones. In addition, the vector o i .V of every replica o i in the quorum Q op has to be changed to be larger than every replica in the replica set O. In every read operation op’, every replica in the quorum Q o p is changed with a replica equivalent with the top replica. It is sure at least one top replica of the replica set O is included in the quorum Q o p . However, the overhead to change every replica in the quorum Q o p is increased. Suppose one top replica is read by the operation op and other replicas in the quorum Q o p are not changed. Hence, the quorum Q op may not include the top replica. Here, the content and QoS parameters of every replica in the quorum Q op can be changed since they are just overwritten. However, the maximum vector value obtained by all the replicas in the quorum Q op may not be the maximum in the replica set O. Suppose Q o p = {o1, o2, o3} and Q op = {o3, o4}. Here, suppose the replica o1 is the top replica. A transaction T1reads the top replica o1in a read operation op’ but does not change the other replicas o2 and o3. Then, another transaction T2 writes the replicas o3and o4in a write-type operation op. Here, the vectors of replicas o3 and o4 are not the newest while the vector of the replica o1 is the newest.

If every replica is updated in a read operation, it implies larger communication and computation overhead to bring update data to every replica and then update every replica in the read quorum. In order to reduce the overhead, we take the following approach:

[Completable quorum]

In a read operation op, only the vector o i .V of every replica o i except the top replica is changed but the content o i .v0and QoS parameters o i .Q of the replica o i are not changed.

In a write operation op, the vector V which shows the top replica in the replica set O can be obtained in the quorum Q op . In the example of the quorums Q o p and Q op , the vectors of the replicas o1, o2, and o3are updated while the content and QoS parameters of the replicas o2 and o3 are not updated by the transaction T1. Then, the transaction T2 overwrites every replica in the quorum Q op . Here, the vector o3.V of the replica o3 is the newest since o3.V is updated by the transaction T1. Hence, the vector of the replica o3 is incremented and then the vector o4.V of the replica o4 is changed with o3.V.

Evaluation

We would like to evaluate the multimedia quorum-based (MQB) protocol compared with the traditional quorum-based (QB) protocol in terms of communication overhead. In the MQB protocol, if a transaction issues a read operation, every replica in a read quorum Q r is not updated while the vector of every replica is updated. We show how much the communication overhead to update every replica in the quorum Q r can be reduced in the MQB protocol.

Suppose there are n replicas, o1, .., o n (n≥1) of an object o. Suppose there are two types of operations, read (r) and write (w). Q r and Q w show a pair of read and write quorums, respectively. n r shows the number |Q r | of replicas in the quorum Q r and n w =|Q w |. Let f r and f w be a pair of probability that a replica is included in the quorums Q r and Q w , respectively. We assume each quorum is randomly constructed. That is, f r =n r /n and f w =n w /n. According to the quorum properties, f r + f w >1 and f w >0.5. Let f be f r + f w −1. Here, f shows probability that a replica is included in both the quorums Q r and Q w . f>0.

In the QB protocol, a transaction T first issues a lock request to every replica in a quorum Q op to perform an operation op∈{r, w}. If every replica is successfully locked in the quorum Q op , the transaction T issues an operation op to replicas in Q op . First, suppose the transaction T issues a write op to every replica in the write quorum Q w and updates the version counter of every replica. Here, totally 4·n w ( = 4·n ·f r ) messages are transmitted. In order to write replicas, data is sent to every replica in the write quorum Q w . Let d be the size of the update data, e.g. the size of a replica. The expected volume of data transmitted is n ·f w ·d.

On the other hand, the transaction T issues a read operation op to one replica and receives a value of the replica in the read quorum Q r . Then, the transaction T sends the newest value to every other replica and updates the version vector of every replica in the QB protocol. The totally 4·n r messages are transmitted between the transaction T and the replicas. In the QB protocol, the newest value of the replicas in the quorum Q r is read into the transaction T and is transmitted to every other replica which is in the quorum Q r but not in the quorum Q w . Hence, the expected volume of data transmitted is n ·f r ·(1−f w )·d.

In the MQB protocol, the transaction T reads the top replica and updates the version counter of every replica in the read quorum Q r . However, the other replicas are not updated in the quorum Q r . The number 4·n r (= 4·n ·f w ) and 4·n w (= 4·n ·f r ) of messages are transmitted for read and write in the MQB protocol, respectively, as well as the QB protocol. The volume of data transmitted to write the replicas is n ·f w ·d in the traditional QB protocol and the MQB protocol. Here, let α be the ratio of the number of write operations to the total number of operations issued by transactions (0≤α≤1). “ α=0” means every request is read and “α=1” shows every request is write. In the QB protocol, the expected volume S Q of data transmitted in each transaction is α ·n ·f w ·d + (1−α)·n ·(1−f w )·f r ·d. The expected volume S M of data transmitted in the MQB protocol is α ·n ·f w ·d + (1−α)·d since no data is transmitted to every other replica in read than the top replica in the quorum Q r .

Figures 6 and 7 show the ratios S Q /(n ·d) and S M /(n ·d) for the write ratio α. Here, we assume there are ten replicas, n = 10. In Figure 6, f w = 0.6, and f = 0.1. In Figure 7, f w = 0.8 and f = 0.1. S Q = S M for α = 1. As shown in Figures 6 and 7, the total amount of data transmitted can be reduced in the MQB protocol compared with the QB protocol. In Figure 8, the ratio S M / (d ·n) is shown for the write probability f w . Here, f w should be lager than 0.5 from the quorum constraint (f w >0.5). The lager f w and α are, the lager amount of data is transmitted. In order to reduce the communication overhead, the write quorum should be smallest. In Figure 9, the data ratio S M / (d ·n) for the number n of replicas is shown where f w = 0.8. Figure 10 shows the data ratio S Q / (d ·n) for the number n of the replicas. The communication overhead of the MQB protocol is increased in complexity O(n) since the ratio to the number n of the replicas is almost O(1).

Figure 6
figure 6

Transmission data volume ( f w = 0.6, f = 0.1).

Figure 7
figure 7

Transmission data volume ( f w = 0.8, f = 0.1).

Figure 8
figure 8

Transmission data volume (MQB).

Figure 9
figure 9

Transmission data volume (MQB) ( f w = 0.8, f = 0.1).

Figure 10
figure 10

Transmission data volume (QB) ( f w = 0.8, f = 0.1).

Conclusions

In this paper, we discussed the multimedia quorum-based (MQB) protocol to keep replicas of a multimedia object mutually consistent.A multimedia object is characterized in content and QoS parameters. Replicas are partially ordered in the newness-precedent relation insertcodeofeq 1here in terms of not only content parameter but also QoS parameters. If a replica o i has a larger vector value than another replica o j , the replica i.e. o i .V>o j .V, o i is newer than o j . A replica o i and the vector o i .V are updated each time the replica o i is manipulated. In order to increase the performance to read replicas, only the counter vector of each replica is updated in a quorum while the content and QoS parameters of the replica are not updated. We evaluated the MQB protocol in terms of the total volume of data transmitted among the replicas. We showed the total amount of data transmitted can be reduced in the MQB protocol compared with the traditional quorum-based (QB) protocol.