summaryrefslogtreecommitdiffstats
path: root/xlators/performance/write-behind/src
diff options
context:
space:
mode:
authorKaushik BV <kaushikbv@gluster.com>2011-08-16 13:10:41 +0530
committerAnand Avati <avati@gluster.com>2011-08-18 22:42:48 -0700
commitce0aaba383b97dca52d11c18846a8154d529bf8a (patch)
tree494673947140ddded481e4532ce6c340eac09446 /xlators/performance/write-behind/src
parentb7596882b3ceba77bd812d2e5757d9fa3aa0fa17 (diff)
mgmt/Glusterd: Implementation volume set help/help-xml
Change-Id: I0c54fd1c15550e5e5551e95ed32adb14d8029fab Reviewed-on: http://review.gluster.com/238 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
Diffstat (limited to 'xlators/performance/write-behind/src')
-rw-r--r--xlators/performance/write-behind/src/write-behind.c47
1 files changed, 43 insertions, 4 deletions
diff --git a/xlators/performance/write-behind/src/write-behind.c b/xlators/performance/write-behind/src/write-behind.c
index 47911d8a137..1a8bfe7df58 100644
--- a/xlators/performance/write-behind/src/write-behind.c
+++ b/xlators/performance/write-behind/src/write-behind.c
@@ -2977,6 +2977,7 @@ init (xlator_t *this)
wb_conf_t *conf = NULL;
char *str = NULL;
int32_t ret = -1;
+ char *def_val = NULL;
if ((this->children == NULL)
|| this->children->next) {
@@ -3029,7 +3030,21 @@ init (xlator_t *this)
conf->disable_till);
/* configure 'option window-size <size>' */
- conf->window_size = WB_WINDOW_SIZE;
+ if (xlator_get_volopt_info (&this->volume_options, "cache-size",
+ &def_val, NULL)) {
+ gf_log (this->name, GF_LOG_ERROR, "Default value of "
+ "cache-size not found");
+ ret = -1;
+ goto out;
+ } else {
+ if (gf_string2bytesize (def_val, &conf->window_size)) {
+ gf_log (this->name, GF_LOG_ERROR, "Default value of "
+ "cache-size corrupt");
+ ret = -1;
+ goto out;
+ }
+ }
+
ret = dict_get_str (options, "cache-size", &str);
if (ret == 0) {
ret = gf_string2bytesize (str, &conf->window_size);
@@ -3060,7 +3075,22 @@ init (xlator_t *this)
}
/* configure 'option flush-behind <on/off>' */
- conf->flush_behind = 1;
+
+ if (xlator_get_volopt_info (&this->volume_options, "flush-behind",
+ &def_val, NULL)) {
+ gf_log (this->name, GF_LOG_ERROR, "Default value of "
+ "cache-size not found");
+ ret = -1;
+ goto out;
+ } else {
+ if (gf_string2boolean (def_val, &conf->flush_behind)) {
+ gf_log (this->name, GF_LOG_ERROR, "Default value of "
+ "cache-size corrupt");
+ ret = -1;
+ goto out;
+ }
+ }
+
ret = dict_get_str (options, "flush-behind", &str);
if (ret == 0) {
ret = gf_string2boolean (str, &conf->flush_behind);
@@ -3141,12 +3171,21 @@ struct xlator_dumpops dumpops = {
struct volume_options options[] = {
{ .key = {"flush-behind"},
- .type = GF_OPTION_TYPE_BOOL
+ .type = GF_OPTION_TYPE_BOOL,
+ .default_value = "on",
+ .description = "If this option is set ON, instructs write-behind "
+ "translator to perform flush in background, by "
+ "returning success (or any errors, if any of "
+ "previous writes were failed) to application even "
+ "before flush is sent to backend filesystem. "
},
{ .key = {"cache-size", "window-size"},
.type = GF_OPTION_TYPE_SIZET,
.min = 512 * GF_UNIT_KB,
- .max = 1 * GF_UNIT_GB
+ .max = 1 * GF_UNIT_GB,
+ .default_value = "1MB",
+ .description = "Size of the per-file write-behind buffer. "
+
},
{ .key = {"disable-for-first-nbytes"},
.type = GF_OPTION_TYPE_SIZET,