summaryrefslogtreecommitdiffstats
path: root/under_review/compound-fops.md
diff options
context:
space:
mode:
authorAnuradha Talur <atalur@redhat.com>2016-03-17 15:40:50 +0530
committerNiels de Vos <ndevos@redhat.com>2016-04-01 02:48:22 -0700
commitbc520eb3f3ee6072dcd557e7604c4a27096460e9 (patch)
tree19aee1a902bbd1497d0eda46f2340a05d2d8c2f2 /under_review/compound-fops.md
parent5706601e64d1b010828c5673b3bc7a44819372b3 (diff)
feature page for compound fops
Change-Id: Icd84e5c52396214b745bbb44f51cb7e6fed883e7 Signed-off-by: Anuradha Talur <atalur@redhat.com> Reviewed-on: http://review.gluster.org/13761 Reviewed-by: Niels de Vos <ndevos@redhat.com> Tested-by: Niels de Vos <ndevos@redhat.com>
Diffstat (limited to 'under_review/compound-fops.md')
-rw-r--r--under_review/compound-fops.md135
1 files changed, 135 insertions, 0 deletions
diff --git a/under_review/compound-fops.md b/under_review/compound-fops.md
new file mode 100644
index 0000000..3cbbaa6
--- /dev/null
+++ b/under_review/compound-fops.md
@@ -0,0 +1,135 @@
+## Compound fops
+
+### Summary :
+A compound fop provides a mechanism to combine two or more fops together.
+The main motivation for introducing compound fops is to reduce network
+round trips by sending multiple fops in one network operation.
+
+---------
+
+### Owners :
+Anuradha Talur
+Pranith Kumar Karampuri
+
+--------
+### Current status :
+Under development.
+
+----------------
+### Design discussions :
+http://www.gluster.org/pipermail/gluster-devel/2015-December/047297.html
+
+---------------------
+### Related Feature Requests and Bugs :
+
+https://bugzilla.redhat.com/show_bug.cgi?id=1303829
+
+-----------------------------------
+
+### Detailed Description :
+
+How are fops compounded?
+Each xlator on the client stack that needs to combine two or more fops,
+compounds the fop itself using the API provided.
+The arguments required to perform both the fops are given to the API,
+which does the job of populating them
+in a common structure used for compound fops.
+A compound structure would look like :
+
+```C
+typedef struct {
+ int fop_enum;
+ int fop_length;
+ int *fop_enum;
+ default_args_t *args;
+} compound_args_t;
+
+typedef struct {
+ int fop_enum;
+ int fop_length;
+ default_args_cbk_t *rsp_list;
+} compound_args_cbk_t;
+```
+
+Decompounder :
+A decompounder xlator lies in the server stack.
+Once protocol server passes the request structure to decompounder, it serially
+processes the fops enlisted in the compound fop. The results provided by each
+fop is stored in compound response structure. Once all the fops are processed
+the compound response is returned. If any fop in the compound fop fails, next
+fops in the list are not executed; appropriate error numbers are returned.
+
+----------------------
+
+### Benefit to GlusterFS :
+
+Reducing network roundtrips will reduce the latency and increase the
+throughput of fops.
+
+----------------------
+### Scope :
+
+-------
+
+#### Nature of proposed change :
+
+- New fop called compound.
+- New xlator called decompounder on the brick which should be loaded under
+ protocol server.
+- API's for packing compound fops.
+- Introducing new RPC XDR's to support compound fops.
+
+-------------------------------
+
+#### Implications on manageability :
+
+NONE
+
+-------------------------------
+#### Implications on presentation layer :
+
+NONE
+
+-------------------------------
+#### Implications on persistence layer :
+
+NONE
+
+-------------------------------
+#### Implications on 'GlusterFS' backend :
+
+NONE
+
+-------------------------------
+#### Modification to GlusterFS metadata :
+
+NONE
+
+-------------------------------
+#### Implications on glusterd :
+Changes related to adding decompounder in server-stack volfiles.
+
+-------------------------------
+
+#### Dependencies :
+
+NONE
+
+-------------------------------
+#### Documentation :
+
+TBD.
+
+-------------------------------
+### Status :
+
+In development.
+
+-------------------------------
+
+### Comments and Discussion :
+
+See http://www.gluster.org/pipermail/gluster-devel/2015-December/047297.html .
+
+--------------------------
+