diff options
Diffstat (limited to 'doc/legacy/booster.txt')
| -rw-r--r-- | doc/legacy/booster.txt | 54 | 
1 files changed, 0 insertions, 54 deletions
diff --git a/doc/legacy/booster.txt b/doc/legacy/booster.txt deleted file mode 100644 index 051401a28fc..00000000000 --- a/doc/legacy/booster.txt +++ /dev/null @@ -1,54 +0,0 @@ -Introduction -============ -* booster is a LD_PRELOADable library which boosts read/write performance by bypassing fuse for -  read() and write() calls. - -Requirements -============ -* fetch volfile from glusterfs. -* identify whether multiple files are from the same mount point. If so, use only one context. - -Design -====== -* for a getxattr, along with other attributes, fuse returns following attributes. -  * contents of client volume-file. -  * mount point. - -* LD_PRELOADed booster.so maintains an hash table storing mount-points and libglusterfsclient handles -  so that handles are reused for files from same mount point. - -* it also maintains a fdtable. fdtable maps the fd (integer) returned to application to fd (pointer to fd struct) -  used by libglusterfsclient. application is returned the same fd as the one returned from libc apis. - -* During fork, these tables are overwritten to enable creation of fresh glusterfs context in child. - -Working -======= -* application willing to use booster LD_PRELOADs booster.so which is a wrapper library implementing -  open, read and write. - -* application should specify the path to logfile through the environment variable GLFS_BOOSTER_LOGFILE. If -  not specified, logging is done to /dev/stderr. - -* open call does, -  * real_open on the file. -  * fgetxattr(fd). -  * store the volume-file content got in the dictionary to a temporary file. -  * look in the hashtable for the mount-point, if already present get the libglusterfsclient handle from the -    hashtable. Otherwise get a new handle from libglusterfsclient (be careful about mount point not present in -    the hashtable and multiple glusterfs_inits running simultaneously for the same mount-point there by using -    multiple handles for the same mount point). -  * real_close (fd). -  * delete temporary volume-volfile. -  * glusterfs_open (handle, path, mode). -  * store the fd returned by glusterfs_open in the fdtable at the same index as the fd returned by real_open. -  * return the index as fd. - -* read/write calls do, -  * get the libglusterfsclient fd from fdtable. -  * if found use glusterfs_read/glusterfs_write, else use real_read/real_write. - -* close call does, -  * remove the fd from the fdtable. - -* other calls use real_calls.  | 
