Have a personal or library account? Click to login
Scalable Data-Oriented Replication with Flexible Consistency in Real-Time Data Systems Cover

Scalable Data-Oriented Replication with Flexible Consistency in Real-Time Data Systems

Open Access
|Mar 2016

Figures & Tables

figures/Fig01_web.jpg
Figure 1

System Node Components.

Algorithm 1

Identifying Object subscribers.

Inputs → Log matrix(OT), total number of nodes (N), total number of objects (O), CC[N][N]
For each row ∈ OT do using counter i: deadline[OT.objectID][OT.Node]= min (VD[i],DL[i])
loop
Set Boolean matrix:Subscribers [nodes][objects][nodes] ← false;
For each row ∈ deadline[O][N] using iterator (i) do:
         Set ObjectID ← i
         Set counter C ← 0
         For each col ← deadline[o][N] using iterator j
             IF (deadline[i][j] ≠ Φ) then
                  set VD= deadline[i][j]; set NodeID =j;
                  set temp[C++] ← NodeID; // temporary structure
             End if
         Loop
         For x from 0 to C−2
             For iterator y from x+1 to C−1
                  IF CC[temp[x]][temp[y]]<VD then
                      Subscribers[temp[x]][ObjectID][temp[y]] ← True;
                      Subscribers[temp[y]][ObjectID][temp[x]] ← True;
                  End if
             loop
         loop
loop
Outputs → Subscribers[N][O][N]
figures/Fig02_web.jpg
Figure 2

Distributor (publisher) module.

Algorithm 2

Rep-read(O): Retrieving recent information.

Inputs → data object identifier ObjectID
Set O ← Object_ID
Set i ← 0
Temp[][] ← ø
For each row ∈ Rep_dir[][Object_ID] do
     If Rep_dir[row][ ObjectID]= O then
            Temp[i][value] = Rep_dir[row][ value]
            Temp[i][TS] = Rep_dir[row][TS]
          Break;
End if
i ← i + 1
Loop
     sort(temp) on TS descending
Object_recent[value] ← Temp[i][value]
Object_recent[TS] ← Temp[i][TS]
outputs → Temp[i][TS] & Temp[i][value] of most recent value of ObjectID
Algorithm 3

On-demand Read Transactions.

Inputs → Object Id (O)
         //Read object’s value and timestamp from local database
Set SrcState ← Object_value
Set SrcTS ← Object_ TS
         //Read object’s value and timestamp from Rep_dir in
Set RState ← Rep_read.get(value)
Set RTS ← Rep_read.get(TS)
         IF RTS<SrcTSthen // less recent
         State ← RStateelse State
         Else State ← SrcState
         End IF
         //Update local value of to Object_Id V
         Local_Database [Object_Id][value] ← State
         Return(State)
Outputs → value for (O)
Table 1

Experiment settings.

ParameterDefault value
# Nodes10
Database size100 objects/node
Data size64 byte
Validity interval1−2.8 sec
Transaction size5 update operations
Transaction arrival time[200–1,000]
Table 2

Number of write operations generated in each node.

NodeN1N2N3N4N5N6N7N8N9N10total
Workload 121232622304340434130319
Workload 21011031061021101231201231211111,120
Table 3

Storage Cost Evaluation of the proposed protocol.

Cluster Capacity23456Full
Storage cost128192256320384640
Table 4

Number of migration objects (transmitted messages).

# write operations# migration objects
Proposed workDYFRAM
Workload 19846201,385
Workload 24,0081,0813,173
figures/Fig03_web.jpg
Figure 3

Maximum Load Evaluation.

figures/Fig04_web.jpg
Figure 4

Comparative Evaluation with DYFRAMA.

figures/Fig05_web.jpg
Figure 5

CPU utilization of present work.

figures/Fig06_web.jpg
Figure 6

Comparative evaluation from the proposed protocol and other works.

Language: English
Published on: Mar 17, 2016
Published by: Ubiquity Press
In partnership with: Paradigm Publishing Services
Publication frequency: 1 issue per year

© 2016 Rashed Salem, Safa'a S. Saleh, H. M. Abdul-kader, published by Ubiquity Press
This work is licensed under the Creative Commons Attribution 4.0 License.