Skip to content

Commit 86e3309

Browse files
Revert "Queue age to reflect the avg time spent by an item in the dirty queue"
This reverts commit a0d8deb. Change-Id: I213f665edef781745d77f82ae4a6c41b2062d3b1 Reviewed-on: http://review.couchbase.org/55886 Reviewed-by: abhinav dangeti <abhinav@couchbase.com> Tested-by: abhinav dangeti <abhinav@couchbase.com>
1 parent a847eb3 commit 86e3309

4 files changed

Lines changed: 18 additions & 18 deletions

File tree

docs/stats.org

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -375,7 +375,7 @@ For introductory information on stats within Couchbase, start with the
375375
| vb_active_ops_reject | Number of rejected operations |
376376
| vb_active_queue_size | Active items in disk queue |
377377
| vb_active_queue_memory | Memory used for disk queue |
378-
| vb_active_queue_age | Average disk queue item age in milliseconds|
378+
| vb_active_queue_age | Sum of disk queue item age in milliseconds |
379379
| vb_active_queue_pending | Total bytes of pending writes |
380380
| vb_active_queue_fill | Total enqueued items |
381381
| vb_active_queue_drain | Total drained items |
@@ -401,7 +401,7 @@ For introductory information on stats within Couchbase, start with the
401401
| vb_replica_ops_reject | Number of rejected operations |
402402
| vb_replica_queue_size | Replica items in disk queue |
403403
| vb_replica_queue_memory | Memory used for disk queue |
404-
| vb_replica_queue_age | Average disk queue item age in milliseconds|
404+
| vb_replica_queue_age | Sum of disk queue item age in milliseconds |
405405
| vb_replica_queue_pending | Total bytes of pending writes |
406406
| vb_replica_queue_fill | Total enqueued items |
407407
| vb_replica_queue_drain | Total drained items |
@@ -427,7 +427,7 @@ For introductory information on stats within Couchbase, start with the
427427
| vb_pending_ops_reject | Number of rejected operations |
428428
| vb_pending_queue_size | Pending items in disk queue |
429429
| vb_pending_queue_memory | Memory used for disk queue |
430-
| vb_pending_queue_age | Average disk queue item age in milliseconds|
430+
| vb_pending_queue_age | Sum of disk queue item age in milliseconds |
431431
| vb_pending_queue_pending | Total bytes of pending writes |
432432
| vb_pending_queue_fill | Total enqueued items |
433433
| vb_pending_queue_drain | Total drained items |
@@ -458,7 +458,7 @@ The stats below are listed for each vbucket.
458458
| ops_reject | Number of rejected operations |
459459
| queue_size | Pending items in disk queue |
460460
| queue_memory | Memory used for disk queue |
461-
| queue_age | Average disk queue item age in milliseconds|
461+
| queue_age | Sum of disk queue item age in milliseconds |
462462
| queue_fill | Total enqueued items |
463463
| queue_drain | Total drained items |
464464
| pending writes | Total bytes of pending writes |

src/ep_engine.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ class VBucketCountVisitor : public VBucketVisitor {
166166
size_t getQueueMemory() { return queueMemory; }
167167
size_t getQueueFill() { return queueFill; }
168168
size_t getQueueDrain() { return queueDrain; }
169-
uint64_t getAge() { return (numVbucket > 0 ? queueAge / numVbucket : 0); }
169+
uint64_t getAge() { return queueAge; }
170170
size_t getPendingWrites() { return pendingWrites; }
171171
size_t getChkPersistRemaining() { return chkPersistRemaining; }
172172

src/vbucket.cc

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,7 @@ void VBucket::doStatsForQueueing(Item& qi, size_t itemBytes)
206206
++dirtyQueueSize;
207207
dirtyQueueMem.fetch_add(sizeof(Item));
208208
++dirtyQueueFill;
209+
dirtyQueueAge.fetch_add(qi.getQueuedTime());
209210
dirtyQueuePendingWrites.fetch_add(itemBytes);
210211
}
211212

@@ -219,9 +220,11 @@ void VBucket::doStatsForFlushing(Item& qi, size_t itemBytes)
219220
}
220221
++dirtyQueueDrain;
221222

222-
rel_time_t diff = ep_current_time() - qi.getQueuedTime();
223-
dirtyQueueAgeSum.fetch_add(diff > 0 ? diff : 0);
224-
dirtyQueueSamples++;
223+
if (dirtyQueueAge > qi.getQueuedTime()) {
224+
dirtyQueueAge.fetch_sub(qi.getQueuedTime());
225+
} else {
226+
dirtyQueueAge.store(0);
227+
}
225228

226229
if (dirtyQueuePendingWrites > itemBytes) {
227230
dirtyQueuePendingWrites.fetch_sub(itemBytes);
@@ -251,8 +254,7 @@ void VBucket::resetStats() {
251254
dirtyQueueSize.store(0);
252255
dirtyQueueMem.store(0);
253256
dirtyQueueFill.store(0);
254-
dirtyQueueAgeSum.store(0);
255-
dirtyQueueSamples.store(0);
257+
dirtyQueueAge.store(0);
256258
dirtyQueuePendingWrites.store(0);
257259
dirtyQueueDrain.store(0);
258260
fileSpaceUsed = 0;

src/vbucket.h

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -163,8 +163,7 @@ class VBucket : public RCValue {
163163
dirtyQueueMem(0),
164164
dirtyQueueFill(0),
165165
dirtyQueueDrain(0),
166-
dirtyQueueAgeSum(0),
167-
dirtyQueueSamples(0),
166+
dirtyQueueAge(0),
168167
dirtyQueuePendingWrites(0),
169168
metaDataDisk(0),
170169
numExpiredItems(0),
@@ -305,13 +304,13 @@ class VBucket : public RCValue {
305304

306305
void resetStats();
307306

308-
// Get age average in milliseconds
307+
// Get age sum in millisecond
309308
uint64_t getQueueAge() {
310-
if (dirtyQueueSamples == 0) {
309+
rel_time_t currentAge = ep_current_time() * dirtyQueueSize;
310+
if (currentAge < dirtyQueueAge) {
311311
return 0;
312-
} else {
313-
return (dirtyQueueAgeSum / dirtyQueueSamples) * 1000;
314312
}
313+
return (currentAge - dirtyQueueAge) * 1000;
315314
}
316315

317316
void fireAllOps(EventuallyPersistentEngine &engine);
@@ -489,8 +488,7 @@ class VBucket : public RCValue {
489488
AtomicValue<size_t> dirtyQueueMem;
490489
AtomicValue<size_t> dirtyQueueFill;
491490
AtomicValue<size_t> dirtyQueueDrain;
492-
AtomicValue<uint64_t> dirtyQueueAgeSum;
493-
AtomicValue<uint64_t> dirtyQueueSamples;
491+
AtomicValue<uint64_t> dirtyQueueAge;
494492
AtomicValue<size_t> dirtyQueuePendingWrites;
495493
AtomicValue<size_t> metaDataDisk;
496494

0 commit comments

Comments
 (0)