Keyun Cheng

DEPSKY: A High-Availability and Integrity Layer for Cloud Storage

Last updated: 28-01-2021

Download

EuroSys, 2011

Summary

This paper presents DEPSKY, a system that improves the availability, integrity and confidentiality of information in clouds through encryption, encoding and replication of the data on cloud-of-clouds. They proposed Byzantine quorum system protocols named DepSky-A and Depsky-CA, which improve the availability and the access latency compared with individual clouds. Depsky presents a single-writer multi-reader read/write register abstraction atop of multiple clouds. The estimated monetary costs of using DEPSKY is twice the cost of using a single cloud, which is acceptable as stated. DEPSKY doesnot require server (storage node) to execute any additional code, but still being efficient by requiring only two communication round-trips for each operation (read / write).

Details

System Architecture

depsky-architect

  1. DEPSKY is implemented in Java as a software library in the client side only.
    • Data unit manager, system core (functions), cloud provider drivers (including local storage)
    • Client invoke cloud operations (put, get, delete, etc..)

Data model

depsky-data-model

  1. Three levels of data abstraction in DEPSKY data model.
    • Conceptual data unit, which the algorithm work. Support creation, destruction.
    • Generic data unit (or container) in an abstract storage cloud. Seperates data and metadata.
    • Data unit implementation with container translated into the specific constructions supported by each cloud provider.
  2. metadata: multiple versions, arbitrary sizes

System Model

  1. Single writer, multiple readers.
    • “Presented” do not support concurrent write.
    • How to support concurrent write? low contension lock: a zero byte file lock-ID-T, with a safety margin “theta”, concerning the synchronized clocks between multiple writers

Algorithms for r/w

Assumption:

  1. DEPSKY-A

(1) write:

  1. DEPSKY-CA (Intergrates DEPSKY-A with additional cryptographic and coding functions)
    • Add erasure coding (RS) and secret sharing scheme
    • data[i] = encode(encrypt(raw_data, secret_key)) + share(secret_key)[i]
    • read: gets fastest f + 1 copies of data

Optimization

Other protocols

  1. Create/delete data unit from clouds

  2. GC (delete old versions behind)

  3. Cloud reconfiguration

    • repetitively read all data units from clouds, create data unit on the new cloud, and write the data unit to the new cloud
    • delete the data unit from the cloud that is not being used

Evaluation

Strength

Weakness

  1. Common problems for client-side only deployment
    • Computation required: EC, hashing, etc, although in the paper, EC and secret sharing is not the bottleneck.
    • Overall throughput maybe bounded by the client
    • read: the data is read from ALL nodes in parallel, the performance maybe bounded by the client bandwidth.
      • Read optimization (sorting the clouds) takes effect in heterogenious deployment.
    • write: the writeQuorum function requires ACKs from n - f nodes. In actual implementation, write can also be parallelized.
  2. Lock scheme
    • Single write only.
    • Require coordinator system (ZooKeeper, DepSpace, etc.) to coordinate multiple writes
  3. Passive system status management
    • Monitoring of cloud status (engineering problem)
    • System failures (repairing) should be handled manually
      • e.g. handling for failed write, auto recovery when some of the clouds fail
  4. engineering related
    • storage interfaces
    • no centralized metadata store for file listing