CSAL: A CLOUD STORAGE ABSTRACTION LAYER TO ENABLE PORTABLE CLOUD - - PowerPoint PPT Presentation

csal a cloud storage abstraction layer to enable portable
SMART_READER_LITE
LIVE PREVIEW

CSAL: A CLOUD STORAGE ABSTRACTION LAYER TO ENABLE PORTABLE CLOUD - - PowerPoint PPT Presentation

CSAL: A CLOUD STORAGE ABSTRACTION LAYER TO ENABLE PORTABLE CLOUD APPLICATIONS Zach Hill & Marty Humphrey Dept. of Computer Science, University of Virginia zjh5f@cs.virginia.edu A Cloud Application Worker Worker Worker Front-End User


slide-1
SLIDE 1

CSAL: A CLOUD STORAGE ABSTRACTION LAYER TO ENABLE PORTABLE CLOUD APPLICATIONS

Zach Hill & Marty Humphrey

  • Dept. of Computer Science, University of Virginia

zjh5f@cs.virginia.edu

slide-2
SLIDE 2

A Cloud Application

Worker

2

  • Z. Hill and M. Humphrey, Dept. of Computer Science, University of Virginia
  • Dec. 2, 2010

Object/ Blob Service Table Service Queue Service Front-End User Requests Worker Worker Worker

slide-3
SLIDE 3

Many clouds, many code versions

Worker

3

  • Z. Hill and M. Humphrey, Dept. of Computer Science, University of Virginia
  • Dec. 2, 2010

Blobs Tables Queues Front-End Worker Storage Services Worker Storage Services Front-End

slide-4
SLIDE 4

Single code version, many clouds

Worker

4

  • Z. Hill and M. Humphrey, Dept. of Computer Science, University of Virginia
  • Dec. 2, 2010

Blobs Tables Queues Front-End Worker Storage Services Worker Storage Services Front-End

CSAL CSAL CSAL CSAL CSAL

slide-5
SLIDE 5

CSAL Overview

5

  • Z. Hill and M. Humphrey, Dept. of Computer Science, University of Virginia
  • Dec. 2, 2010

Application CSAL BlobStore

createContainer listContainers deleteContainer getBlob putBlob deleteBlob

QueueStore

createQueue deleteQueue getMessage putMessage peekMessage deleteMessage

TableStore

createTable deleteTable Insert Update Delete Query getItem

Metadata Manager Service Manager S3 Plugin SimpleDB Plugin Azure Queue Plugin … Metadata Store table service(s)

Blob Namespace Table Namespace Q Namespace

slide-6
SLIDE 6

CSAL Namespaces

  • One namespace for each abstraction type
  • Metadata only for containers

 Service endpoint, identifier, user credentials

  • Each abstraction has an independent

metadata store

  • Metadata caching

 Container ops are not very common  If data is stale, simply re-fetch and retry

  • Dec. 2, 2010
  • Z. Hill and M. Humphrey, Dept. of Computer Science, University of Virginia

6

slide-7
SLIDE 7

CSAL Namespaces

  • Dec. 2, 2010
  • Z. Hill and M. Humphrey, Dept. of Computer Science, University of Virginia

7

CSAL X Y X

foo (“X”, http://service1.com, testusr, testKey,…)

Service1 Service2 Service3 Metadata Manager BlobStore

Cache Plugin

  • 2. Lookup “X”

metadata – cache first

  • 1. Call getBlob(“X”, “foo”);
  • 3. Retrieve from table if not

in cache

  • 5. Access “foo” in

“X” in Service1

  • 4. Use metadata to

determine plugin to use

slide-8
SLIDE 8

CSAL Implementation

  • Client-side java library

 i.e. BlobStore.getBlob(“Container”,”foo”);

  • Metadata backing store in the cloud
  • Currently supports Azure & AWS storage

 Both SOAP and REST

8

  • Z. Hill and M. Humphrey, Dept. of Computer Science, University of Virginia
  • Dec. 2, 2010
slide-9
SLIDE 9

Performance of CSAL

  • Adding software layers isn’t free
  • Compare CSAL to Azure’s and Amazon’s SDK

APIs

  • Set of micro-benchmarks to test operation

latency

  • Container Ops and Data Ops

 Expect a slowdown for container ops due to

metadata

9

  • Z. Hill and M. Humphrey, Dept. of Computer Science, University of Virginia
  • Dec. 2, 2010
slide-10
SLIDE 10

Performance – Container Ops

0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 Create Container Create Table Queue Create

Median Operation Time in Seconds

CSAL in AWS

CSAL Total Time Native API Core Op Time Metadata Op Time 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 Create Container Create Table Queue Create

Median Operation Time in Seconds

CSAL in Windows Azure

CSAL Total Time Native API Core Op Time Metadata Op Time

Note: Error Bars indicate 1 Standard Deviation

10

  • Z. Hill and M. Humphrey, Dept. of Computer Science, University of Virginia
  • Dec. 2, 2010
slide-11
SLIDE 11

Performance – Data Ops

0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4

Median Operation Time in Seconds

CSAL in AWS

CSAL Total Time Native API 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4

Median Operation Time in Seconds

CSAL in Windows Azure

CSAL Total Time Native API

Note: Error Bars indicate 1 Standard Deviation

11

  • Z. Hill and M. Humphrey, Dept. of Computer Science, University of Virginia
  • Dec. 2, 2010
slide-12
SLIDE 12

What about Standards?

  • Standards Efforts

 OCCI  OVF

  • Standards take time to develop and are

resisted by vendors

  • Multi-cloud APIs

 SimpleCloud, jClouds, DeltaCloud, LibCloud  SAGA

12

  • Z. Hill and M. Humphrey, Dept. of Computer Science, University of Virginia
  • Dec. 2, 2010
slide-13
SLIDE 13

Future work

  • What if Cloud X doesn’t have

tables/blobs/queues?

 Map one abstraction to other (i.e. filesystem)  3rd party services: Hbase, HyperTable, Cassandra…

  • Placing, replicating, and migrating data in

real-time for performance and/or cost

  • Real-world applications such as multi-cloud

MR

13

  • Z. Hill and M. Humphrey, Dept. of Computer Science, University of Virginia
  • Dec. 2, 2010
slide-14
SLIDE 14

Summary

  • Application lock-in and portability are

problems in clouds

  • Standards are great, but don’t hold your

breath just yet

  • CSAL provides storage abstractions to make

the application code itself portable with little performance impact for common data

  • perations

14

  • Z. Hill and M. Humphrey, Dept. of Computer Science, University of Virginia
  • Dec. 2, 2010
slide-15
SLIDE 15

Questions? zjh5f@cs.virginia.edu

  • Dec. 2, 2010
  • Z. Hill and M. Humphrey, Dept. of Computer Science, University of Virginia

15