Now that mesos has introduced support for persistent volumes, the persistent volumes that are created on a specific slave is offered to the framework(s) as another resource. As a result, a task which needs RW access to that persistent volume can use that resource.
Till this task is running, that persistent volume cannot be offered to the framework(s) and hence would not be available for another task running on the same agent. Let us consider an use case wherein a service needs access to the same persistent volume from multiple task instances running on the same agent simultaneously, ie. when both (or multiple) of such task instances are RUNNING. Since the persistent volume is not offered as a resource to the framework(s) till a task that has grabbed it is still active, the subsequent instances needed access to the same persistent volume is not feasible. To alleviate that scenario, we propose making persistent volumes "sharable" (as optional). Default behavior can still be "non-sharable" but frameworks may want to CREATE persistent volumes as "sharable" (which would need an optional field in Resources.DiskInfo.Persistence). Hence, we would allow "sharable" persistent volumes be offered as resources to the framework(s) [matching role] even if it has been grabbed by a task already running on the agent, so as that subsequent tasks can use that persistent volume. Comments/concerns? Thanks Anindya
