/**
  * verify the list in the store engine and return the list which needs to be deleted in the client
  *
  * @param verifyList
  * @param bucketNo
  * @return
  */
 public List<SyncDataTask> verifyExpiredDbIfs(List<SyncDataTask> verifyList, String bucketNo) {
   List<SyncDataTask> deletedList = new ArrayList<SyncDataTask>();
   for (SyncDataTask task : verifyList) {
     boolean isContain =
         mdbManager.verifyExpiredDbInfo(
             Integer.parseInt(bucketNo), task.getSizeFlag(), task.getDbinfoId());
     if (!isContain) {
       deletedList.add(task);
     }
   }
   return deletedList;
 }
 public LinkedList<SyncDataTask> getTasksNotExistedInSyncList(
     Map<String, Set<String>> dataMap, String bucketNo) throws HippoStoreException {
   LinkedList<SyncDataTask> result = new LinkedList<SyncDataTask>();
   if (dataMap != null) {
     for (Entry<String, Set<String>> entry : dataMap.entrySet()) {
       String sizeFlag = entry.getKey();
       Set<String> dbIfs = entry.getValue();
       if (dbIfs != null && dbIfs.size() > 0) {
         List<SyncDataTask> subResult =
             mdbManager.getTasksNotExistedInSyncList(dbIfs, Integer.parseInt(bucketNo), sizeFlag);
         result.addAll(subResult);
         subResult.clear();
       }
     }
   } else {
     List<SyncDataTask> subResult = mdbManager.getWholeDBIfs(Integer.parseInt(bucketNo));
     result.addAll(subResult);
     subResult.clear();
   }
   return result;
 }
 @Override
 public boolean isStarted() {
   return mdbManager != null && mdbManager.isStarted();
 }
 @Override
 public boolean replicated(String bucketNo, String sizeType, String blockNo, byte[] data)
     throws HippoStoreException {
   int buckNum = Integer.parseInt(bucketNo);
   return mdbManager.syncDBIf(buckNum, sizeType, blockNo, 0, data);
 }
 /**
  * send all the data to other servers
  *
  * @param bucketNo
  * @param blockNo dbIf's id
  * @param offset offset in the dbIf
  * @param size size_string
  */
 @Override
 public byte[] migration(String bucketNo, String sizetype, String blockNo, int offset, int size) {
   int buckNum = Integer.parseInt(bucketNo);
   return mdbManager.duplicateDirectBuffer(buckNum, sizetype, blockNo, offset, size);
 }
 /**
  * Map<String, List<String>>
  *
  * <p>String 为sizeFlag
  *
  * <p>List<String> 为对应sizeflag的dbinfo id
  */
 @Override
 public Map<String, List<String>> getBucketStorageInfo(String bucketNo) {
   return mdbManager.collectDBIfs(Integer.parseInt(bucketNo));
 }
 /**
  * when happen out of memory , need to do emergency verify
  *
  * @param bucketNo
  * @return
  */
 public double getUsedPercent(String bucketNo) throws HippoStoreException {
   return mdbManager.getUsedPercent(Integer.parseInt(bucketNo));
 }
 /**
  * when happen out of memory , need to do emergency verify
  *
  * @param bucketNo
  * @return
  */
 public LinkedList<SyncDataTask> emergencyVerifyBucket(String bucketNo)
     throws HippoStoreException {
   return mdbManager.emergencyVerifyBucket(Integer.parseInt(bucketNo));
 }
 @Override
 public void resetBuckets(List<BucketInfo> bucketNos) {
   mdbManager.resetBuckets(bucketNos);
 }
示例#10
0
 public void deleteDBIf(String buckId, String sizeFlag, String dbIf) {
   mdbManager.deleteDBIf(Integer.parseInt(buckId), sizeFlag, dbIf);
 }
示例#11
0
 public Map<String, Set<String>> collectLatestDbInfoIds(
     String buckId, long beginTime, long endTime) {
   return mdbManager.collectDBIfsBetweenGivenTime(Integer.parseInt(buckId), beginTime, endTime);
 }