>>Do for every read 1 Kb rbd will read 4MB from hdd? for write? 

rados support partial read|write.

Note that with erasure code, write need to full rewrite object. (so 4MB)
I think that with key-value-store backend (like leveldb), read/write are full 
too.


some interesting notes here :
http://eu.ceph.com/docs/v0.68/dev/osd_internals/erasure_coding/developer_notes/

"
If an object is large, reading or writing all of it when changing only a few 
bytes is expensive. It is more efficient to only read or write a subset of the 
object. When a client writes on an existing object, it can provide the offset 
and the length of the write as well as the payload with the CEPH_OSD_OP_WRITE 
operation. It is refered to as partial write and is different from the 
CEPH_OSD_OP_WRITEFULL operation which writes the entire object at once.

When using replicas for partial writes or reads, the primary OSD translates 
them into read(2) and write(2) POSIX system calls. When writing, it then 
forwards the CEPH_OSD_OP_WRITE message to the replicas and waits for them to 
acknowledge they are done."






----- Mail original ----- 

De: "Timofey Koolin" <[email protected]> 
À: [email protected] 
Envoyé: Jeudi 5 Juin 2014 22:56:38 
Objet: [ceph-users] Minimal io block in rbd 

Do for every read/write rbd read/write full block of data (4MB) or rbd can 
read/wite part of block? 

For example - I have a 500MB file (database) and need random read/write by 
blocks about 1-10Kb. 

Do for every read 1 Kb rbd will read 4MB from hdd? 
for write? 


_______________________________________________ 
ceph-users mailing list 
[email protected] 
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com 
_______________________________________________
ceph-users mailing list
[email protected]
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com

Reply via email to