Skip to content

Commit

Permalink
Merge pull request #2243 from HubSpot/clean_up_zk_parents
Browse files Browse the repository at this point in the history
Clean up more zk parent nodes for stale requests
  • Loading branch information
ssalinas authored Nov 16, 2021
2 parents e69d579 + 4af45ae commit cf27c8e
Showing 1 changed file with 53 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -1655,18 +1655,59 @@ public SingularityDeleteResult deleteTaskHistory(SingularityTaskId taskId) {
}

public void purgeStaleRequests(List<String> activeRequestIds, long deleteBeforeTime) {
final List<String> requestIds = getChildren(HISTORY_PATH_ROOT);
for (String requestId : requestIds) {
if (!activeRequestIds.contains(requestId)) {
String path = getRequestPath(requestId);
Optional<Stat> maybeStat = checkExists(path);
if (
maybeStat.isPresent() &&
maybeStat.get().getMtime() < deleteBeforeTime &&
getChildren(path).size() == 0
) {
delete(path);
}
getChildren(HISTORY_PATH_ROOT)
.forEach(
(
requestId ->
purgePathForRequest(
activeRequestIds,
deleteBeforeTime,
HISTORY_PATH_ROOT,
requestId
)
)
);
getChildren(LAST_ACTIVE_TASK_STATUSES_PATH_ROOT)
.forEach(
(
requestId ->
purgePathForRequest(
activeRequestIds,
deleteBeforeTime,
LAST_ACTIVE_TASK_STATUSES_PATH_ROOT,
requestId
)
)
);
getChildren(PENDING_PATH_ROOT)
.forEach(
(
requestId ->
purgePathForRequest(
activeRequestIds,
deleteBeforeTime,
PENDING_PATH_ROOT,
requestId
)
)
);
}

private void purgePathForRequest(
List<String> activeRequestIds,
long deleteBeforeTime,
String parentPath,
String requestId
) {
if (!activeRequestIds.contains(requestId)) {
String path = ZKPaths.makePath(parentPath, requestId);
Optional<Stat> maybeStat = checkExists(path);
if (
maybeStat.isPresent() &&
maybeStat.get().getMtime() < deleteBeforeTime &&
getChildren(path).size() == 0
) {
delete(path);
}
}
}
Expand Down

0 comments on commit cf27c8e

Please sign in to comment.