If we want to discard a range of an object, we will zero(use fallocate
to punch a hole) the range now. In general this introduce some overhead(extra writes).
If the filesystem ontop of RBD holding lots of small files, this
behavior will bring big performance penalty.
Adding a flag that allow user to control if they want to zero the
range.
Signed-off-by: Xiaoxi Chen <xiaoxi.chen@intel.com>
We don't want to spit out the warning twice, and we don't have cct
anyway.
Also test_init is annoying; we should try to kill it.
Signed-off-by: Sage Weil <sage@redhat.com>
osd: coalesce into single omap_setkeys for normal writes
Tested-by: Andreas Bluemle <andreas.bluemle@itxperts.de>
Reviewed-by: David Zafman <dzafman@redhat.com>
ISA-L 2.13 brings better performance on Avoton (20%). There's no impact on Xeon
platform. The details are in the release notes.
There's a new API ec_encode_data_update() for incremental encoding
and decoding. The other highlevel API keeps the same as in 2.10
Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>
Nightly ran and encountered a situation in which fstat following
ftruncate reported a size not equal to the truncated size.
Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
cls_rbd: fix read past end of bufferlist c_str() in debug log msg
Reviewed-by: Haomai Wang <haomaiwang@gmail.com>
Reviewed-by: Josh Durgin <jdurgin@redhat.com>
When we want to get mdsmap, we try to get_version()
and the return value err = 0 means success.
The assert verified r == 0. r would not change in this flow.
It always meet assert and lead mon failure.
I think this verify should be:
assert(err == 0)
It will help to check return value of get_version().
If you have any questions, feel free to let me know.
Thanks!
Signed-off-by: Vicente Cheng <freeze.bilsted@gmail.com>
...by calling get_down_mds_set instead of get_failed_mds_set.
Also remove a redundant if(true) around this region.
Signed-off-by: John Spray <john.spray@redhat.com>
For places where we would like to treat failed
and damaged MDS ranks the same, like detecting
when someone has dropped offline.
Signed-off-by: John Spray <john.spray@redhat.com>
The initial is_degraded() check guarantees that
the 'in' set is equal to the 'up' set. Later,
this calls get_mds_set and assigns it to a variable
called 'up'.
It's clearer to use get_up_mds_set into the variable
called up (this was confusing when debugging #11218
which was itself a result of is_degraded() ignoring
damaged ranks).
Signed-off-by: John Spray <john.spray@redhat.com>
This mismatch about whether pool IDs are signed or unsigned is
a persistent annoyance. I'm now casting the unsigned down to signed space
because apparently the OSD is using negative IDs for temporary object
namespaces.
Signed-off-by: Greg Farnum <gfarnum@redhat.com>