Re: When is do_redundant_reads flag set?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux