Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

What's Akubra About?

- standard interface for reading/writing files
  at a different level of abstraction than a
  filesystem
- transactional
- exploring web-based exposure
- From the Akubra wiki: Requirements and Goals

Note: Akubra wiki is at topazproject.org/akubra
Anyone is welcome to sign up to the dev and user mailing lists.

Filesystem vs. BlobStore

A normal filesystem:
- has directories
- allows partial reads/writes of files

An Akubra BlobStore:
- has a collection of URI-addressable bitstreams
- may allow partial reads (InputStreams can skip()...)
- ...but does not allow partial writes

Java API

Blob (A finite, readable bitstream)
BlobStore (For getting connections)
BlobStoreConnection (For CRUD operations)
 

Transactions

  Level of support varies per-implementation (some can "fake it")
  Why: To execute a mixed set of CRUD operations as one atomic unit of work.
  Observation: We can build a transactional blob store on top of a non-transactional one
  ...with the help of a DB.

Example non-transactional BlobStore: FSBlobStore (see FSBlobStoreConnection)

Higher-level BlobStore TBD:
  - Uses FSBlobStore to persist data
  - Uses database to support transactions (via id mapping)

Other possible storage Plug-Ins:

  - S3 (anything based on current LLStore should be easy to port over)
  - ZFS (already transactional, does not need layering)
  - Centera (content-addressible)
  - Sam/QFS (hierarchical storage implies graceful handling of delays..)

Web-based exposure?

...

This post has moved here.