[ 
https://issues.apache.org/jira/browse/MESOS-7947?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16553625#comment-16553625
 ] 

Joseph Wu commented on MESOS-7947:
----------------------------------

In terms of GC-ing container sandboxes created via the LAUNCH_CONTAINER APIs, I 
think it will be relatively neat to pass the Agent's GarbageCollector to the 
Containerizer.  The Containerizer is the one with direct access to the sandbox 
directories (held within the checkpointed {{ContainerConfig}} protobufs) and 
can schedule GC whenever a container exits, or during recovery.  In future, if 
we provide a GCPolicy, that information would presumably be checkpointed into 
the {{ContainerConfig}} too; so it would be better to give the Containerizer 
access to the GarbageCollector.

This implementation should cover both nested containers and standalone 
containers.  And it would protect against the case where the user/executor 
forgets to call REMOVE_CONTAINER.

For now, the plan is to defer making framework changes.  Instead of adding a 
boolean or protobuf GCPolicy, I'll add an agent flag to tell the agent to GC 
non-executor sandboxes by default.  I don't have a nice name for this flag yet 
(currently {{--gc_non_executor_container_sandboxes}}.

---

Additionally, since the default executor (and custom executors) can be 
long-lived and run many tasks in its lifetime, we'll need to prune some of the 
Task metadata.  This is limited to directories like 
{{<WorkDir>/meta/slaves/<SlaveID>/frameworks/<FrameworkID>/executors/<ExecutorID>/runs/<ContainerID>/tasks/<TaskID>}}.
  This metadata GC will happen for all tasks, and frameworks shouldn't need to 
change how this works.

> Add GC capability to nested containers
> --------------------------------------
>
>                 Key: MESOS-7947
>                 URL: https://issues.apache.org/jira/browse/MESOS-7947
>             Project: Mesos
>          Issue Type: Improvement
>          Components: executor
>            Reporter: Chun-Hung Hsiao
>            Assignee: Joseph Wu
>            Priority: Major
>
> We should extend the existing API or add a new API for nested containers for 
> an executor to tell the Mesos agent that a nested container is no longer 
> needed and can be scheduled for GC.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to