IEEE Transactions on Cloud Computing | 2019

Cloudy Knapsack Algorithm for Offloading Tasks from Large Scale Distributed Applications

 
 
 

Abstract


Offloading of tasks to the cloud is one of the approaches to improve the performance of distributed applications. When monetary constraints are present, selection of the tasks to be offloaded becomes important in order to ensure efficient use of the available cloud resources. This becomes a challenge for large scale distributed applications as the decisions on offloading have to be made locally at the nodes without an exact global view of the system. In our earlier work, we modeled this challenge as a new class of formal problems termed cloudy knapsack problem and derived some theoretical bounds on the solution space for worst case task sequences. In many real world applications, the task sequences have inherent patterns which can be exploited to improve offloading. In this work, we propose a cloud offloading algorithm that exploits these patterns through offline and online learning. Experimental evaluation using realistic datasets for a cloud-assisted peer-to-peer search case study reveals that the proposed solution performs close to a hypothetical omniscient offloading algorithm having a complete view of the system. The proposed cloud-assisted peer-to-peer search engine provides a cost-effective approach to address scalability bottleneck in peer-to-peer search engines.

Volume 7
Pages 949-963
DOI 10.1109/TCC.2017.2713776
Language English
Journal IEEE Transactions on Cloud Computing

Full Text