summaryrefslogtreecommitdiffstats
path: root/xlators
diff options
context:
space:
mode:
Diffstat (limited to 'xlators')
-rw-r--r--xlators/performance/readdir-ahead/src/readdir-ahead.c15
-rw-r--r--xlators/performance/readdir-ahead/src/readdir-ahead.h1
2 files changed, 16 insertions, 0 deletions
diff --git a/xlators/performance/readdir-ahead/src/readdir-ahead.c b/xlators/performance/readdir-ahead/src/readdir-ahead.c
index 82e877512c5..8f5a1f44ca5 100644
--- a/xlators/performance/readdir-ahead/src/readdir-ahead.c
+++ b/xlators/performance/readdir-ahead/src/readdir-ahead.c
@@ -636,6 +636,8 @@ reconfigure(xlator_t *this, dict_t *options)
size_uint64, err);
GF_OPTION_RECONF("rda-cache-limit", priv->rda_cache_limit, options,
size_uint64, err);
+ GF_OPTION_RECONF("parallel-readdir", priv->parallel_readdir, options,
+ bool, err);
return 0;
err:
@@ -681,6 +683,8 @@ init(xlator_t *this)
err);
GF_OPTION_INIT("rda-cache-limit", priv->rda_cache_limit, size_uint64,
err);
+ GF_OPTION_INIT("parallel-readdir", priv->parallel_readdir, bool,
+ err);
return 0;
@@ -748,6 +752,17 @@ struct volume_options options[] = {
"value, irrespective of the number/size of "
"directories cached",
},
+ { .key = {"parallel-readdir"},
+ .type = GF_OPTION_TYPE_BOOL,
+ .op_version = {GD_OP_VERSION_3_10_0},
+ .flags = OPT_FLAG_SETTABLE | OPT_FLAG_CLIENT_OPT | OPT_FLAG_DOC,
+ .default_value = "off",
+ .description = "If this option is enabled, the readdir operation "
+ "is performed in parallel on all the bricks, thus "
+ "improving the performance of readdir. Note that "
+ "the performance improvement is higher in large "
+ "clusters"
+ },
{ .key = {NULL} },
};
diff --git a/xlators/performance/readdir-ahead/src/readdir-ahead.h b/xlators/performance/readdir-ahead/src/readdir-ahead.h
index dda1a69246c..3c06cc0f107 100644
--- a/xlators/performance/readdir-ahead/src/readdir-ahead.h
+++ b/xlators/performance/readdir-ahead/src/readdir-ahead.h
@@ -45,6 +45,7 @@ struct rda_priv {
uint64_t rda_high_wmark;
uint64_t rda_cache_limit;
gf_atomic_t rda_cache_size;
+ gf_boolean_t parallel_readdir;
};
#endif /* __READDIR_AHEAD_H */