summaryrefslogtreecommitdiffstats
path: root/xlators/performance
Commit message (Collapse)AuthorAgeFilesLines
* performance/io-cache: change the data-types to be big enough to hold size of ↵Raghavendra G2009-10-302-5/+5
| | | | | | | | | data flushed. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 335 (Io-cache optimization) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=335
* performance/io-cache: change the hash function used for rbtree based hash table.Raghavendra G2009-10-292-12/+16
| | | | | | | | | | | | | | | - the earlier hash function does not distribute pages uniformly for offsets that fit into 32 bits. The reason is that the hash function just xors the contents of the key 4 bytes at a time with the current value of hash. Hence for keys that fit into 32 bits, the hash will be the key itself. Since we are using the rounded_offset (which is a multiple of 128KB) as the key, the key will be exactly divisible by the number of buckets configured (4096) resolving all the pages into the first bucket. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 335 (Io-cache optimization) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=335
* libglusterfs/rbtree: change rbthash_init_table to take no of expected ↵Raghavendra G2009-10-282-6/+14
| | | | | | | | | | | | | | entries in the hash table as argument. - the expected number of entries is used to create the memory pool of the hash table. Having constant macro for this purpose is not suitable since different users of rbtree based hash table store different number of entries in the table. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 335 (Io-cache optimization) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=335
* performance/io-cache: fix memory leak.Raghavendra G2009-10-281-0/+1
| | | | | | | | | - page table of cache was not being destroyed in ioc_forget. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 335 (Io-cache optimization) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=335
* performance/io-cache: fix double free.Raghavendra G2009-10-281-1/+1
| | | | | | | | | | | - the destroyer function passed to rbthash_table_init is used to free the data. The data being inserted is page and it is destroyed in ioc_page_destroy. Hence no destroyer function needs to be passed to rbthash_table_init. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 335 (Io-cache optimization) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=335
* performance/io-cache: change data structure used to store page-cache.Raghavendra G2009-10-285-69/+90
| | | | | | | | | - io-cache uses rbtree based hash tables to store page-cache instead of lists. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 335 (Io-cache optimization) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=335
* performance/write-behind: fix to bug in setattr which was causing frames to ↵Raghavendra G2009-10-201-1/+2
| | | | | | | | | | | | | | | be missed. - local->file was being assigned even before file pointer was got from any of the fds opened on the inode, thus making local->file to be NULL. In wb_setattr_cbk, since local->file is NULL (and hence file passed to wb_process_queue), wb_process_queue does not resume the pending operations queued for the file. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 327 (dbench does not complete) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=327
* performance/read-ahead: Process state dump operations are added.vinayak hegde2009-10-201-0/+47
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 213 (Support for process state dump) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=213
* performance/quick-read: Process state dump operations are added.vinayak hegde2009-10-201-0/+35
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 213 (Support for process state dump) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=213
* performance/write-behind: Process state dump operations are added.vinayak hegde2009-10-201-0/+43
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 213 (Support for process state dump) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=213
* performance/write-behind: initialize frame->local before goto out labelvinayak hegde2009-10-161-10/+10
| | | | | | | | | | if mtime,atime are not changed, frame->local will not be initialized. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 310 (While trying to create a file on replicate with write behind set-up, client crashes.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=310
* performance/write-behind: In wb_setattr, inode is checked twicevinayak hegde2009-10-151-27/+10
| | | | | | | | | | 1. check for is it a directory, 2. otherwise check for inode and continue. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 310 (While trying to create a file on replicate with write behind set-up, client crashes.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=310
* performance/io-cache: remove caching in lookup.Raghavendra G2009-10-151-219/+0
| | | | | | | | | | - caching file contents in io-cache during lookup is obsolete since quick-read does the same work. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 314 (Hang in quick-read) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=314
* performance/quick-read: frame->local need not be set in qr_open_cbk.Raghavendra G2009-10-151-4/+1
| | | | | | | | | | - local is used only by certain operations and hence it need not be set by all the operations invoking open. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 323 (fd leak with quick-read loaded in translator tree) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=323
* performance/quick-read: flush should proceed with winding if fd-context is ↵Raghavendra G2009-10-151-2/+1
| | | | | | | | | | | | not found. - if the fd-context is not set, quick-read has no role to play other than just passing down the call to underlying translators. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 317 (Data corruption with write-behind loaded in translator tree.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=317
* performance/write-behind:STACK_UNWIND happens only in failure path of wb_stat()Vijay Bellur2009-10-151-1/+2
| | | | | | | | | | Only in case of errors STACK_UNWIND happens in wb_stat(). Also, fixed an incorrect check which would fail all writes. Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 309 (In replicate set-up when exnihilate.sh is run , client crashes.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=309
* io-cache: NFS-friendly changesShehjar Tikoo2009-10-141-3/+4
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 145 (NFSv3 related additions to 2.1 task list) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=145
* performance/write-behind: return from wb_open after STACK_WINDVijay Bellur2009-10-141-0/+1
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 312 (iozone crash in Distribute-Replicate) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=312
* performance/write-behind: In wb_setattr file is used before getting fd contextvinayak hegde2009-10-131-1/+17
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 310 (While trying to create a file on replicate with write behind set-up, client crashes.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=310
* performance/write-behind: file is referenced, without checking for NULLvinayak hegde2009-10-131-1/+2
| | | | | | | Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 310 (While trying to create a file on replicate with write behind set-up, client crashes.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=310
* 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: 273 (Code review and optimize quick-read) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=273
* performance/write-behind: Add enable-trickling-writes to volume_options.Raghavendra G2009-10-091-0/+3
| | | | | | | 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/stat-prefetch: checking for cache and creation if not present is ↵Raghavendra G2009-10-091-23/+64
| | | | | | | | | made atomic. 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: lookup path in xattrop if it is not already ↵Raghavendra G2009-10-091-10/+69
| | | | | | | | | looked up. 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_entrylk.Raghavendra G2009-10-091-0/+85
| | | | | | | | | - lookup on path should be sent in entrylk if it is not already looked up. 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_inodelk.Raghavendra G2009-10-091-0/+83
| | | | | | | | | - path has to be looked up in inodelk if it is not already looked up. 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: lookup path in removexattr if it is not already ↵Raghavendra G2009-10-091-10/+69
| | | | | | | | | looked up. 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_getxattr.Raghavendra G2009-10-091-0/+89
| | | | | | | | | - path should be looked up in getxattr if it is not already looked up. 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: lookup path in setxattr if it is not already ↵Raghavendra G2009-10-091-10/+71
| | | | | | | | | looked up. 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: lookup path in opendir if it is not already ↵Raghavendra G2009-10-091-9/+72
| | | | | | | | | looked up. 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: lookup path in create if it is not already looked up.Raghavendra G2009-10-091-15/+88
| | | | | | | 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: remove stat corresponding to oldloc->path from ↵Raghavendra G2009-10-091-3/+9
| | | | | | | | | | | 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: 221 (stat prefetch implementation) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=221
* performance/stat-prefetch: lookup oldloc->path in link if it has not already ↵Raghavendra G2009-10-091-12/+83
| | | | | | | | | been looked up. 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: lookup oldpath and newpath in rename if they've ↵Raghavendra G2009-10-092-17/+185
| | | | | | | | | not already been looked up. 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: lookup path in symlink if it is not already ↵Raghavendra G2009-10-091-12/+73
| | | | | | | | | looked up. 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: lookup path in rmdir if it is not already looked up.Raghavendra G2009-10-091-13/+71
| | | | | | | 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: lookup path in unlink if it is not already looked up.Raghavendra G2009-10-091-12/+70
| | | | | | | 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: fix mkdir to unwind with proper number of arguments.Raghavendra G2009-10-091-2/+2
| | | | | | | 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: lookup path in mkdir if it is not already looked up.Raghavendra G2009-10-091-12/+75
| | | | | | | 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: lookup path in mknod if it is not already looked up.Raghavendra G2009-10-091-12/+75
| | | | | | | 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
* peformance/stat-prefetch: lookup path in readlink if it is not already ↵Raghavendra G2009-10-091-10/+70
| | | | | | | | | looked up. 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_accessRaghavendra G2009-10-091-0/+79
| | | | | | | | | - sp_access should send lookup on the path if it is not already looked up. 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: lookup path in truncate if it is not already ↵Raghavendra G2009-10-091-10/+69
| | | | | | | | | looked up. 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: lookup path in setattr if it is not already ↵Raghavendra G2009-10-091-11/+70
| | | | | | | | | looked up. 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_stat.Raghavendra G2009-10-091-0/+87
| | | | | | | 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: lookup path in checksum if it is not already ↵Raghavendra G2009-10-091-10/+69
| | | | | | | | | looked up. 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: lookup the path in open if it is not already ↵Raghavendra G2009-10-091-9/+77
| | | | | | | | | looked up. 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 procedure sp_process_inode_ctx.Raghavendra G2009-10-091-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: 221 (stat prefetch implementation) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=221
* performance/stat-prefetch: use op_errno instead of errno to store error code.Raghavendra G2009-10-091-109/+191
| | | | | | | 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: Add support code to implement lookup-behind.Raghavendra G2009-10-092-55/+199
| | | | | | | | | | | | | - 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: 221 (stat prefetch implementation) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=221