diff options
author | Venky Shankar <vshankar@redhat.com> | 2015-04-24 10:10:35 +0530 |
---|---|---|
committer | Vijay Bellur <vbellur@redhat.com> | 2015-04-26 11:04:11 -0700 |
commit | 004f64e93d23f44144483d21422f47e81d358045 (patch) | |
tree | 049e997d100c8afd626ce8f09f1a9eb85ecd155d /libglusterfs/src/tw.h | |
parent | 7be43338ff292eb9ff43892e05eb83575e66433c (diff) |
core: Global timer-wheel
Instantiate a process wide global instance of the timer wheel
data structure. Spawning glusterfs* process with option arg
"--global-timer-wheel" instantiates a global instance of
timer-wheel under global context (->ctx).
Translators can make use of this process wide instance [via a
call to glusterfs_global_timer_wheel()] instead of maintaining
an instance of their own and possibly consuming more memory.
Linux kernel too has a single instance of timer wheel where
subsystems such as IO, networking, etc.. make use of.
Bitrot daemon would be early consumers of this: bitrot translator
instances for multiple volumes would track objects belonging to
their respective bricks in this global expiry tracking data
structure. This is also a first step to move GlusterFS timer
mechanism to use timer-wheel.
Change-Id: Ie882df607e07acaced846ea269ebf1ece306d6ae
BUG: 1170075
Signed-off-by: Venky Shankar <vshankar@redhat.com>
Reviewed-on: http://review.gluster.org/10380
Tested-by: NetBSD Build System
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Diffstat (limited to 'libglusterfs/src/tw.h')
-rw-r--r-- | libglusterfs/src/tw.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/libglusterfs/src/tw.h b/libglusterfs/src/tw.h new file mode 100644 index 00000000000..e635cd2b496 --- /dev/null +++ b/libglusterfs/src/tw.h @@ -0,0 +1,23 @@ +/* + Copyright (c) 2008-2015 Red Hat, Inc. <http://www.redhat.com> + This file is part of GlusterFS. + + This file is licensed to you under your choice of the GNU Lesser + General Public License, version 3 or any later version (LGPLv3 or + later), or the GNU General Public License, version 2 (GPLv2), in all + cases as published by the Free Software Foundation. +*/ + +#ifndef __TW_H__ +#define __TW_H__ + +#include "xlator.h" +#include "glusterfs.h" + +int +glusterfs_global_timer_wheel_init (glusterfs_ctx_t *); + +struct tvec_base * +glusterfs_global_timer_wheel (xlator_t *); + +#endif /* __TW_H__ */ |