| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
|
|
|
|
| |
We must add a 'return' after a STACK_UNWIND due to a stub creation
failure, because if we dont, we'll end up adding a NULL stub to the
worker thread request queue.
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch does two things:
1. Cleans up the request scheduling and queueing interface so that all
fops only need to call iot_schedule and not iot_queue and in some
cases iot_schedule.
2. Till now, we've had open and create calls go through the main
glusterfsd thread when sending open and create fops. This patch makes
them also go through the worker threads. But since the open and
creates requests would not be called with a valid inode number in the
loc_t, these requests will get assigned to the worker at index 0.
This will be fixed RSN, when we introduce various techniques of
distributing the inodes(..not requests..) over the worker threads.
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
|
|
|
|
|
|
| |
Worker threads were represented as a list in iot_conf_t
which made us traverse the list of workers in order to
decide which thread gets the request. Now we represent the
workers as a dynamically allocated array so that we can just index
into the array to schedule the file.
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
|
|
|
|
| |
This patch changes the per-thread request queue from a custom circular
linked list, into the standard list.h list which is easier to
understand and has a cleaner interface.
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
|
|
| |
updated copyright header to include 2009.
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
|
|
|
|
|
|
|
| |
iot_queue() and iot_dequeue() functions were using a io-threads
translator-wide lock which would be contended for by every worker
thread waiting for IO requests.
This patch reduces the granularity by turning the
lock into a per-worker lock.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
|
|
| |
Since we're not dependent on this io-thread internal state(i.e.
cache_size and current_size) to rate limit requests, we can remove
these two data members and code that checks for these.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|