Re: [PATCH] PG: Do not discard op data too early

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

 



Have you tested that this does what you want? If it does, I think
we'll want to implement this so that we actually release the memory,
but continue accounting it.

On Thu, Sep 27, 2012 at 2:56 PM, Jim Schutt <jaschut@xxxxxxxxxx> wrote:
> Under a sustained cephfs write load where the offered load is higher
> than the storage cluster write throughput, a backlog of replication ops
> that arrive via the cluster messenger builds up.  The client message
> policy throttler, which should be limiting the total write workload
> accepted by the storage cluster, is unable to prevent it, for any
> value of osd_client_message_size_cap, under such an overload condition.
>
> The root cause is that op data is released too early, in op_applied().
>
> If instead the op data is released at op deletion, then the limit
> imposed by the client policy throttler applies over the entire
> lifetime of the op, including commits of replication ops.  That
> makes the policy throttler an effective means for an OSD to
> protect itself from a sustained high offered load, because it can
> effectively limit the total, cluster-wide resources needed to process
> in-progress write ops.
>
> Signed-off-by: Jim Schutt <jaschut@xxxxxxxxxx>
> ---
>  src/osd/ReplicatedPG.cc |    4 ----
>  1 files changed, 0 insertions(+), 4 deletions(-)
>
> diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc
> index a64abda..80bec2a 100644
> --- a/src/osd/ReplicatedPG.cc
> +++ b/src/osd/ReplicatedPG.cc
> @@ -3490,10 +3490,6 @@ void ReplicatedPG::op_applied(RepGather *repop)
>    dout(10) << "op_applied " << *repop << dendl;
>    if (repop->ctx->op)
>      repop->ctx->op->mark_event("op_applied");
> -
> -  // discard my reference to the buffer
> -  if (repop->ctx->op)
> -    repop->ctx->op->request->clear_data();
>
>    repop->applying = false;
>    repop->applied = true;
> --
> 1.7.8.2
>
>
> --
> 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
--
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