Skip to content

Commit

Permalink
Converted RepairJob to Async service
Browse files Browse the repository at this point in the history
  • Loading branch information
Chinmay Soman committed Nov 1, 2011
1 parent fc06b17 commit ad05eaf
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 10 deletions.
2 changes: 1 addition & 1 deletion src/java/voldemort/server/StoreRepository.java
Expand Up @@ -8,7 +8,7 @@

import voldemort.VoldemortException;
import voldemort.annotations.concurrency.Threadsafe;
import voldemort.server.scheduler.slop.RepairJob;
import voldemort.server.storage.RepairJob;
import voldemort.store.StorageEngine;
import voldemort.store.Store;
import voldemort.store.slop.SlopStorageEngine;
Expand Down
Expand Up @@ -45,7 +45,7 @@
import voldemort.server.protocol.RequestHandler;
import voldemort.server.protocol.StreamRequestHandler;
import voldemort.server.rebalance.Rebalancer;
import voldemort.server.scheduler.slop.RepairJob;
import voldemort.server.storage.RepairJob;
import voldemort.server.storage.StorageService;
import voldemort.store.ErrorCodeMapper;
import voldemort.store.StorageEngine;
Expand Down Expand Up @@ -613,12 +613,25 @@ public VAdminProto.RollbackStoreResponse handleRollbackStore(VAdminProto.Rollbac
public VAdminProto.RepairJobResponse handleRepairJob(VAdminProto.RepairJobRequest request) {
VAdminProto.RepairJobResponse.Builder response = VAdminProto.RepairJobResponse.newBuilder();
try {
RepairJob job = storeRepository.getRepairJob();
if(job != null) {
logger.info("Starting the repair job now on ID : " + metadataStore.getNodeId());
job.run();
} else
logger.error("RepairJob is not scheduled.");
int requestId = asyncService.getUniqueRequestId();
asyncService.submitOperation(requestId, new AsyncOperation(requestId, "Repair Job") {

@Override
public void operate() {
RepairJob job = storeRepository.getRepairJob();
if(job != null) {
logger.info("Starting the repair job now on ID : "
+ metadataStore.getNodeId());
job.run();
} else
logger.error("RepairJob is not initialized.");
}

@Override
public void stop() {
status.setException(new VoldemortException("Repair job interrupted"));
}
});
} catch(VoldemortException e) {
response.setError(ProtoUtils.encodeError(errorCodeMapper, e));
logger.error("Repair job failed for request : " + request.toString() + ")", e);
Expand Down
@@ -1,4 +1,4 @@
package voldemort.server.scheduler.slop;
package voldemort.server.storage;

import java.util.Arrays;
import java.util.Date;
Expand Down
1 change: 0 additions & 1 deletion src/java/voldemort/server/storage/StorageService.java
Expand Up @@ -58,7 +58,6 @@
import voldemort.server.scheduler.DataCleanupJob;
import voldemort.server.scheduler.SchedulerService;
import voldemort.server.scheduler.slop.BlockingSlopPusherJob;
import voldemort.server.scheduler.slop.RepairJob;
import voldemort.server.scheduler.slop.StreamingSlopPusherJob;
import voldemort.store.StorageConfiguration;
import voldemort.store.StorageEngine;
Expand Down

0 comments on commit ad05eaf

Please sign in to comment.