summaryrefslogtreecommitdiffstats
path: root/doc/features
diff options
context:
space:
mode:
authorSoumya Koduri <skoduri@redhat.com>2015-05-04 17:01:18 +0530
committerVijay Bellur <vbellur@redhat.com>2015-05-04 11:18:28 -0700
commit9bc39bcd8c1ed64eff1ea6c83801a57f37e6b8bc (patch)
tree3a136f79ccec00bfccfd6cbb383f4b18d63dd0e3 /doc/features
parent10d588fd849d92c3d7f4f86029b76098230c93b6 (diff)
Upcall: Feature doc for Upcall infrastrucutre
Change-Id: I802ba2f13fde6c05da1ed355e340f071e9d20d30 BUG: 1217711 Signed-off-by: Soumya Koduri <skoduri@redhat.com> Reviewed-on: http://review.gluster.org/10525 Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com> Reviewed-on: http://review.gluster.org/10527 Tested-by: NetBSD Build System Tested-by: Gluster Build System <jenkins@build.gluster.com>
Diffstat (limited to 'doc/features')
-rw-r--r--doc/features/upcall.md33
1 files changed, 33 insertions, 0 deletions
diff --git a/doc/features/upcall.md b/doc/features/upcall.md
new file mode 100644
index 00000000000..894bd54264d
--- /dev/null
+++ b/doc/features/upcall.md
@@ -0,0 +1,33 @@
+## Upcall ##
+
+### Summary ###
+A generic and extensible framework, used to maintain states in the glusterfsd process for each of the files accessed (including the clients info doing the fops) and send notifications to the respective glusterfs clients incase of any change in that state.
+
+Few of the use-cases (currently using) this infrastructure are:
+
+ Inode Update/Invalidation
+
+### Detailed Description ###
+GlusterFS, a scale-out storage platform, comprises of distributed file system which follows client-server architectural model.
+
+Its the client(glusterfs) which usually initiates an rpc request to the server(glusterfsd). After processing the request, reply is sent to the client as response to the same request. So till now, there was no interface and use-case present for the server to intimate or make a request to the client.
+
+This support is now being added using “Upcall Infrastructure”.
+
+A new xlator(Upcall) has been defined to maintain and process state of the events which require server to send upcall notifications. For each I/O on a inode, we create/update a ‘upcall_inode_ctx’ and store/update the list of clients’ info ‘upcall_client_t’ in the context.
+
+#### Cache Invalidation ####
+Each of the GlusterFS clients/applications cache certain state of the files (for eg, inode or attributes). In a muti-node environment these caches could lead to data-integrity issues, for certain time, if there are multiple clients accessing the same file simulataneously.
+To avoid such scenarios, we need server to notify clients incase of any change in the file state/attributes.
+
+More details can be found in the below links -
+ http://www.gluster.org/community/documentation/index.php/Features/Upcall-infrastructure
+ https://soumyakoduri.wordpress.com/2015/02/25/glusterfs-understanding-upcall-infrastructure-and-cache-invalidation-support/
+
+cache-invalidation is currently disabled by default. It can be enabled with the following command:
+
+ gluster volume set <volname> features.cache-invalidation on
+
+Note: This upcall notification is sent to only those clients which have accessed the file recently (i.e, with in CACHE_INVALIDATE_PERIOD – default 60sec). This options can be tuned using the following command:
+
+ gluster volume set <volname> features.cache-invalidation-timeout <value>