Input: Tmax: number of transactions issued in the database

Fmax: number of the disjoint fragments used for allocation

Cmax: number of clusters in the distributed database system

Step 1: Set 1 to k

Step 2: Do steps (3 - 32) until k > Tmax

Step 3: Set 1 to i

Step 4: Do steps (5 - 30) until i > Fmax

Step 5: Set False to allocation flag

Step 6: Set 1 to j

Step 7: Do steps (8 - 26) until j > Cmax

Step 8: initialize Cost of Remote Update (0) to 0

initialize Cost of Remote Communication (0) to 0

initialize Cost of Remote Retrieval (0) to 0

Step 9: Set 1 to y

Step 10:Do steps (11 - 17) until y > Cmax

Step 11: If y ¹ j Then

Do steps (12-15)

Else

Go to step (15)

Step 12: Cost of Remote Update(y) = Cost of Remote Update(y -1)

+ (Cost of Local Update * Average Frequency of Remote Update)

Step 13: Cost of Remote Communication(y) = Cost of Remote Communication(y -1)

+ (Average Cost of Remote Communication * Average Frequency of Local Update * Uratio)

Step 14: Cost of Remote Retrieval(y) = Cost of Remote Retrieval(y -1)

+ (Cost of Communication between Clusters * Frequency of Remote Retrieval * Rratio)

Step 15: End If

Step 16: Add 1 to y

Step 17: Loop

Step 18: Cost of Allocation = Cost of Local Retrieval + Cost of Local Update + Cost of Storage + Cost of Remote Update + Cost of Remote Communication

Step 19: Cost of Not allocating = Cost of Local Retrieval + Cost of Remote Retrieval

Step 20: Allocation Decision Value = (Cost of Not allocating >= Cost of Allocation)

# Comments: Allocation Decision Value is a Boolean value #

Step 21: If Allocation Decision Value = True Then

Go to step (22)

Else

Go to step (23)

Step 22: Allocate the fragment to the current cluster

Set True to allocation flag

Go to step (24)

Step 23: Cancel the fragment from the current cluster

Step 24: End If

Step 25: Add 1 to j

Step 26: Loop

Step 27: If allocation flag = False Then

Allocate the fragment to the cluster who has the least communication cost

Step 28: End If

Step 29: Add 1 to i

Step 30: Loop

Step 31: Add 1 to k

Step 32: Loop