User:Thegiorgio/Object Storage

Object Storage

Object storage a method of storing arbitrary collections of data, in a non hierarchical flat address space. An object has both data (an uninterpreted sequence of bytes) and metadata (an extensible set of attributes describing the object) parts and is referenced by an unique key, typically alphanumerics characters or a very large integer.

Properties
Object stores are typically accessed using a RESTFUL interface as the flat address space allows for stateless client–server communications, HTTP/1.1 being the most used protocol. This design allows clients to cache responses, well-managed caching partially or completely eliminates some client–server interactions, further improving scalability and performance. A client cannot ordinarily tell whether it is connected directly to the end server, or to an intermediary along the way. Intermediary servers may improve system scalability by enabling load balancing and by providing shared caches. They may also enforce security policies.

This layered architecture hides system complexity and actual physical hardware from the client, thus allowing object store systems to evolve and change their internal mapping and configuration without impacting client side applications.

Benefits
Object storage systems provide a simple ressource oriented interface to client applications, typically based around GET, PUT, DELETE REST operations which enables a new class of storage virtualization and self healing capabilities. Not having to walk though a complex hierarchical structure and maintain central metadata simplifies administrative tasks and a new kind of storage systems called organic storage systems is evolving as there are a very good fit for object storage systems.

Organic storage systems embrace self healing capabilities, elastic scalability and operational simplicity of object storage systems which would not have been possible without the object abstraction as opposed to a file system interface.

Typical usage
Object storage system are very well suited for petabyte storage of unstructured content either in private cloud storage or hosted cloud and many cloud storage software are implemented using this model. Typical applications include:
 * Email storage
 * Storage virtualization
 * User generated content: photos, videos, ...

Comparison with distributed file systems

 * TODO