summaryrefslogtreecommitdiffstats
path: root/xlators/performance
Commit message (Collapse)AuthorAgeFilesLines
* performance/quick-read: change the default option values in quick-read.Raghavendra G2009-10-091-1/+2
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 238 (Backport quick-read to 2.0 release) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=238
* performance/stat-prefetch: checking for cache and creation if not present is ↵Raghavendra G2009-10-071-23/+64
| | | | | | | | | made atomic. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 284 (performance actually decreases for 'ls -l' on a directory containing large number of files with stat-prefetch loaded) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=284
* performance/stat-prefetch: lookup the path in xattrop if it is not already ↵Raghavendra G2009-10-071-10/+71
| | | | | | | | | looked up. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 284 (performance actually decreases for 'ls -l' on a directory containing large number of files with stat-prefetch loaded) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=284
* performance/stat-prefetch: implement sp_entrylk.Raghavendra G2009-10-071-0/+85
| | | | | | | | | - sp_entrylk has to send lookup on the path if it is not already looked up. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 284 (performance actually decreases for 'ls -l' on a directory containing large number of files with stat-prefetch loaded) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=284
* performance/stat-prefetch: implement sp_inodelk.Raghavendra G2009-10-071-1/+83
| | | | | | | | | - sp_inodelk has to send lookup on the path if it is not already looked up. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 284 (performance actually decreases for 'ls -l' on a directory containing large number of files with stat-prefetch loaded) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=284
* performance/stat-prefetch: do lookup on path in removexattr if it is not ↵Raghavendra G2009-10-071-10/+71
| | | | | | | | | already looked up. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 284 (performance actually decreases for 'ls -l' on a directory containing large number of files with stat-prefetch loaded) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=284
* performance/stat-prefetch: implement sp_getxattr.Raghavendra G2009-10-071-0/+89
| | | | | | | | | - sp_getxattr needs to send a lookup on the path if it is not already looked up. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 284 (performance actually decreases for 'ls -l' on a directory containing large number of files with stat-prefetch loaded) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=284
* performance/stat-prefetch: lookup path in setxattr if it is not already ↵Raghavendra G2009-10-071-10/+73
| | | | | | | | | looked up. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 284 (performance actually decreases for 'ls -l' on a directory containing large number of files with stat-prefetch loaded) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=284
* performance/stat-prefetch: lookup path in opendir if it is not already ↵Raghavendra G2009-10-071-11/+73
| | | | | | | | | looked up. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 284 (performance actually decreases for 'ls -l' on a directory containing large number of files with stat-prefetch loaded) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=284
* performance/stat-prefetch: lookup path in create if it is not already looked up.Raghavendra G2009-10-071-24/+88
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 284 (performance actually decreases for 'ls -l' on a directory containing large number of files with stat-prefetch loaded) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=284
* performance/stat-prefetch: remove stat corresponding to oldloc->path from ↵Raghavendra G2009-10-071-0/+10
| | | | | | | | | | | cache in sp_link. - ctime of oldloc->path will be changed on completion of link fop. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 284 (performance actually decreases for 'ls -l' on a directory containing large number of files with stat-prefetch loaded) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=284
* performance/stat-prefetch: lookup oldloc->path in link if it has not already ↵Raghavendra G2009-10-071-13/+82
| | | | | | | | | been looked up. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 284 (performance actually decreases for 'ls -l' on a directory containing large number of files with stat-prefetch loaded) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=284
* performance/stat-prefetch: lookup oldpath and newpath in rename if they've ↵Raghavendra G2009-10-072-19/+185
| | | | | | | | | not already been looked up. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 284 (performance actually decreases for 'ls -l' on a directory containing large number of files with stat-prefetch loaded) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=284
* performance/stat-prefetch: do lookup of path in symlink if it is not already ↵Raghavendra G2009-10-071-13/+74
| | | | | | | | | looked-up. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 284 (performance actually decreases for 'ls -l' on a directory containing large number of files with stat-prefetch loaded) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=284
* performance/stat-prefetch: do lookup in rmdir if the path has not already ↵Raghavendra G2009-10-071-14/+71
| | | | | | | | | been looked up. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 284 (performance actually decreases for 'ls -l' on a directory containing large number of files with stat-prefetch loaded) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=284
* performance/stat-prefetch: lookup the path in mkdir if it is not already ↵Raghavendra G2009-10-071-13/+75
| | | | | | | | | looked up. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 284 (performance actually decreases for 'ls -l' on a directory containing large number of files with stat-prefetch loaded) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=284
* performance/stat-prefetch: do lookup in unlink if the path has not already ↵Raghavendra G2009-10-071-12/+71
| | | | | | | | | been looked up. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 284 (performance actually decreases for 'ls -l' on a directory containing large number of files with stat-prefetch loaded) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=284
* performance/stat-prefetch: do lookup in readlink if the path is not already ↵Raghavendra G2009-10-071-10/+71
| | | | | | | | | looked up. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 284 (performance actually decreases for 'ls -l' on a directory containing large number of files with stat-prefetch loaded) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=284
* performance/stat-prefetch: do lookup in mknod if the path is not already ↵Raghavendra G2009-10-071-13/+75
| | | | | | | | | looked up. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 284 (performance actually decreases for 'ls -l' on a directory containing large number of files with stat-prefetch loaded) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=284
* performance/stat-prefetch: implement sp_access.Raghavendra G2009-10-071-0/+79
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 284 (performance actually decreases for 'ls -l' on a directory containing large number of files with stat-prefetch loaded) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=284
* performance/stat-prefetch: do lookup in utimens if the path is not already ↵Raghavendra G2009-10-071-10/+71
| | | | | | | | | looked up Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 284 (performance actually decreases for 'ls -l' on a directory containing large number of files with stat-prefetch loaded) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=284
* performance/stat-prefetch: do lookup in truncate if the path is not already ↵Raghavendra G2009-10-071-10/+72
| | | | | | | | | looked-up Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 284 (performance actually decreases for 'ls -l' on a directory containing large number of files with stat-prefetch loaded) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=284
* performance/stat-prefetch: lookup the path in chown if it is not already ↵Raghavendra G2009-10-071-10/+71
| | | | | | | | | looked up. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 284 (performance actually decreases for 'ls -l' on a directory containing large number of files with stat-prefetch loaded) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=284
* performance/stat-prefetch: lookup the path in chmod if it is not already ↵Raghavendra G2009-10-071-10/+70
| | | | | | | | | looked up. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 284 (performance actually decreases for 'ls -l' on a directory containing large number of files with stat-prefetch loaded) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=284
* performance/stat-prefetch: lookup the path in stat if the it is not already ↵Raghavendra G2009-10-071-0/+79
| | | | | | | | | looked-up. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 284 (performance actually decreases for 'ls -l' on a directory containing large number of files with stat-prefetch loaded) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=284
* performance/stat-prefetch: do lookup on the path in checksum if it is not ↵Raghavendra G2009-10-071-10/+69
| | | | | | | | | already looked up. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 284 (performance actually decreases for 'ls -l' on a directory containing large number of files with stat-prefetch loaded) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=284
* performance/stat-prefetch: lookup the path in open if it is not already ↵Raghavendra G2009-10-071-11/+75
| | | | | | | | | looked up. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 284 (performance actually decreases for 'ls -l' on a directory containing large number of files with stat-prefetch loaded) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=284
* performance/stat-prefetch: implement procedure sp_process_inode_ctx.Raghavendra G2009-10-071-0/+93
| | | | | | | | | | | | | - this procedure processes inode_ctx to make decisions like whether the current procedure can continue (i.e., inode is already looked up), or the procedure has to initiate/wait for lookup on the path. It also sets up the frame->local and adds the stub corresponding to current fop if needed. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 284 (performance actually decreases for 'ls -l' on a directory containing large number of files with stat-prefetch loaded) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=284
* performance/stat-prefetch: use op_errno instead of errno to store error code.Raghavendra G2009-10-071-147/+253
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 284 (performance actually decreases for 'ls -l' on a directory containing large number of files with stat-prefetch loaded) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=284
* performance/stat-prefetch: Add support code to implement lookup-behind.Raghavendra G2009-10-072-22/+203
| | | | | | | | | | | | | - change sp_lookup and sp_lookup_cbk to support sending lookups when needed. lookups might need to be sent in fops like open, chmod, chown etc which operate on a path, since the actual lookup sent to stat-prefetch by its parent xlators is not propagated down the xlator tree if the path is cached. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 284 (performance actually decreases for 'ls -l' on a directory containing large number of files with stat-prefetch loaded) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=284
* performance/stat-prefetch: remove lookup-behind in sp_lookup.Raghavendra G2009-10-071-56/+4
| | | | | | | | | | | | - lookup-behind should be done on-demand basis, in fops like open instead of in sp_lookup itself. This would reduce network traffic between client and server related to lookup, if the only use of lookup was to fetch stat structure. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 284 (performance actually decreases for 'ls -l' on a directory containing large number of files with stat-prefetch loaded) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=284
* added few missing options in translator's option arrayAmar Tumballi2009-10-071-1/+4
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* Changed occurrences of Z Research to Gluster.Vijay Bellur2009-10-0715-16/+16
| | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
* performance/stat-prefetch: Add accounting of cache hits and misses.Raghavendra G2009-10-072-0/+17
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 284 (performance actually decreases for 'ls -l' on a directory containing large number of files with stat-prefetch loaded) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=284
* performance/stat-prefetch: optimizations to sp_lookup.Raghavendra G2009-10-071-1/+12
| | | | | | | | | | | - if stat cache cannot be found for a path in its parent inode and the path is a directory, we can get the cache from the inode corresponding to path and look for "." in that cache. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 284 (performance actually decreases for 'ls -l' on a directory containing large number of files with stat-prefetch loaded) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=284
* performance/stat-prefetch: change behaviour of sp_lookup when xattr_req is ↵Raghavendra G2009-10-071-7/+27
| | | | | | | | | | | | | not NULL. - if the xattr_req is empty (fuse just creates an empty dictionary and sends along lookup) we can still use the cache prefetched during readdir, since we need not fill the reply dictionary. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 284 (performance actually decreases for 'ls -l' on a directory containing large number of files with stat-prefetch loaded) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=284
* performance/stat-prefetch: change the cache to use rbtree based hashtable ↵Raghavendra G2009-10-073-36/+46
| | | | | | | | | instead of list for caching dentries. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 284 (performance actually decreases for 'ls -l' on a directory containing large number of files with stat-prefetch loaded) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=284
* performance/stat-prefetch: fix memory leaksRaghavendra G2009-10-071-57/+14
| | | | | | | | | | | | | | | | | | - sp_cache_get_inode uses fd_lookup which internally increases the refcount of fd by 1. This needs to be unrefed once we get the cache. - for directories, stat is stored in the inode context in sp_lookup_cbk. but, while doing so, no check was being done for the presence of context in inode, resulting in leak of memory equal to sizeof (struct stat) when multiple lookups happened on the directory. stat was needed to serve the postparent member during lookup. postparent stat is needed only in releases having NFS related changes and hence removing code present to get postparent. - path constructed in sp_readdir was not freed. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 257 (Backport stat-prefetch to 2.0) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=257
* write-behind: check for NULL file pointer in flush callbackAnand Avati2009-09-241-1/+2
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 260 (ls on booster VMP results in error: "File descriptor in bad state") URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=260
* performance/write-behind: Add NULL checks for file pointer.Raghavendra G2009-09-241-83/+104
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 260 (ls on booster VMP results in error: "File descriptor in bad state") URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=260
* performance/write-behind: Add a NULL check for request->stub before checking ↵Raghavendra G2009-09-241-1/+2
| | | | | | | | | | | | | | | | | request->stub->fop. - for non-write wind requests, the request structure outlives the stub. The call stub is destroyed when stack is wound but request is destroyed only when the reply has come. (for writes, both stub and request are destroyed when refcount becomes 0, which happens only when the write operation is stack unwound and a reply for the write operation has come from underlying translators, for non-write unwind requests the request is first destroyed before resuming the stub). Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 280 (simple stripe, with write-behind set up, when dbench is run client crashes.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=280
* performance/write-behind: store currently aggregated data size in wb_fileRaghavendra G2009-09-231-27/+30
| | | | | | | | | | - this helps us to not traverse the request list whenever we need currently aggregated data in the queue Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 276 (write behind needs to be optimized.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=276
* performance/write-behind: store the current window size in wb_file.Raghavendra G2009-09-231-44/+40
| | | | | | | | | | - this would increase the performance since we don't have to traverse the request list every time we need the current window size. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 276 (write behind needs to be optimized.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=276
* performance/write-behind: reduce usage of iov_length.Raghavendra G2009-09-231-47/+27
| | | | | | | | | | - request structure now holds a member write_size which is initialised at the time of request creation and used later. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 276 (write behind needs to be optimized.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=276
* performance/write-behind: add option "enable-trickling-writes".Raghavendra G2009-09-221-22/+41
| | | | | | | | | | | | | | - With this option enabled, writes are stack-wound even though not enough data is aggregated, provided there are no write-requests which are stack-wound but reply is yet to come. The reason behind this option is to make use of the network, which is relatively free (with no writes or replies in transit). However, with non-standard block-sizes of writes the performance can actually degrade. Hence making this configurable. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 276 (write behind needs to be optimized.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=276
* performance/write-behind: reduce traversal of request list during wb_mark_winds.Raghavendra G2009-09-221-35/+28
| | | | | | | | | | | | | | | | - move all the decision making code to __wb_can_wind. - don't continue traversing the request list, once we know any of the following conditions are true: * requests other than write are present in queue. * writes are happening at non-contiguous offsets. * there are no write requests, which are wound to server but not yet received the reply. * enough data is aggregated for writing. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 276 (write behind needs to be optimized.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=276
* performance/write-behind: reduce list-traversal during wb_mark_unwindsRaghavendra G2009-09-221-13/+19
| | | | | | | | | | - don't traverse entire request list to get the window-size, instead break when current window size becomes greater than configured limit. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 276 (write behind needs to be optimized.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=276
* performance/write-behind: remove redundant traversal of write-requests in ↵Raghavendra G2009-09-221-3/+5
| | | | | | | | | | | | the wind list in wb_sync. - no need of getting the total_count of number of requests in the list. Even if there is a single request, we need to sync it. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 276 (write behind needs to be optimized.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=276
* performance/write-behind: Aggregate adjacent contiguous write-buffers into ↵Raghavendra G2009-09-221-1/+77
| | | | | | | | | single iobuf. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 276 (write behind needs to be optimized.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=276
* performance/write-behind: fine-tune logic of wb_mark_windsRaghavendra G2009-09-221-65/+14
| | | | | | | | | | | | | | | - remove wb_mark_wind_aggregegate_size_aware, since wb_mark_wind_all does the same work (with check for whether current aggregated data size is greater than the configured limit before calling it). Moreover, wb_mark_wind_aggregate_size_aware called __wb_get_aggregate_size redundantly, thereby reducing the performance, since for small sized large number of writes, traversing the list of requests takes significant amount of time. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 276 (write behind needs to be optimized.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=276