Re: Consistently reading/writing rados objects via command line

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 21 Jan 2013, Gregory Farnum wrote:
> On Monday, January 21, 2013 at 5:01 PM, Nick Bartos wrote:
> > I would like to store some objects in rados, and retrieve them in a
> > consistent manor. In my initial tests, if I do a 'rados -p foo put
> > test /tmp/test', while it is uploading I can do a 'rados -p foo get
> > test /tmp/blah' on another machine, and it will download a partially
> > written file without returning an error code, so the downloader cannot
> > tell the file is corrupt/incomplete.
> >  
> > My question is, how do I read/write objects in rados via the command
> > line in such a way where the downloader does not get a corrupt or
> > incomplete file? It's fine if it just returns an error on the client
> > and I can try again, I just need to be notified on error.
> >  
> You must be writing large-ish objects? By default the rados tool will upload objects 4MB at a time and you're trying to download mid-way through the full object upload. You can add a "--block-size 20971520" to upload 20MB in a single operation, but make sure you don't exceed the "osd max write size" (90MB by default).
> This is all client-side stuff, though ? from the RADOS object store's perspective, the file is complete after each 4MB write. If you want something more sophisticated (like handling larger objects) you'll need to do at least some minimal tooling of your own, e.g. by setting an object xattr before starting and after finishing the file change, then checking for that presence when reading (and locking on reads or doing a check when the read completes). You can do that with the "setxattr", "rmxattr", and "getxattr" options.

With a bit of additional support in the rados tool, we could write to 
object $foo.tmp with key $foo, and then clone it into position and delete 
the .tmp.

If they're really big objects, though, you may also be better off with 
radosgw, which provides striping and atomicity..

sage
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux