All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] patches to improve cluster raid1 performance [V2]
@ 2013-09-26 10:50 dongmao zhang
  2013-09-26 10:50 ` [PATCH 1/2] improve the performance of dm-log-userspace dongmao zhang
                   ` (3 more replies)
  0 siblings, 4 replies; 10+ messages in thread
From: dongmao zhang @ 2013-09-26 10:50 UTC (permalink / raw)
  To: dm-devel; +Cc: dongmao zhang, agk

This patch change DM_ULOG_REQUEST_VERSION from 2 to 3. It could
tell cmirrord that kernel is now supporting delay some flushes, and
cmirrord will do someting accordingly.


Based on my test result, the cluster raid1 writes loss 80% performance. I found
that the most time is occupied by the function userspace_flush.

Usually userspace_flush needs three stages(mark, clear, flush)to communicate with cmirrord.

From the cmirrord's perspective, mark and flush functions run cluster_send first and then return to 
the kernel.

In other words, the requests of mark_region and flush in userspace_flush 
at least require a cluster_send period to finish. this is the root cause
of bad performance.

The idea is to merge flush and mark request together in both cmirrord and dm-log-userspace.

We run clog_flush directly after clog_mark_region. So the userspace_flush do not 
have to request flush again after requesting mark_region.  Moreover, I think the flush 
of clear region could be delayed. If we have both mark and clear region, only sending 
a mark_region request is OK, because clog_flush will automatically run.(ignore the clean_region 
time). It only takes one cluster_send period. If we have only mark region, 
a mark_region request is also OK, it takes one cluster_send period. If we have only 
clear_region, we could delay the flush of cleared_region for 3 seconds.

Overall, before the patch, mark_region require approximately two cluster_send
period(mark_region and flush), after the patch, mark_region only needs one 
cluster_send period. Based on my test, the performance is as twice as before.



dongmao zhang (2):
  improve the performance of dm-log-userspace
  change API of dm-log-userspace to support delay flush

 drivers/md/dm-log-userspace-base.c    |  109 ++++++++++++++++++++++++++++++---
 include/uapi/linux/dm-log-userspace.h |    2 +-
 2 files changed, 101 insertions(+), 10 deletions(-)

-- 
1.7.3.4

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2013-10-18 21:04 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-09-26 10:50 [PATCH 0/2] patches to improve cluster raid1 performance [V2] dongmao zhang
2013-09-26 10:50 ` [PATCH 1/2] improve the performance of dm-log-userspace dongmao zhang
2013-09-26 10:50 ` [PATCH 2/2] change API of dm-log-userspace to support delay flush dongmao zhang
2013-09-26 17:17 ` [PATCH 0/2] patches to improve cluster raid1 performance [V2] Brassow Jonathan
2013-09-27  7:59   ` Dongmao Zhang
2013-09-30 14:24 ` Brassow Jonathan
2013-10-08  8:33   ` Dong Mao Zhang
2013-10-10 16:29     ` Brassow Jonathan
2013-10-15  6:32       ` Dongmao Zhang
2013-10-18 21:04         ` Brassow Jonathan

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.