Best Distributed Filesystem for Commodity Linux Storage Farm

Best distributed filesystem for commodity linux storage farm

check also GlusterFS

Edit (Aug-2012): Ceph is finally getting ready. Recently the authors formed Inktank, an independent company to sell commercial support for it. According to some presentaions, the mountable POSIX-compliant filesystem is the uppermost layer and not really tested yet, but the lower layers are being used in production for some time now.

The interesting part is the RADOS layer, which presents an object-based storage with both a 'native' access via the librados library (available for several languages) and an Amazon S3-compatible RESP API. Either one makes it more than adequate for adding massive storage to a web service.

This video is a good description of the philosophy, architecture, capabilities and current status.

Distributed caching for large objects

Caching large objects in NoSQL stores is generally not a good idea, because it is expensive in term of memory and network bandwidth. I don't think NoSQL solutions shine when it comes to storing large objects. Redis, memcached, and most other key/value stores are clearly not designed for this.

If you want to store large objects in NoSQL products, you need to cut them in small pieces, and store the pieces as independent objects. This is the approach retained by 10gen for gridfs (which is part of the standard MongoDB distribution):

See http://docs.mongodb.org/manual/applications/gridfs/

To store large objects, I would rather look at distributed filesystems such as:

  • Ceph
  • GlusterFS
  • MapR-FS

These systems are scalable, highly available, and provide both file and object interfaces (you probably need an object interface). You can also refer to the following SO question to choose a distributed filesystem.

Best distributed filesystem for commodity linux storage farm

Up to you to implement a cache on top of these scalable storage solutions.

Is there a reason I can't initialize a CALayer outside a UIView class?

You don't own the layer that you get from the layer method, so you have to take ownership. Sometime after your method returns, the layer is being deallocated and that is causing your crash. To cure this:

layer = [[CALayer layer] retain]; // now we explicitly take ownership of this layer

Also, don't forget to release the layer since you own it now:

// in your dealloc method
[layer release];

You should review the Memory Management Programming Guide for Cocoa for more details on when you own objects and what your responsibilities are regarding memory management.

Is it possible to persist (without reloading) AJAX page state across BACK button clicks?

Try to use localStorage object. Here is crossbrower libs jStorage and WEBSHIMS json-storage



Related Topics



Leave a reply



Submit