On Fri, 21 Apr 2017, Elita Lobo wrote: > Hi, > > We were going through get_min_avail_to_read_shards function and we had > a query regarding the same. > > int get_min_avail_to_read_shards( > const hobject_t &hoid, ///< [in] object > const set<int> &want, ///< [in] desired shards > bool for_recovery, ///< [in] true if we may use non-acting replicas > bool do_redundant_reads, ///< [in] true if we want to issue > redundant reads to reduce latency > //set<pg_shard_t> *to_read ///< [out] shards to read > //); ///< @return error code, 0 on success > map<pg_shard_t, list<pair<int,int>>> *to_read); > > In which all cases is do_redundant_reads flag set and what is the > purpose of this flag? The idea is that if you have a k+m code, you read all k+m shards (not just k of them), and use whatever replies come back first to assemble or recover the data block. It helps reduce tail latency on EC pools by preventing the slowest responder from delaying the reply (as long as the slowest responder isn't the primary). 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