aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ceph/crush (follow)
AgeCommit message (Collapse)AuthorFilesLines
2009-12-03ceph: whitespace cleanupSage Weil1-1/+1
Signed-off-by: Sage Weil <sage@newdream.net>
2009-11-07ceph: make CRUSH hash function a bucket propertySage Weil4-20/+91
Make the integer hash function a property of the bucket it is used on. This allows us to gracefully add support for new hash functions without starting from scatch. Signed-off-by: Sage Weil <sage@newdream.net>
2009-11-06ceph: make CRUSH hash functions non-inlineSage Weil4-95/+105
These are way to big to be inline. I missed crush/* when doing the inline audit for akpm's review. Signed-off-by: Sage Weil <sage@newdream.net>
2009-11-01crush: always return a value from crush_bucket_chooseSage Weil1-1/+1
Even when we encounter a corrupt bucket. We still BUG(). This fixes the warning fs/ceph/crush/mapper.c: In function 'crush_choose': fs/ceph/crush/mapper.c:352: warning: control may reach end of non-void function 'crush_bucket_choose' being inlined Signed-off-by: Sage Weil <sage@newdream.net>
2009-10-07ceph: gracefully avoid empty crush bucketsSage Weil1-2/+7
This avoids a divide by zero when the input and/or map are malformed. Signed-off-by: Sage Weil <sage@newdream.net>
2009-10-06ceph: CRUSH mapping algorithmSage Weil5-0/+1027
CRUSH is a pseudorandom data distribution function designed to map inputs onto a dynamic hierarchy of devices, while minimizing the extent to which inputs are remapped when the devices are added or removed. It includes some features that are specifically useful for storage, most notably the ability to map each input onto a set of N devices that are separated across administrator-defined failure domains. CRUSH is used to distribute data across the cluster of Ceph storage nodes. More information about CRUSH can be found in this paper: http://www.ssrc.ucsc.edu/Papers/weil-sc06.pdf Signed-off-by: Sage Weil <sage@newdream.net>