summaryrefslogtreecommitdiffstats
path: root/xlators
Commit message (Collapse)AuthorAgeFilesLines
* Compulsorily do self heal if file sizes differ.Vikas Gorur2009-04-096-23/+100
| | | | | | | | | If file sizes differ, then compulsorily do self-heal. If no 'wise' sources are found, then pick a 'fool' with the biggest file size. If even 'fools' aren't found, pick the 'innocent' source with the biggest file size. Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* Handle files which have no pending xattrs at all.Vikas Gorur2009-04-091-1/+27
| | | | | | | | If a pending xattr key is non-existent on a file (call such files 'ignorant'), make all other non-ignorant subvolumes point towards the ignorant one. Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* Erase xattr during self-heal based on original dict.Vikas Gorur2009-04-095-10/+27
| | | | | | | | Decrement xattr during self-heal based on the original dict instead of pending_matrix, as the pending_matrix might have been altered later. Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* niftify mount(8) output for glusterfs mountsCsaba Henk2009-04-081-32/+79
| | | | | | | | | | | | Originally, mount(8) shows a glusterfs mount like this: glusterfs on <mp> type fuse With this patch, mount(8) will show a glusterfs mount like this: <volfile> on <mp> type fuse.glusterfs Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* introduction of secondary index database in storage/bdbBasavanagowda Kanur2009-04-084-1523/+2019
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* link() & rename() on storage/bdb will always return EXDEV.Basavanagowda Kanur2009-04-083-353/+2
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* storage/bdb untabify, code alignment to limit to 80 characters per line.Basavanagowda Kanur2009-04-084-4409/+4566
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* map translator cleanup.Amar Tumballi2009-04-081-643/+1065
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* Fix minor bug in afr_open_cbk.Vikas Gorur2009-04-081-3/+7
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* io-threads: Refactor un-ordered worker exit pathShehjar Tikoo2009-04-081-33/+17
| | | | | | | This is being done for the same reason as the previous refactoring for ordered threads. Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* io-threads: Refactor ordered worker exit pathShehjar Tikoo2009-04-081-34/+25
| | | | | | | | | | | | | | This patch re-factors the exit path of an ordered worker on a time-out. Earlier we're checking for exit permission in such a way that required us to release and acquire the worker lock a second time in the worker loop opening a window wherein a new request could've been appended to the request queue. This patch makes the decision to exit while still holding on to the worker lock. Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* Fix in changelog logic.Vikas Gorur2009-04-076-41/+254
| | | | | | If a writev fails, remember it by marking it in the fd context. Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* Consider a subvolume dead if an fop fails on itVikas Gorur2009-04-073-17/+19
| | | | | | | | | Transaction fops earlier called afr_transaction_child_died only if an fop failed due to ENOTCONN or EBADFD. Now they consider a child dead regardless of the reason for failure. This handles cases such as ENOSPC. Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* fix to fd leak in posix_create() in case of some failures.Amar Tumballi2009-04-061-2/+3
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* nufa to take care of free disk-space while creating files.Amar Tumballi2009-04-061-32/+74
| | | | | | nufa gets awareness about the available free-disk-space in subvolumes. Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* Fix in return value of afr_sh_mark_sourcesVikas Gorur2009-04-063-10/+26
| | | | | | | | | | | | afr_sh_mark_sources now returns: -1 if two wise subvols conflict (split-brain) 0 if all subvols are innocent (no self-heal needed) >0 if sources found Also, changes to callers of afr_sh_mark_sources to handle return value properly. Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* bitrot-13 fixCsaba Henk2009-04-061-0/+2
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* io-threads: Cleaner stub destructionShehjar Tikoo2009-04-061-0/+3
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* io-threads: Sanity check worker thread idxShehjar Tikoo2009-04-061-20/+62
| | | | | | | | This patch adds sanity check for the ordered worker thread index returned from the inode's context. If the index is corrupted we STACK_UNWIND with ECANCELED. Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* distribute to take care of available disk space while creating new dirs, and ↵Amar Tumballi2009-04-035-26/+384
| | | | | | | | files. distribute gets awareness about disk-space while creating the files Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* server-protocol - reimplement connection cleanup to happen in 2 phasesRaghavendra G2009-04-034-22/+206
| | | | | | | | | | | - first phase, which happens when POLLERR is received on transport, releases all locks, flushes all open fds. - second phase, which happens when both the transports of connection destroyed, destroys the containers like lock table, fd table along with the connection. - the first phase, clears up any references to transport held by translators like posix-locks(in the form of blocked locks) paving way for the second phase. Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* Made afr inode context a 64-bit packed value instead of a structure.Vikas Gorur2009-04-034-313/+205
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* Load balance read operations among subvolumes in afrVikas Gorur2009-04-024-110/+513
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* Defined afr_inode_ctx_t structure.Vikas Gorur2009-04-022-11/+76
| | | | | | | | Notification of a split-brain situation, which was earlier signalled by the mere presence of inode context is now signalled by the 'split_brain' member in the structure. Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* io-threads: Support autoscaling volfile optionsShehjar Tikoo2009-04-022-24/+104
| | | | | | | | | | | | | | | | | This commit finally makes the autoscaling feature visible to the user. Know that we're now using two separate thread-pools, one for data requests, called ordered thread-pool in io-threads, and the other for meta-data requests, called un-ordered thread-pool. We do not expose this information to the user to keep io-threads simple. Consequently, when the user specifies a min-threads and max-threads value, the number of threads assigned to each pool is equal, i.e. both pools start with their min threads set to half of the option "min-threads" and both scale up their threads at most up to half of option "max-threads". Volfile options will be added to the wiki and user-guide. Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* io-threads: Cleanup request queueing,thread firingShehjar Tikoo2009-04-021-30/+38
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* io-threads: Allow scaling to be switched offShehjar Tikoo2009-04-022-11/+73
| | | | | | | | The default is also to provide no scaling. For both, ordered and unordered request pools, when scaling is off, we maintain atleast the minimum number of threads specified in the volfile. Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* io-threads: Add ordered threadpool state and codeShehjar Tikoo2009-04-022-58/+182
| | | | | | | | | | | Now we have the remaining fops going through the ordered thread-pool. To route a request through ordered thread, we use iot_schedule_ordered(..) and the worker thread for ordered requests is iot_worker_ordered(..) Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* io-threads: Add un-ordered thread-pool.Shehjar Tikoo2009-04-022-98/+334
| | | | | | | | | | | | | | | | | | This commit adds everything needed to: a. Get un-ordered request going through the un-ordered thread-pool. This happens through, the iot_schedule_unordered(..). The unordered thread-pool consists of thread running the iot_worker_unordered(..) function. b. Make threads in the un-ordered thread pool start-up and exit depending on the thread state. Note that at this point the requests that need ordering are still going through iot_schedule(..). Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* io-threads: Classify requests for threadpool typeShehjar Tikoo2009-04-021-26/+33
| | | | | | | | | | | | | | | | | New io-threads will serve requests through two separate threadpools. One thread pool for requests that must be ordered on a file that is open. so that the server can process the requests in the order they were entered in the requests queue, and not in the order the io-thread is able to send a request, which in turn is determined by how the thread gets scheduled. This can also be called the data-intensive ops thread pool. Second thread-pool for requests that dont care about ordering, i.e. requests like lookup, open, create, mkdir, etc. Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* io-threads: Wire in support for rename fopShehjar Tikoo2009-04-021-0/+55
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* io-threads: Wire in support for symlink fopShehjar Tikoo2009-04-021-0/+53
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* io-threads: Wire in support for rmdir fopShehjar Tikoo2009-04-021-0/+40
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* io-threads: Wire in support for mkdir fopShehjar Tikoo2009-04-021-0/+44
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* io-threads: Wire in support for mknod fopShehjar Tikoo2009-04-021-0/+47
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* io-threads: Wire in support for readlink fopShehjar Tikoo2009-04-021-0/+43
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* io-threads: Wire in support for access fopShehjar Tikoo2009-04-021-0/+43
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* io-threads: Wire in support for fchown fopShehjar Tikoo2009-04-021-0/+46
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* io-threads: Wire in support for chownShehjar Tikoo2009-04-021-0/+46
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* io-threads: Wire in support for fchmod fopShehjar Tikoo2009-04-021-0/+43
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* io-threads: Wire in support for chmod fopShehjar Tikoo2009-04-021-0/+42
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* io-threads: Wire in support for lookup fopShehjar Tikoo2009-04-021-0/+46
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* wb_flush - keep reference on fd for process_frame to perform STACK_WIND of ↵Anand V. Avati2009-04-021-0/+4
| | | | | | | | flush. This patch fixes bug report by Greg <greg@easyflirt.com> on gluster-users@ with subject 'glusterfsd crash' Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* unify-self-heal: Fix un-ref'ing of incorrect dictShehjar Tikoo2009-04-021-1/+1
| | | | | | | | | | | | | dict_unref'ing of the dict in local results in a crash due to de-referencing a NULL spinlock. That is because after a STACK_UNWIND(..), we cannot expect the frame->local to be allocated still. Fix by using the other available reference to local->dict. Ref: https://savannah.nongnu.org/bugs/?26058 Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* Print log message when AFR receives CHILD_UP/DOWN notificationVikas Gorur2009-04-021-0/+6
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* mount/fuse to silently send fresh lookup for ESTALEd revalidates. log only ↵Basavanagowda Kanur2009-04-021-1/+4
| | | | | | in DEBUG level. Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* cluster/stripe to propogate ESTALE to parent.Basavanagowda Kanur2009-04-021-2/+4
| | | | Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* cluster/unify propogates ESTALE to parent translator, if any subvolume ↵Basavanagowda Kanur2009-04-021-4/+30
| | | | | | returns ESTALE during revalidate. Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* cluster/replicate should propogate the ESTALE error to parent, when at least ↵Basavanagowda Kanur2009-04-021-4/+14
| | | | | | one subvolume returns ESTALE. Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
* cluster/{dht,nufa} propogate ESTALE (when at least one subvolume returns ↵Basavanagowda Kanur2009-04-021-1/+10
| | | | | | ESTALE for revalidate) to parent translator. Signed-off-by: Anand V. Avati <avati@amp.gluster.com>