Re: [PATCH 07/25] mds: don't early reply rename

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

 



On Wed, 23 Jan 2013, Yan, Zheng wrote:
> From: "Yan, Zheng" <zheng.z.yan@xxxxxxxxx>
> 
> _rename_finish() does not send dentry link/unlink message to replicas.
> We should prevent dentries that are modified by the rename operation
> from getting new replicas when the rename operation is committing. So
> don't mark xlocks "done" and early reply for rename

Can we change this to only skip early reply if there are replicas?  Or 
change things so we do send thos messages (or something isilar) early?  As 
is this will kill workloads like rsync that rename every file.

Thanks!
s

> 
> Signed-off-by: Yan, Zheng <zheng.z.yan@xxxxxxxxx>
> ---
>  src/mds/Server.cc | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/src/mds/Server.cc b/src/mds/Server.cc
> index eced76f..4492341 100644
> --- a/src/mds/Server.cc
> +++ b/src/mds/Server.cc
> @@ -796,6 +796,14 @@ void Server::early_reply(MDRequest *mdr, CInode *tracei, CDentry *tracedn)
>      return;
>    }
>  
> +  // _rename_finish() does not send dentry link/unlink message to replicas.
> +  // so do not mark xlocks "done", the xlocks prevent srcdn and destdn from
> +  // getting new replica.
> +  if (mdr->client_request->get_op() == CEPH_MDS_OP_RENAME) {
> +    dout(10) << "early_reply - rename, not allowed" << dendl;
> +    return;
> +  }
> +
>    MClientRequest *req = mdr->client_request;
>    entity_inst_t client_inst = req->get_source_inst();
>    if (client_inst.name.is_mds())
> -- 
> 1.7.11.7
> 
> --
> 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