Revision tags: v4.6.5, v4.6.3, v4.6.4, v4.6.2, v4.6.1, v4.6.0, v4.6.0-DP, v4.5.1, v4.1.2, v3.1.6, v4.5.0, v4.1.1, v3.1.5, v3.1.4, v3.1.3, v4.1.0, v3.1.2, v3.1.1, v4.0.0, v3.1.0, v3.0.2, v3.0.0 |
|
#
e616ac04 |
| 17-Jul-2014 |
Sundar Sridharan <sundar.sridharan@gmail.com> |
MB-11731 remove shard level locking from ExecutorPool we no longer need to block threads at shard level since locks are acquired at the vbucket level Change-Id: Iebc368d243499b7
MB-11731 remove shard level locking from ExecutorPool we no longer need to block threads at shard level since locks are acquired at the vbucket level Change-Id: Iebc368d243499b76b5cf1f4f0d50c487866960dc Reviewed-on: http://review.couchbase.org/39502 Reviewed-by: abhinav dangeti <abhinav@couchbase.com> Tested-by: Sundararaman Sridharan <sundar@couchbase.com>
show more ...
|
#
b6534b8a |
| 14-Jul-2014 |
Sundar Sridharan <sundar.sridharan@gmail.com> |
MB-11434 distributed sleep on taskQ Make shared thread pool workers sleep inside their respective TaskQueue mutexes as opposed to a single global mutex to reduce the CPU overhead of
MB-11434 distributed sleep on taskQ Make shared thread pool workers sleep inside their respective TaskQueue mutexes as opposed to a single global mutex to reduce the CPU overhead of putting threads to sleep and waking them up. We still try to wake only as many threads as ready tasks. First try waking local threads, if still more tasks are ready, then visit other TaskQueues to wake their sleeping threads Results in 15% improvement in view operations local testing Lowered scheduling overhead with larger number of threads Change-Id: I8ca746a696b4b2166f327385125b8510c0567407 Reviewed-on: http://review.couchbase.org/39210 Reviewed-by: Chiyoung Seo <chiyoung@couchbase.com> Tested-by: Sundararaman Sridharan <sundar@couchbase.com>
show more ...
|
#
2900340f |
| 30-Jun-2014 |
Chiyoung Seo <chiyoung.seo@gmail.com> |
MB-11488 Set the thread local to NULL before calling thread pool API Memory allocations and de-allocations inside a global thread pool API should not be accounted in a bucket memory quot
MB-11488 Set the thread local to NULL before calling thread pool API Memory allocations and de-allocations inside a global thread pool API should not be accounted in a bucket memory quota because they might not be executed in the same bucket context. As a todo task, we need to keep track of the memory overhead of the global thread pool separately. Change-Id: I328dc39c98a23c2e397ccae08b0dc76936d6d2f6 Reviewed-on: http://review.couchbase.org/38942 Reviewed-by: abhinav dangeti <abhinav@couchbase.com> Tested-by: Chiyoung Seo <chiyoung@couchbase.com>
show more ...
|
#
d197ec73 |
| 24-Jun-2014 |
Sundar Sridharan <sundar.sridharan@gmail.com> |
MB-11405 Wake only as many threads as ready tasks + If a thread has uncovered only one ready task then do not wake more threads, since current thread will suffice. + Only signal th
MB-11405 Wake only as many threads as ready tasks + If a thread has uncovered only one ready task then do not wake more threads, since current thread will suffice. + Only signal threads if they are sleeping. + cond_broadcast and wake all threads if we have more ready tasks than sleeping threads + Aggregate and signal threads to avoid repeated mutex contentions Change-Id: Ic130b87c19a2c5cd9eb971078c9a40b3612b5da0 Reviewed-on: http://review.couchbase.org/38756 Reviewed-by: Chiyoung Seo <chiyoung@couchbase.com> Tested-by: Chiyoung Seo <chiyoung@couchbase.com>
show more ...
|
#
495aaee4 |
| 26-Jun-2014 |
Sundar Sridharan <sundar.sridharan@gmail.com> |
MB-11524 Check pendingQueue on poll to avoid starvation We limit number of threads that can work on a task queue by blocking excess tasks in a pendingQueue. However in mixed priority
MB-11524 Check pendingQueue on poll to avoid starvation We limit number of threads that can work on a task queue by blocking excess tasks in a pendingQueue. However in mixed priority scenarios, we can end up with starvation if tasks are blocked in low priority pendingQueue while capacity is released to a high priority task queue. Fix is to release capacity when task finishes execution, and have the task queues poll the pendingQueue. This avoids starvation and also reduces mutex contentions. Change-Id: Iaeb08a53d31d21b463502085198d07923c0731c7 Reviewed-on: http://review.couchbase.org/38825 Reviewed-by: Chiyoung Seo <chiyoung@couchbase.com> Tested-by: Sundararaman Sridharan <sundar@couchbase.com>
show more ...
|
#
3af1e552 |
| 10-Jun-2014 |
Sundar Sridharan <sundar.sridharan@gmail.com> |
MB-11287 Lock TaskQ selectively, avoid busy loops Global Thread Pool offers 2 serialization features: 1. lockless shard serialization (Flusher, VBDelete, Snapshot etc) 2. task-queue
MB-11287 Lock TaskQ selectively, avoid busy loops Global Thread Pool offers 2 serialization features: 1. lockless shard serialization (Flusher, VBDelete, Snapshot etc) 2. task-queue based thread control (NonIO and AuxIO) If thread is working on tasks that need neither of the above two, then avoid any additional locking overhead. Also isLock variable ends up causing more overhead, removing same Change-Id: I38b060573975786973aa608277d40851adb64e45 Reviewed-on: http://review.couchbase.org/38102 Reviewed-by: abhinav dangeti <abhinav@couchbase.com> Reviewed-by: Sundararaman Sridharan <sundar@couchbase.com> Tested-by: Sundararaman Sridharan <sundar@couchbase.com>
show more ...
|
#
82430da3 |
| 04-Jun-2014 |
Sundar Sridharan <sundar.sridharan@gmail.com> |
MB-11287 move taskLogs to threads, lessen locking This fix is meant to both reduce CPU and memory usage when there are a large number of buckets by moving non-essential task logging
MB-11287 move taskLogs to threads, lessen locking This fix is meant to both reduce CPU and memory usage when there are a large number of buckets by moving non-essential task logging to ExecutorThread to avoid lock contention in TaskQueue mutex Change-Id: I8c82db1fb333febcead7e981e1dcffef3ce0b0a2 Reviewed-on: http://review.couchbase.org/37881 Tested-by: Sundararaman Sridharan <sundar@couchbase.com> Reviewed-by: Chiyoung Seo <chiyoung@couchbase.com>
show more ...
|
#
1172eb5d |
| 21-May-2014 |
Sundar Sridharan <sundar.sridharan@gmail.com> |
MB-10383 AuxIO, NonIO taskQ serialization must not affect CPU If a thread cannot pick up an AuxIO task or a NonIO task, then stash it away in a pendingQueue to avoid busy looping and hig
MB-10383 AuxIO, NonIO taskQ serialization must not affect CPU If a thread cannot pick up an AuxIO task or a NonIO task, then stash it away in a pendingQueue to avoid busy looping and high cpu usage, performance problems. added stats for the new pendingQueue Change-Id: I00c40bab8bd8d4dd8e691d3e532aa1c427066f6a Reviewed-on: http://review.couchbase.org/37367 Reviewed-by: Chiyoung Seo <chiyoung@couchbase.com> Reviewed-by: abhinav dangeti <abhinav@couchbase.com> Tested-by: Sundararaman Sridharan <sundar@couchbase.com>
show more ...
|
#
8ee8b461 |
| 14-May-2014 |
Sundar Sridharan <sundar.sridharan@gmail.com> |
MB-11083: block shard serial runnable tasks to save CPU Ready tasks in the task queue that cannot be picked up by a thread because of shard serialization are now put in a shard-local
MB-11083: block shard serial runnable tasks to save CPU Ready tasks in the task queue that cannot be picked up by a thread because of shard serialization are now put in a shard-local pending list to prevent threads from busy looping Change-Id: I84b999df2da6e769f0da49bfda0409cae564792a Reviewed-on: http://review.couchbase.org/37056 Reviewed-by: Chiyoung Seo <chiyoung@couchbase.com> Tested-by: Chiyoung Seo <chiyoung@couchbase.com>
show more ...
|
#
527009f4 |
| 25-Apr-2014 |
Sundar Sridharan <sundar.sridharan@gmail.com> |
Serialize Shard Level Operations from ExecutorPool Add a flag in every shard to indicate that a thread is currently working on it. In TaskQueue, threads check this flag first to ensu
Serialize Shard Level Operations from ExecutorPool Add a flag in every shard to indicate that a thread is currently working on it. In TaskQueue, threads check this flag first to ensure that only one thread picks up task from this shard Mark certain tasks like VBDeleteTask and VBSnapshotTask as needing serialization Change-Id: Ib4f0ae14d90a3d95ea0a59531197da4f87f388d3 Reviewed-on: http://review.couchbase.org/36286 Reviewed-by: Chiyoung Seo <chiyoung@couchbase.com> Tested-by: abhinav dangeti <abhinav@couchbase.com>
show more ...
|
#
29849d03 |
| 11-Mar-2014 |
Sundar Sridharan <sundar.sridharan@gmail.com> |
MB-9986 ensure futureQueue's heap sort Windows ep-engine unit tests enabling fix.. Microsoft Visual Studio has a debug heap checker which requires that STL container priority_queue a
MB-9986 ensure futureQueue's heap sort Windows ep-engine unit tests enabling fix.. Microsoft Visual Studio has a debug heap checker which requires that STL container priority_queue always satisfies the HEAPIFY property. In GIO's implementation it is possible that futureQueue can disobey the heap sort property temporarily when we wake and cancel tasks. To fix, always re-sort queue when task is woken or cancelled Change-Id: I5631a4ec7e609953f037cd5a7c689ed876b40c12 Reviewed-on: http://review.couchbase.org/34264 Reviewed-by: Chiyoung Seo <chiyoung@couchbase.com> Tested-by: Chiyoung Seo <chiyoung@couchbase.com>
show more ...
|
Revision tags: v2.5.1 |
|
#
ddb60c3d |
| 28-Jan-2014 |
Sundar Sridharan <sundar.sridharan@gmail.com> |
MB-9939: worker stats fix, debug for MB-9675 Move tasklog and slow log to the taskQueue so that worker stats are consistent and allows debugging of low disk utilization seen in MB-96
MB-9939: worker stats fix, debug for MB-9675 Move tasklog and slow log to the taskQueue so that worker stats are consistent and allows debugging of low disk utilization seen in MB-9675 Change-Id: I9184a5b87ea91eebc3db0e7c14b7e406245ea468 Reviewed-on: http://review.couchbase.org/32887 Reviewed-by: Chiyoung Seo <chiyoung@couchbase.com> Tested-by: Sundararaman Sridharan <sundar.sridharan@gmail.com>
show more ...
|
#
e32900fb |
| 08-Jan-2014 |
Trond Norbye <trond.norbye@gmail.com> |
Extract TaskQueue out of scheduler.h Change-Id: If46478214e81defa42d17f3e7c63f639ac266756 Reviewed-on: http://review.couchbase.org/31720 Reviewed-by: Sundararaman Sridharan <sundar.s
Extract TaskQueue out of scheduler.h Change-Id: If46478214e81defa42d17f3e7c63f639ac266756 Reviewed-on: http://review.couchbase.org/31720 Reviewed-by: Sundararaman Sridharan <sundar.sridharan@gmail.com> Tested-by: Sundararaman Sridharan <sundar.sridharan@gmail.com>
show more ...
|