/** * 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); }
public void deleteDBIf(String buckId, String sizeFlag, String dbIf) { mdbManager.deleteDBIf(Integer.parseInt(buckId), sizeFlag, dbIf); }
public Map<String, Set<String>> collectLatestDbInfoIds( String buckId, long beginTime, long endTime) { return mdbManager.collectDBIfsBetweenGivenTime(Integer.parseInt(buckId), beginTime, endTime); }