Every repository with this icon (
Every repository with this icon (
tree bb8084a2bf1b2648b8fa798a78e388bb581f6d9f
parent 89e9b3efd621a9db188dc592ccea3e7f889ecfc1
| name | age | message | |
|---|---|---|---|
| |
.gitignore | ||
| |
COPYING | Wed May 27 06:00:29 -0700 2009 | |
| |
CUT-LICENSE.TXT | Wed May 27 06:00:29 -0700 2009 | |
| |
HACKING.md | Wed Jun 03 06:48:32 -0700 2009 | |
| |
Makefile.am | ||
| |
README.md | Thu Jun 04 01:46:54 -0700 2009 | |
| |
arr.c | Fri Jul 10 23:26:47 -0700 2009 | |
| |
arr.h | Mon Jul 27 19:29:14 -0700 2009 | |
| |
autogen | Wed May 27 06:00:29 -0700 2009 | |
| |
blah.sh | Fri Jul 10 23:26:47 -0700 2009 | |
| |
blob.c | Mon Jun 01 07:59:16 -0700 2009 | |
| |
blob.h | Wed Aug 05 17:39:55 -0700 2009 | |
| |
bundle.c | ||
| |
bundle.h | ||
| |
check-arr.c | Fri Jul 10 23:26:47 -0700 2009 | |
| |
check-bundle.c | Sun Aug 09 16:05:19 -0700 2009 | |
| |
check-cpkt.c | Sun Aug 09 16:05:19 -0700 2009 | |
| |
check-dirent.c | Sun Aug 09 15:22:33 -0700 2009 | |
| |
check-heap.c | Thu Jun 04 10:42:26 -0700 2009 | |
| |
check-http.py | Thu Aug 13 03:51:15 -0700 2009 | |
| |
check-key.c | Sat Jul 11 00:18:33 -0700 2009 | |
| |
check-manager.c | Sun Aug 09 15:22:33 -0700 2009 | |
| |
check-node.c | Mon Aug 10 18:53:56 -0700 2009 | |
| |
check-peer.c | Wed Jul 08 18:40:27 -0700 2009 | |
| |
check-region.c | Thu Jun 04 04:41:39 -0700 2009 | |
| |
check-sanity.py | ||
| |
check-sha512.c | Wed Jun 03 05:52:52 -0700 2009 | |
| |
check-sparr.c | Mon Jul 20 15:36:03 -0700 2009 | |
| |
check-spht.c | Sun Aug 09 15:22:33 -0700 2009 | |
| |
check-util.c | Sun Aug 09 15:28:49 -0700 2009 | |
| |
check-version | Wed Jun 03 06:48:32 -0700 2009 | |
| |
check.py | ||
| |
configure.ac | Mon Jul 20 14:34:18 -0700 2009 | |
| |
cpkt.c | Mon Aug 10 19:50:15 -0700 2009 | |
| |
cpkt.h | Mon Aug 10 19:50:15 -0700 2009 | |
| |
cubbyd.c | ||
| |
cut.c | Thu Jun 25 16:41:46 -0700 2009 | |
| |
cut.h | Wed Jul 01 13:08:28 -0700 2009 | |
| |
cutgen.c | Wed Jul 08 18:36:44 -0700 2009 | |
| |
dirent.c | Sat Aug 08 12:31:01 -0700 2009 | |
| |
dirent.h | Sat Aug 08 12:31:01 -0700 2009 | |
| |
doc/ | Sat Aug 08 12:27:27 -0700 2009 | |
| |
heap.c | Thu Jun 04 10:42:26 -0700 2009 | |
| |
heap.h | Thu Jun 04 10:42:26 -0700 2009 | |
| |
http.c | ||
| |
http.h | ||
| |
key.c | Sat Jul 11 00:18:33 -0700 2009 | |
| |
key.h | Sat Jul 11 19:28:45 -0700 2009 | |
| |
m4/ | Sat Jun 13 11:38:01 -0700 2009 | |
| |
manager.c | ||
| |
manager.h | Mon Aug 10 19:15:43 -0700 2009 | |
| |
net.c | ||
| |
net.h | Wed Jul 08 16:49:19 -0700 2009 | |
| |
node.c | ||
| |
node.h | Mon Aug 10 18:53:56 -0700 2009 | |
| |
peer.c | Mon Aug 10 19:50:15 -0700 2009 | |
| |
peer.h | Mon Aug 10 18:37:22 -0700 2009 | |
| |
prot.c | ||
| |
prot.h | ||
| |
region.c | Sat Aug 08 12:31:01 -0700 2009 | |
| |
region.h | Mon Jul 20 16:10:01 -0700 2009 | |
| |
reslink | Tue Jun 02 08:58:01 -0700 2009 | |
| |
root.html | Tue Jun 02 08:58:01 -0700 2009 | |
| |
sha512.c | Fri Jun 05 07:13:05 -0700 2009 | |
| |
sha512.h | Wed Jun 03 05:52:52 -0700 2009 | |
| |
sparr.c | Wed Jun 10 10:58:53 -0700 2009 | |
| |
sparr.h | Wed Jun 10 10:58:53 -0700 2009 | |
| |
spht.c | Mon Jun 01 02:30:44 -0700 2009 | |
| |
spht.h | Wed Jun 03 11:26:59 -0700 2009 | |
| |
testhelpers.py | ||
| |
util.c | ||
| |
util.h |
Cubby Readme
Store billions of photos easily and efficiently.
Cubby is a distributed key-value store for static blobs. It is simple, fast, scalable, and tuned for the datacenter.
It is ideal for storing thumbnails, photos, videos, and other medium to large files that never change.
Easy to Use
Cubby automatically manages new nodes, failures, and routing.
To add more storage, you just turn on a new box and fire up cubbyd. No configuration is necessary. If a node fails, Cubby will re-replicate files to maintain your desired level of reduncancy.
Reliable
Unlike similar systems, Cubby doesn't have a centralized "manager" or "metadata server" to fail. File data and metadata are distributed evenly and redundantly among all Cubby nodes. If one node fails, directory lookups and file retrieval continue to work with the remaining nodes.
Scalable
Cubby is designed to scale to hundreds of nodes and petabytes of storage.
In the future, if there is demand, we may extend Cubby to use a Distributed Hash Table for routing requests. This would allow the system to scale to millions of nodes and exabytes of storage.
Fast
Cubby stores blobs in an efficient, packed format. It causes at most one disk seek for each file read or written.
This is similar to the technique used in Varnish and Haystack.
Tuned for the Datacenter
We assume the local network is fast, but (of course) we do not assume that the network or hardware is reliable.
We assume that Cubby nodes are responsible citizens; and that clients and peers are never malicious.
We also assume you have plenty of read caching in front of your Cubby cluster. Thus our performance priorities are, roughly in order: minimizing write latency, minimizing jitter in write latency, and maximising throughput. Read performance usually takes a back seat.
These assumptions enable design decisions that provide better performance.
Get Involved
We're just getting started, so there's no mailing list yet. Please send any questions or comments to Keith Rarick kr@xph.us.








