summaryrefslogtreecommitdiffstats
path: root/xlators/performance
Commit message (Collapse)AuthorAgeFilesLines
...
* performance/stat-prefetch: implement sp_readlink.Raghavendra G2009-09-081-0/+34
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 221 (stat prefetch implementation) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=221
* performance/stat-prefetch: implement sp_utimens.Raghavendra G2009-09-081-0/+26
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 221 (stat prefetch implementation) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=221
* performance/stat-prefetch: implement sp_ftruncate.Raghavendra G2009-09-081-0/+36
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 221 (stat prefetch implementation) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=221
* performance/stat-prefetch: implement sp_truncate.Raghavendra G2009-09-081-0/+25
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 221 (stat prefetch implementation) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=221
* performance/stat-prefetch: implement sp_fchown.Raghavendra G2009-09-081-0/+36
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 221 (stat prefetch implementation) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=221
* performance/stat-prefetch: implement sp_chown.Raghavendra G2009-09-081-0/+25
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 221 (stat prefetch implementation) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=221
* performance/stat-prefetch: implement sp_fchmod.Raghavendra G2009-09-081-0/+36
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 221 (stat prefetch implementation) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=221
* performance/stat-prefetch: implement sp_link.Raghavendra G2009-09-081-0/+29
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 221 (stat prefetch implementation) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=221
* performance/stat-prefetch: implement sp_symlink.Raghavendra G2009-09-081-0/+30
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 221 (stat prefetch implementation) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=221
* performance/stat-prefetch: implement sp_mknod.Raghavendra G2009-09-081-0/+30
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 221 (stat prefetch implementation) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=221
* performance/stat-prefetch: implement sp_mkdir.Raghavendra G2009-09-081-0/+39
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 221 (stat prefetch implementation) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=221
* performance/stat-prefetch: implement sp_opendir.Raghavendra G2009-09-081-0/+27
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 221 (stat prefetch implementation) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=221
* performance/stat-prefetch: implement sp_create.Raghavendra G2009-09-081-0/+158
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 221 (stat prefetch implementation) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=221
* performance/stat-prefetch: implement sp_open.Raghavendra G2009-09-081-0/+58
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 221 (stat prefetch implementation) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=221
* stat/prefetch: free cache if it cannot be put into context of fdRaghavendra G2009-09-081-0/+1
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 221 (stat prefetch implementation) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=221
* performance/stat-prefetch: introduce sp_fd_ctx_t to hold context of fdsRaghavendra G2009-09-082-11/+144
| | | | | | | | | | | | | | - we need following extra members along with cache 1. basename of path on which fd is opened. This is necessary to search for cached entry in fd based fops. 2. inode corresponding to dirname of path on which fd is opened. This is necessary to get cache where entry corresponding to file on which fd is opened. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 221 (stat prefetch implementation) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=221
* performance/stat-prefetch: implement sp_chmod.Raghavendra G2009-09-081-0/+34
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 221 (stat prefetch implementation) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=221
* performance/stat-prefetch: implement sp_readdir.Raghavendra G2009-09-082-3/+169
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 221 (stat prefetch implementation) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=221
* performance/stat-prefetch: implement sp_lookup.Raghavendra G2009-09-082-0/+314
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 221 (stat prefetch implementation) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=221
* rewriting stat-prefetch translatorRaghavendra G2009-09-084-499/+47
| | | | | | | | | | | - stat-prefetch aims to optimize operations like 'ls -l' where a readdir is immediately followed by stat calls on each of the directory entry read. More details on design can be found in doc/stat-prefetch-design.txt Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 221 (stat prefetch implementation) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=221
* fix build warnings in 'io-cache'Amar Tumballi2009-07-201-1/+7
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 130 (build warnings) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=130
* quick-read: implement release and forget cbks.Raghavendra G2009-07-161-0/+49
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* quick-read: implement qr_lk.Raghavendra G2009-07-161-0/+97
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* quick-read: implement qr_ftruncate.Raghavendra G2009-07-161-0/+142
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* quick-read: implement qr_fsync.Raghavendra G2009-07-161-0/+94
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* quick-read: implement qr_finodelk.Raghavendra G2009-07-161-0/+100
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* quick-read: implement qr_fentrylk.Raghavendra G2009-07-161-0/+100
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* quick-read: implement qr_flush.Raghavendra G2009-07-161-0/+74
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* quick-read: implement qr_fgetxattr.Raghavendra G2009-07-161-0/+101
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* quick-read: implement qr_fsetxattr.Raghavendra G2009-07-161-0/+99
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* quick-read: implement lc_fchmodRaghavendra G2009-07-161-0/+93
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* quick-read: implement qr_fchownRaghavendra G2009-07-161-0/+95
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* quick-read: implement qr_fstat.Raghavendra G2009-07-161-0/+94
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* quick-read: implement qr_writevRaghavendra G2009-07-161-0/+118
| | | | | | - writev on any fd opened on a file invalidates the cache stored during lookup Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* quick-read: implement qr_readvRaghavendra G2009-07-161-0/+525
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - pseudo-code of the algorithm is given below if (content is cached) { validate-contents (); if (content cached is valid) { stack unwind with cached content; } else { goto read-from-storage; } } else { goto read-from-storage; } return; read-from-storage: if (open is already done on fd) { stack-wind read; } else { add the current readv to list of operations waiting on completion of open; if (open on the fd is in transit) { do nothing; } else { stack-wind open; } } return; Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* quick-read: implement qr_openRaghavendra G2009-07-162-0/+219
| | | | | | | | - The file is opened actually only if it is not cached already in lookup. This adds responsibility for fops operating on fds to make sure that a valid fd actually opened on a file is used to complete the fop. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* quick-read: add qr_lookup.Raghavendra G2009-07-162-0/+147
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* Implementing quick-read translator.Raghavendra G2009-07-165-1/+184
| | | | | | | | | | | | | | | | | lookup can fetch the entire file in xattr dictionary using the key "glusterfs.content". We set the maximum size of the file that can be fetched so in the xattr_req dictionary using the same key. If file-size is less than or equal to the value set in dictionary, the content is stored in the dictionary using same key in lookup_cbk. For small files, we can do an optimization wherein we do not really send the calls open, read and close to the storage translators. Instead there can be an xlator which fakes open, read and close calls. For reads, it sends the data it has cached during lookup and hence saving the time for open, read and close calls to reach storage translators (this time can be significant if calls have to go through network to reach storage translator). Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* write-behind: set default window-size to 1MB.Raghavendra G2009-07-071-1/+2
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* read-ahead: use O_ACCMODE for checking file access modes.Raghavendra G2009-07-071-2/+2
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* write-behind: Use O_ACCMODE while checking for access modes.Raghavendra G2009-07-071-2/+2
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* performance/write-behind - bug fix in open() and create().Basavanagowda Kanur2009-07-021-1/+5
| | | | | | | | open() & create() calls should reset frame->local to NULL. bz# 104 Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* enhancement in write-behindAmar Tumballi2009-06-301-18/+22
| | | | | | | | | Write calls should not be pushed to background only when the mandatory locking is enabled, in all other cases (eg: O_SYNC, O_DIRECT etc), we should not be 'caching' any data, but the calls can be pushed to the background. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* write-behind: fix memory corruptionRaghavendra G2009-06-151-0/+1
| | | | | | | | - wb_sync did not set local = NULL after stack_wind. It also used to free local if its not NULL as part of cleanup process. Hence there was a double free in STACK_DESTROY done in wb_sync_cbk. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* write-behind: check for memory allocation failures and take appropriate actionRaghavendra G2009-06-151-78/+434
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* io-cache: fix warning by initializing conf = NULLAnand V. Avati2009-06-151-1/+1
|
* read-ahead: fix warning by initializing conf = NULLAnand V. Avati2009-06-151-1/+1
|
* io-cache: handle memory allocation failuresRaghavendra G2009-06-114-65/+373
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* io-threads: Fix missed notification in sem_timedwaitShehjar Tikoo2009-06-112-5/+4
| | | | | | | | | | | | | | | We're performing a calculation for skewing idle time that resulted in a timespec.tv_nsec value becoming larger than 1000 million or less than 0, forcing sem_timedwait to return with an EINVAL instead of waiting for a request notification from sem_post in iot_notify_worker(). This resulted in a missed notification that resulted in a hang followed by a timeout on the protocol/client side. This commit avoids the over- and under-flow in tv_nsec by skewing the tv_sec value instead. Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* read-ahead: handle memory allocation failuresRaghavendra G2009-06-113-17/+111
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>