# ARAAC: A Rational Allocation Approach in Cloud Data Center Networks
## 2 ARAAC: A Rational Allocation Approach in Cloud-Service Networks
### ARAAC's Allocation Algorithm  
The theme of a sealed-bid auction allows for a kind of privacy. Indeed, bidders submit their bids in private, and no other bidder has the privilege to know the other bidders' offers. It is only the cloud-DCN provider who has such a privilege and who is hereby authorized to make the allocation decision. The decision defines who among the bidders win the auction, as well as the corresponding service price-units \(p_{i}\)* that differ from what has already been offered \(p_{i}\) in their bids. The auction is held for multiple rounds \(t\), \(t\in T\), that are periodically carried out. The durations of such periods are defined according to the offered services and the market requirements.  
To start the allocation process, in each round \(t\), the cloud-DCN provider calls the service tenants to submit their requests in a sealed-bid manner. Each bidder is required to reveal: (1) its **identification** reference \(d_{i}\) (used to link with a reputation database), (2) its required service \(s_{i}\) (i.e., resource units), and (3) its offered **price**-unit \(p_{i}\). Having the aforementioned three pieces of information, the model follows the algorithm presented in Table 1 to choose the candidate bidders for allocation.  
As described in Table 1, the model receives the bidders' profiles as an input. In steps 3-7, it sorts the received bids in descending order according to the offered price unit values \(p_{i}\), and updates the set \(N\) accordingly. For those sorted bids, steps 8 to 12 state that the model checks for the bidders' behavioral record \(e_{i}\) and excludes those who do not satisfy the behavior threshold \(E_{t}\). Steps 13 to 16 show that the model also excludes those bidders who offer low price units that do not satisfy the threshold \(P^{*}_{t}\). Next, it checks who among the remaining bidders in \(N\) fit within the available resource space \(\alpha_{t}S_{t}\) to be served. Hence, in step 18, the model finds the reference \(\vec{i}\) that refers to the last bidder that fits for allocation in round \(t\). Then in step 19, all those who passed the aforementioned check points are stored in a new candidates' set called \(C\). Finally, all those in \(C\) are charged according to the SBP mechanism, through which bidder \(i\) pays the cost unit \(p_{i+1}\). ARAAC is modeled to charge the last candidate bidder \(\vec{i}\) the threshold price unit \(P^{*}_{t}\).  
\begin{table}
\begin{tabular}{l l} \hline \hline
**Allocation Algorithm: Selecting the Candidate Service Tenants for Allocation** \\ \hline
1: & **Input:** Vector of offered bids \(N\), \(\forall\)\(i\in N\), collect (\(d_{i}\), \(s_{i}\), \(p_{i}\)); \\
2: & **Output:** Vector of candidate tenants for allocation \(C\); \\ \hline
3: & **for** all \(i\in N\); \\
4: & **find** the value \(p_{i}\); **then** \\
5: & **sort** them accordingly in \(N\) as \(p_{i}>p_{i+1}>p_{i+2}>...>p_{n-1}>p_{n}\) ; \\
6: & **update \(N\);** \\
7: & **end** \\
8: & **for** all \(i\in N\); \\
9: & **find** the reputation record \(e_{i}\) associated with the id \(d_{i}\), **then** \\
10: & **exclude** all those who have \(e_{i}<E_{t}\); \\
11: & **update \(N\);** \\
12: & **end** \\
13: & **for** all \(i\in N\); \\
14: & **if**\(p_{i}<P^{*}\)**, **exclude** from \(N\); \\
15: & **else** keep in \(N\); \\
16: & **end** \\
17: & **for** all \(i\in N\); \\
18: & **find** bidder \(\vec{i}\), where \(\sum_{i=1}^{\vec{i}}\) (\(s_{i}\leq\alpha_{t}S_{t}\)) and \(\sum_{i=1}^{\vec{i}+1}\) (\(s_{i}>\alpha_{t}S_{t}\)); \\
19: & **move** bidders from \(i\to\vec{i}\) to a new vector \(C\); \\
20: & **end** \\
21: & **for each \(i\in C\);** \\
22: & **choose**\(p_{i+1}\) as a cost-unit; \\
23: & **choose**\(P^{*}\)** as a cost-unit for bidder \(\vec{i}\); \\
24: & **end** \\ \hline \hline \end{tabular}
\end{table}
Table 1: ARAAC’s Allocation Algorithm.