Search in sources :

Example 6 with Task

use of org.apache.hadoop.hbase.master.SplitLogManager.Task in project hbase by apache.

the class ZKSplitLogManagerCoordination method deleteNodeSuccess.

private void deleteNodeSuccess(String path) {
    if (ignoreZKDeleteForTesting) {
        return;
    }
    Task task;
    task = details.getTasks().remove(path);
    if (task == null) {
        if (ZKSplitLog.isRescanNode(watcher, path)) {
            SplitLogCounters.tot_mgr_rescan_deleted.incrementAndGet();
        }
        SplitLogCounters.tot_mgr_missing_state_in_delete.incrementAndGet();
        LOG.debug("deleted task without in memory state " + path);
        return;
    }
    synchronized (task) {
        task.status = DELETED;
        task.notify();
    }
    SplitLogCounters.tot_mgr_task_deleted.incrementAndGet();
}
Also used : SplitLogTask(org.apache.hadoop.hbase.SplitLogTask) Task(org.apache.hadoop.hbase.master.SplitLogManager.Task)

Example 7 with Task

use of org.apache.hadoop.hbase.master.SplitLogManager.Task in project hbase by apache.

the class ZKSplitLogManagerCoordination method handleUnassignedTask.

/**
   * It is possible for a task to stay in UNASSIGNED state indefinitely - say SplitLogManager wants
   * to resubmit a task. It forces the task to UNASSIGNED state but it dies before it could create
   * the RESCAN task node to signal the SplitLogWorkers to pick up the task. To prevent this
   * scenario the SplitLogManager resubmits all orphan and UNASSIGNED tasks at startup.
   * @param path
   */
private void handleUnassignedTask(String path) {
    if (ZKSplitLog.isRescanNode(watcher, path)) {
        return;
    }
    Task task = findOrCreateOrphanTask(path);
    if (task.isOrphan() && (task.incarnation.get() == 0)) {
        LOG.info("resubmitting unassigned orphan task " + path);
        // ignore failure to resubmit. The timeout-monitor will handle it later
        // albeit in a more crude fashion
        resubmitTask(path, task, FORCE);
    }
}
Also used : SplitLogTask(org.apache.hadoop.hbase.SplitLogTask) Task(org.apache.hadoop.hbase.master.SplitLogManager.Task)

Aggregations

SplitLogTask (org.apache.hadoop.hbase.SplitLogTask)7 Task (org.apache.hadoop.hbase.master.SplitLogManager.Task)7 Test (org.junit.Test)2