>>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
