diff options
author | Poornima G <pgurusid@redhat.com> | 2018-02-09 10:33:30 +0530 |
---|---|---|
committer | Raghavendra G <rgowdapp@redhat.com> | 2018-02-26 17:28:26 +0000 |
commit | 4a8255f772c8e98ccf6cae731d4d665363c3ed81 (patch) | |
tree | 83c162ddbc374b36871de9fc01c2ea6afeb35b89 /xlators/mgmt/glusterd/src/glusterd-volume-set.c | |
parent | 7d641313f46789ec0a7ba0cc04f504724c780855 (diff) |
write-behind: Make aggregate size configurable
Currently the aggregate size is by default 128K (page size).
From performance perspective small number of large writes is faster
than large number of small writes, especially in EC volumes. But identifying
the right aggregate size depends on multiple factors like the memcpy overhead,
network overhead etc. On local machine, combining 128k writes to 1M writes for
EC volumes yielded 30% improvement.
As a part of this patch, aggregate size is just made configurable and page_size
is modified accordingly.
Raghavendra Gowdappa had suggested that, while aggregating writes we should get
rid of memcpy of large write size, and instead add the pointer to existinf vector,
will be doing it as a part of another patch. Also, in EC volumes, the vectors are
merged into one vector, so even if we save memcopy in write_behind, EC would anyways
do memcopy for merging vectors into one vector.
Updates: #364
Change-Id: Ib67294b8577bea14dde1c84cd271012ecea99f09
Signed-off-by: Poornima G <pgurusid@redhat.com>
Diffstat (limited to 'xlators/mgmt/glusterd/src/glusterd-volume-set.c')
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-volume-set.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-volume-set.c b/xlators/mgmt/glusterd/src/glusterd-volume-set.c index 4e63991155e..837c5bc9cd8 100644 --- a/xlators/mgmt/glusterd/src/glusterd-volume-set.c +++ b/xlators/mgmt/glusterd/src/glusterd-volume-set.c @@ -1845,6 +1845,12 @@ struct volopt_map_entry glusterd_volopt_map[] = { .op_version = GD_OP_VERSION_3_13_1, .flags = VOLOPT_FLAG_CLIENT_OPT }, + { .key = "performance.aggregate-size", + .voltype = "performance/write-behind", + .option = "aggregate-size", + .op_version = GD_OP_VERSION_4_1_0, + .flags = OPT_FLAG_CLIENT_OPT + }, { .key = "performance.nfs.write-behind-trickling-writes", .voltype = "performance/write-behind", .option = "trickling-writes", |