This seems to be working ok for the most part, but I noticed that
using large files gives errors getting them (but not putting them).
The problems start after 2GB which, as you said, is larger than should
be used in this method.  It shouldn't affect us since we shouldn't be
using this for files that large, but I thought it was worth reporting.

This is the test:

dd if=/dev/zero of=4.bin bs=1M count=100
export FILE=4.bin
rados -p swift_ring ls -
rados -p swift_ring put $FILE.tmp $FILE --object-locator $FILE
rados -p swift_ring clonedata $FILE.tmp $FILE --object-locator $FILE
rados -p swift_ring ls -
rados -p swift_ring rm $FILE.tmp --object-locator $FILE
rados -p swift_ring ls -
rados -p swift_ring stat $FILE
rm -f $FILE.downloaded
rados -p swift_ring get $FILE $FILE.downloaded

These are the results:

dd if=/dev/zero of=4.bin bs=1M count=1000:
# rados -p swift_ring stat $FILE
swift_ring/4.bin mtime 1358967088, size 1048576000
rados -p swift_ring get $FILE $FILE.downloaded
<ok>

dd if=/dev/zero of=4.bin bs=1M count=2000:
# rados -p swift_ring stat $FILE
swift_ring/4.bin mtime 1358967172, size 2097152000
# rados -p swift_ring get $FILE $FILE.downloaded
<ok>

dd if=/dev/zero of=4.bin bs=1M count=3000:
# rados -p swift_ring stat $FILE
swift_ring/4.bin mtime 1358966844, size 3145728000
# rados -p swift_ring get $FILE $FILE.downloaded
error getting swift_ring/4.bin: Unknown error 1149239296

dd if=/dev/zero of=4.bin bs=1M count=8000:
# rados -p swift_ring stat $FILE
swift_ring/4.bin mtime 1358967388, size 8388608000
# rados -p swift_ring get $FILE $FILE.downloaded
error getting swift_ring/4.bin: Bad address





On Tue, Jan 22, 2013 at 12:28 PM, Sage Weil <s...@inktank.com> wrote:
> On Tue, 22 Jan 2013, Nick Bartos wrote:
>> Thanks!  Is it safe to just apply that last commit to 0.56.1?  Also,
>> is the rados command 'clonedata' instead of 'clone'?  That's what it
>> looked like in the code.
>
> Yep, and yep!
>
> s
>
>>
>> On Tue, Jan 22, 2013 at 9:27 AM, Sage Weil <s...@inktank.com> wrote:
>> > On Tue, 22 Jan 2013, Nick Bartos wrote:
>> >> Assuming that the clone is atomic so that the client only ever grabbed
>> >> a complete old or new version of the file, that method really seems
>> >> ideal.  How much work/time would that be?
>> >>
>> >> The objects will likely average around 10-20MB, but it's possible that
>> >> in some cases they may grow to a few hundred MB.
>> >
>> > You're in luck--my email load was mercifully light this morning.
>> >
>> >   713  ./rados -p data ls -
>> >   714  ./rados put foo.tmp /etc/passwd  -p data --object-locator foo
>> >   715  ./rados clone foo.tmp foo -p data --object-locator foo
>> >   716  ./rados -p data ls -
>> >   717  ./rados -p data rm foo.tmp --object-locator foo
>> >   718  ./rados -p data ls -
>> >   719  ./rados -p data get foo -
>> >
>> > see wip-rados-clone.
>> >
>> > sage
>> >
>> >
>> >>
>> >>
>> >> On Mon, Jan 21, 2013 at 9:14 PM, Sage Weil <s...@inktank.com> wrote:
>> >> > 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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to