20140605_a virtual cloud computing provider for mobile devices.p

A virtual Cloud Computing Provider for Mobile Devices


Gonzalo Huerta-Canepa(kaist), Dongman Lee(kaist)


Abstract

스마트 디바이스에서 처리 못하는 heavy한 작업일 경우, 클라우드(infrastructure-based)로 offloading 시켜 작업을 하는 방식을 사용함.

하지만 클라우드에 접근하는 것이 항상 보장되지 않으므로 (가격 문제 등), 인접한 스마트 디바이스를 이용하여 Virtual cloud computing platform을 만들어 이 문제를 해결한다.



Introduction

일반적으로 클라우드 서비스를 이용하는 가격은 비싸지 않지만, 그 서비스에 연결하기 위해서 필요한 네트워크 사용료가 비쌈(3G나 4G LTE를 사용하는 상황에서). 따라서 클라우드에 연결하는 비용이 비싸기 때문에 사용 못하는 상황이 생길 수 있음.

이에 대한 해결책으로 인접한 모바일 디바이스들을 P2P방식으로 연결해 AD HOC네트워크를 만들어서 작업을 offloading 시키는 것을 제안함.

작업 offloading을 위한 framework를 virtual mobile cloud computing provider라고 지칭하고 이것을 생성하기 위한 가이드라인을 이 페이퍼를 통해 제시함.


이 framework는 인접한 유저의 모바일 디바이스를 사용하여 기존의 클라우드를 흉내냄.


이것을 위해서 근처에 있는 Stable한 노드들을 찾야아함 (의문점 1. 어떻게 stable한 것을 판별할까?)

stable mode : 그 지역에 계속 머물러 있거나 동일한 패턴으로 활동하는 것을 의미





status of vicinity nodes




connect with stable-mode nodes



stable한 노드들과 연결되어 virtual cloud computing provider를 구성하여 작업을 offloading 시킴.


Motivation

virtual cloud computing provider를 이용하면 두가지 benefits을 얻을 수 있음.

1) offloading benefit을 유지할 수 있음(기존의 클라우드 인프라를 이용했을 때와 마찬가지로)

2) performance enhanced (어플리케이션의 실행 시퀀스를 parallel하게 수정할 필요가 있음)

하지만 해결해야할 issue가 있음

리소스 제공자에게 인센티브가 없음.

이것을 해결하기 위해서

같은 task를 사용하는 user를 찾아서 task를 그 user들에게 나누는 방법을 사용함


Design Considerations

한 mobile devices에서 locally 실행 불가능한 task를 recognize하기 위한 Resource monitoring and management system

기존에 존재하는 cloud api와 seamless하게 통합될 수 있어야 함

->원래 cloud를 사용하는 앱의 경우, virtual cloud를 통해서도 실행이 가능해야하기 때문에 같은 api를 지원해야함

mobile device의 특징을 고려한 적합한 offloading 및 partitioning scheme

비슷하거나 같은 목표를 가진(같은 task나 비슷한 task를 수행하는) 유저를 찾기 위한 activity detection

->특히 최소한의 potential disconnection을 위해서 stable한 user를 찾는 것이 중요

spontaneous한 네트워크 interaction이 지원되야함

중간 결과 저장을 위한 memory cache scheme

가볍고(lightweight) resource 친화적인 아키텍쳐

-> 로컬에서 혼자 돌린 것보다 느려서는 안됨


Architecture

Evaluation

Evaluation Setting

each input data <  100kb

virtual machine on mobile : JamVM on jailbroken iPod touch

version of hadoop : 0.18

cloud computing provider : 4 servers with OpenJDK VM 6

Result and Discussion


mobile device에서 direct하게 실행 시킨 결과보다 대략 1% 성능 감소(성능 차이 거의 없음)

이는 RPC 및 waiting time 때문에 생긴 문제라고 생각 할 수 있음.

하지만 execution time이 줄었으므로( saving in processing time) energy saving 효과를 볼 수 있음 


실험에서 사용된 input data는 100kb 미만의 작은 파일사이즈로 구성됨.

이와 같은 작은 사이즈의 파일은 hadoop의 연산에 있어서 퍼포먼스 측면에서 불이익이 있음


1) 각각의 map processing 마다 새로운 JVM이 만들어짐

mapred.job.reuse.jvm.num.tasks 옵션을 수정하여 해결함->2~3% 성능 향상

2) 각각의 파일에 대해서 데이터 테이블을 기록하기 때문에 메모리 문제 발생 가능

Concatenation(연속화)라는 기법을 사용해서 해결-> 모든 경우에 사용 가능하진 않음

3) start up 시점에서 데이터 노드가 자신의 데이터를 스캐닝 하는 시간이 길어짐







저작자 표시 비영리 변경 금지
신고
Posted by youngjinkmi0706

20140526 - 20140530

2014.05.26 12:47

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.


 public static void main(String[] args) throws IOException {    

     startService(args, null);

  } 


static void startService(String[] args, DatagramSocket registrationSocket) throws IOException {

    StringUtils.startupShutdownMessage(Nfs3.class, args, LOG);    

    /* Nfs3 constructor에서 

     * super(new RpcProgramNfs3(conf, registrationSocket), conf); << Nfs3Base()

     * Nfs3Base()에서 NFS3_SERVER_PORT 설정   

     */

    final Nfs3 nfsServer = new Nfs3(new Configuration(), registrationSocket);

    

    /* public void startServiceInternal(boolean register) throws IOException 에서

     * nfs server를 mount 시키고 

     * Nfs3Base.java에 있는 start(boolean register)를 호출하여 TCP server를 실행시킨다

     * NFS는 오직 TCP server만을 지원하며 UDP는 지원하지 않는다

     */

    nfsServer.startServiceInternal(true);

  }

저작자 표시 비영리 변경 금지
신고
Posted by youngjinkmi0706


티스토리 툴바