All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Tang, Haodong" <haodong.tang@intel.com>
To: Haomai Wang <haomai@xsky.com>
Cc: "sweil@redhat.com" <sweil@redhat.com>,
	"varada.kari@sandisk.com" <varada.kari@sandisk.com>,
	"ceph-devel@vger.kernel.org" <ceph-devel@vger.kernel.org>
Subject: RE: parallel transaction submit
Date: Thu, 25 Aug 2016 08:48:07 +0000	[thread overview]
Message-ID: <FC753468179C1C4EB15768F212C46AF26632CC@shsmsx102.ccr.corp.intel.com> (raw)
In-Reply-To: <CACJqLyY7YZ=O_do0OD8d28cmNiknDcMm957qYidA_zGoQ5O+gw@mail.gmail.com>

Yeah, from the perf counter, we do reduce time waiting for kv_queue, but increase rocksdb submisstion time. Seems it is better to do batch submission for rocksdb instead of parallel submission. Besides, parallel submission also make bdev->flush more frequent.

From the test result, there is a little performance improvement if using memdb, but compared with rocksdb, throughput is more stable.

-----Original Message-----
From: Haomai Wang [mailto:haomai@xsky.com] 
Sent: Thursday, August 25, 2016 3:55 PM
To: Tang, Haodong <haodong.tang@intel.com>
Cc: sweil@redhat.com; varada.kari@sandisk.com; ceph-devel@vger.kernel.org
Subject: Re: parallel transaction submit

looks very litlle improvements. rocksdb result meet my expectation because rocksdb internal has lock for multi sync write. But memdb improments is a little confusing.

On Thu, Aug 25, 2016 at 3:45 PM, Tang, Haodong <haodong.tang@intel.com> wrote:
> Hi Sage, Varada
>
> Noticed you are making parallel transaction submits, we also worked 
> out a prototype that looks similar, here is the link for the 
> implementation: https://github.com/ceph/ceph/pull/10856
>
> Background:
> From the perf counter we added, found it spent a lot time in kv_queue, that is, single thread transaction submits is not competent to handle the transaction from OSD.
>
> Implementation:
> The key thought is to use multiple thread and assign each TransContext to one of the processing threads. In order to parallelize transaction submit, add different kv_locks and kv_conds for each thread.
>
> Performance evaluation:
> Test ENV:
>         4 x server, 4 x client, 16 x Intel S3700 as block device, and 4 x Intel P3600 as Rocksdb/WAL device.
> Performance:
> We also did several quick tests to verify the performance benefit, the results showed that parallel transaction submission will brought 10% performance improvement if using memdb, but little performance improvement with rocksdb.
>
> What's more, without parallel transaction submits, we also see performance boost if just changing to MemDB, but a little.
>
> Test summary:
> QD Scaling Test - 4k Random Write:
>                                                                                   QD = 1      QD = 16     QD = 32      QD = 64      QD = 128
> With rocksdb (IOPS)                                              682            173000       190000        203000       204000
> With memdb (IOPS)                                              704            180000       194000        206000       218000
> With rocksdb+multiple_kv_thread(IOPS)          /                164243        167037        180961      201752
> With memdb+multiple_kv_thread(IOPS)          /                 176000       200000        221000      227000
>
>
> It seems single thread of transaction submits will be a bottleneck if using MemDB.
> --
> To unsubscribe from this list: send the line "unsubscribe ceph-devel" 
> in the body of a message to majordomo@vger.kernel.org More majordomo 
> info at  http://vger.kernel.org/majordomo-info.html

      parent reply	other threads:[~2016-08-25  8:49 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-25  7:45 parallel transaction submit Tang, Haodong
2016-08-25  7:55 ` Haomai Wang
2016-08-25  8:47   ` Varada Kari
2016-08-25 14:11     ` Sage Weil
2016-08-25 14:26       ` Varada Kari
2016-08-25  8:48   ` Tang, Haodong [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=FC753468179C1C4EB15768F212C46AF26632CC@shsmsx102.ccr.corp.intel.com \
    --to=haodong.tang@intel.com \
    --cc=ceph-devel@vger.kernel.org \
    --cc=haomai@xsky.com \
    --cc=sweil@redhat.com \
    --cc=varada.kari@sandisk.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.