Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Update CHECKPOINT_START item if the open checkpoint ID is changed.

During the warmup time, we read each vbucket's last checkpoint Id
from vbucket_state DB table, and then update each vbucket's open
checkpoint Id. In this process, we also update CHECKPOINT_START
item with the new checkpoint Id.

Change-Id: I2de90e70a3e944277eb5f7ce1c1a1f4ada7414f6
Reviewed-on: http://review.membase.org/5051
Reviewed-by: Trond Norbye <trond.norbye@gmail.com>
Tested-by: Chiyoung Seo <chiyoung.seo@gmail.com>
  • Loading branch information...
commit 5cd27353d8cd9f440a77cde392a69034a7ead738 1 parent 0433991
@chiyoung chiyoung authored chiyoung committed
Showing with 7 additions and 0 deletions.
  1. +7 −0 checkpoint.cc
View
7 checkpoint.cc
@@ -118,6 +118,13 @@ void CheckpointManager::setOpenCheckpointId(uint64_t id) {
LockHolder lh(queueLock);
if (checkpointList.size() > 0) {
checkpointList.back()->setId(id);
+ // Update the checkpoint_start item with the new Id.
+ std::stringstream ss;
+ ss << id;
+ shared_ptr<const Blob> vblob(Blob::New(ss.str().c_str(), ss.str().size()));
+ queued_item item(new QueuedItem("", vblob, vbucketId, queue_op_checkpoint_start));
+ std::list<queued_item>::iterator it = ++(checkpointList.back()->begin());
+ *it = item;
nextCheckpointId = ++id;
}
}
Please sign in to comment.
Something went wrong with that request. Please try again.