Distributed Storage System Project Wiki
Advertisement

A. Mirror nodes will be used for the following purposes:

  • Storage of data
  • Retrieval of data
  • Creation of mirror nodes


B. A Packet will comprise of multiple fields, viz.:

  • Special Identification Value(for our protocol)
  • Type (Refer to Table T1)
  • Purpose Specific Details
  • Packet Sequence Number
  • Source IP Address
  • Destination IP Address
  • Source MAC Address
  • Destination MAC Address
  • Data Length
  • Data


C. 'Type' will hold any one of the following values, based on the process to be performed by the initiating node.

Table T1[]

TypePurpose
0Storage of data (CLIENT<---->MIRROR Interaction)
1Retrieval of data (CLIENT<---->MIRROR Interaction)
2Creation of a mirror node (MIRROR<---->MIRROR Interaction)
3Validation (CLIENT<---->MIRROR OR MIRROR<---->MIRROR)


D. Algorithms:

1) Storage

Select : a MIRROR node from the list
LABEL A:;
Send : Packet Type 3
Check : Whether connection can be established
if(connection==AVAILABLE)
{
Check availability of space
if(space==AVAILABLE)
{
Send : Packet Type 0;
Start : Storage Process
}
else
{
Select : Next MIRROR node in the list
Goto : LABEL A
}
}
Stop : Storage Process
Free : N/W Connection

2) Retrieval

Select : a MIRROR node from the list
LABEL A;
Send : Packet Type 3
Check : whether connection can be established
if(connection==AVAILABLE)
{
Send : Data packet Type 1;
Start : Retrieval Process
}
else
{
Select : Next MIRROR node in the list
Goto : LABEL A
}
Stop : Retrieval Process
Free : N/W Connection


3) Creation of a mirror node

Select : a MIRROR node from the list
LABEL A;
Send : Packet Type 3
Check : whether connection can be established
if(connection==AVAILABLE)
{
Check : Availability of space
if(space==AVAILABLE)
{
Send : Data packet Type 2;
Start : Mirror creation process
}
else
{
Select : Next MIRROR node in the list
Goto : LABEL A
}
}
Stop : Mirror creation process
Free : N/W Connection
Advertisement