作业管理

在Storage服务上长期运行的任务称为作业,例如COMPACTFLUSHSTATS。 如果图空间的数据量很大,这些作业可能耗时很长。作业管理可以帮助执行、查看、停止和恢复作业。

SUBMIT JOB COMPACT

SUBMIT JOB COMPACT语句会触发RocksDB的长耗时compact操作。

compact配置详情请参见Storage服务配置

示例

  1. nebula> SUBMIT JOB COMPACT;
  2. +------------+
  3. | New Job Id |
  4. +------------+
  5. | 40 |
  6. +------------+

SUBMIT JOB FLUSH

SUBMIT JOB FLUSH语句将内存中的RocksDB memfile写入硬盘。

示例

  1. nebula> SUBMIT JOB FLUSH;
  2. +------------+
  3. | New Job Id |
  4. +------------+
  5. | 96 |
  6. +------------+

SUBMIT JOB STATS

SUBMIT JOB STATS语句启动一个作业,该作业对当前图空间进行统计。作业完成后,用户可以使用SHOW STATS语句列出统计结果。详情请参见SHOW STATS

示例

  1. nebula> SUBMIT JOB STATS;
  2. +------------+
  3. | New Job Id |
  4. +------------+
  5. | 97 |
  6. +------------+

SHOW JOB

Meta服务将SUBMIT JOB请求解析为多个任务,然后分配给进程nebula-storaged。SHOW JOB <job_id>语句显示指定作业和相关任务的信息。

job_id在执行SUBMIT JOB语句时会返回。

示例

  1. nebula> SHOW JOB 96;
  2. +----------------+---------------+------------+-------------------------+-------------------------+
  3. | Job Id(TaskId) | Command(Dest) | Status | Start Time | Stop Time |
  4. +----------------+---------------+------------+-------------------------+-------------------------+
  5. | 96 | "FLUSH" | "FINISHED" | 2020-11-28T14:14:29.000 | 2020-11-28T14:14:29.000 |
  6. +----------------+---------------+------------+-------------------------+-------------------------+
  7. | 0 | "storaged2" | "FINISHED" | 2020-11-28T14:14:29.000 | 2020-11-28T14:14:29.000 |
  8. +----------------+---------------+-------------------------+------------+-------------------------+
  9. | 1 | "storaged0" | "FINISHED" | 2020-11-28T14:14:29.000 | 2020-11-28T14:14:29.000 |
  10. +----------------+---------------+------------+-------------------------+-------------------------+
  11. | 2 | "storaged1" | "FINISHED" | 2020-11-28T14:14:29.000 | 2020-11-28T14:14:29.000 |
  12. +----------------+---------------+------------+-------------------------+-------------------------+
参数说明
Job Id(TaskId)第一行显示作业ID,其他行显示作业相关的任务ID。
Command(Dest)第一行显示执行的作业命令名称,其他行显示任务对应的nebula-storaged进程。
Status显示作业或任务的状态。详情请参见作业状态
Start Time显示作业或任务开始执行的时间。
Stop Time显示作业或任务结束执行的时间,结束后的状态包括FINISHEDFAILEDSTOPPED

作业状态

作业状态的说明如下。

状态说明
QUEUE作业或任务在等待队列中。此阶段Start Time为空。
RUNNING作业或任务在执行中。Start Time为该阶段的起始时间。
FINISHED作业或任务成功完成。Stop Time为该阶段的起始时间。
FAILED作业或任务失败。Stop Time为该阶段的起始时间。
STOPPED作业或任务停止。Stop Time为该阶段的起始时间。
REMOVED作业或任务被删除。

状态转换的说明如下。

  1. Queue -- running -- finished -- removed
  2. \ \ /
  3. \ \ -- failed -- /
  4. \ \ /
  5. \ ---------- stopped -/

SHOW JOBS

SHOW JOBS语句列出所有未过期的作业。

作业的默认过期时间为一周。如果需要修改过期时间,请修改Meta服务的参数job_expired_secs。详情请参见Meta服务配置

示例

  1. nebula> SHOW JOBS;
  2. +--------+----------------------+------------+-------------------------+-------------------------+
  3. | Job Id | Command | Status | Start Time | Stop Time |
  4. +--------+----------------------+------------+-------------------------+-------------------------+
  5. | 97 | "STATS" | "FINISHED" | 2020-11-28T14:48:52.000 | 2020-11-28T14:48:52.000 |
  6. +--------+----------------------+------------+-------------------------+-------------------------+
  7. | 96 | "FLUSH" | "FINISHED" | 2020-11-28T14:14:29.000 | 2020-11-28T14:14:29.000 |
  8. +--------+----------------------+------------+-------------------------+-------------------------+
  9. | 95 | "STATS" | "FINISHED" | 2020-11-28T13:02:11.000 | 2020-11-28T13:02:11.000 |
  10. +--------+----------------------+------------+-------------------------+-------------------------+
  11. | 86 | "REBUILD_EDGE_INDEX" | "FINISHED" | 2020-11-26T13:38:24.000 | 2020-11-26T13:38:24.000 |
  12. +--------+----------------------+------------+-------------------------+-------------------------+

STOP JOB

STOP JOB语句可以停止未完成的作业。

示例

  1. nebula> STOP JOB 22;
  2. +---------------+
  3. | Result |
  4. +---------------+
  5. | "Job stopped" |
  6. +---------------+

RECOVER JOB

RECOVER JOB语句会重新执行失败的作业,并返回已恢复的作业数量。

示例

  1. nebula> RECOVER JOB;
  2. +-------------------+
  3. | Recovered job num |
  4. +-------------------+
  5. | 5 job recovered |
  6. +-------------------+

FAQ

如何排查作业问题?

SUBMIT JOB操作使用的是HTTP端口,请检查Storage服务机器上的HTTP端口是否正常工作。用户可以执行如下命令调试:

  1. curl "http://{storaged-ip}:19779/admin?space={space_name}&op=compact"