Context: a task ID is a unique identifier for a task.  Aurora and Mesos
both require this uniqueness.  Within mesos, frameworks are required to
craft their own task IDs as they see fit.

Our task ID format is currently [1]

TIMESTAMP-ROLE-ENV-JOBNAME-INSTANCE-UUID


for an example:

1453847837931-vagrant-test-http_example_docker-1-a23f55e2-151f-409e-9cea-76ec79482533


In addition to guaranteed uniqueness, this format has the benefit of being
somewhat human-friendly.  Within logs, it is somewhat possible to partially
recognize a task based solely on the text ID.

*I would like to propose that we remove the TIMESTAMP- prefix from the task
ID.*  It was originally included so that task IDs would be temporally
sortable for scheduling prioritization.  At present, tasks are not sorted
using the ID.

While proposing the above, i think it's also prudent to take the
opportunity to consider a complete overhaul of the ID contents.  *An
alternative approach would be to only use the UUID.*  This has the benefit
of decoupling arbitrary user input from the various ways task IDs are used
(as an example - mesos uses them in file names, limiting length and allowed
characters).  Task IDs also become fixed width, which offers a (very)
marginal memory reduction over the status quo, and makes console line
wrapping more consistent when perusing logs.  Additionally, it eschews the
potential problem of users parsing task IDs and coupling to its format.

Any thoughts on this?


[1]
https://github.com/apache/aurora/blob/master/src/main/java/org/apache/aurora/scheduler/TaskIdGenerator.java

Reply via email to