Yes that was my thinking for the slave/execution side of things. My
partitions should map pretty well to slave executors/tasks and the
cgroup/isolation capabilities of mesos will be great benefit. However, I
still have some cases where users want to run each job (even jobs in the
same partition grouping) to under its own linux process so I am hoping I
can make this a runtime decision whether to use a shared partition executor
(on the given slave) or launch a new executor just for that one job and
then terminate the executor at then end of job run (I think I can use the
default command executor for this...I think).

I will take your advice and build a central framework for now and have it
dispatch resources to each Partition thread.

Thanks for you help.

Sam Taha
http://www.grandlogic.com


On Tue, Sep 10, 2013 at 1:01 PM, Vinod Kone <vinodk...@gmail.com> wrote:

> Sam,
>
> Glad to see you are interested in building a framework on top of Mesos!
>
> From your description, it looks like your "partitions" can be directly
> mapped to Mesos "executors" and "jobs" to Mesos "tasks". In Mesos, each
> executor is run under a cgroup with a given set of resources. This enables
> multiple executors to be run on the same host with isolation. Also, an
> executor can run multiple jobs/tasks underneath it.
>
> In your system, do users need to specifically control the partitions?  I
> would imagine it would be one less thing for users to worry about if Mesos
> can take care of it? A nice thing about using executors is that the total
> no.of resources (for executor and tasks underneath it) can be dynamically
> adjusted. So you don't have to statically over/under provision resources
> for your partitions.
>
> As per multiple frameworks per jvm, while its definitely possible I
> wouldn't recommend it. I think you would be much better off running one
> central framework and running different partitions as executors.
>
> HTH,
>
>
> On Tue, Sep 10, 2013 at 9:41 AM, Sam Taha <taha...@gmail.com> wrote:
>
>> I am hoping to get some advice on how to build out my framework scheduler
>> for a job scheduling/processing platform, so I don't paint myself in a
>> corner with any potential limitations in mesos resource allocation or the
>> java SchedulerDriver capabilities. Some background:
>>
>> - I have a JVM based job scheduling engine that schedules jobs based on
>> repeating time patterns (like cron) and also allows for on-demand job
>> execution.
>> - The system supports users creating an number of partitions/queues that
>> have resource preferences defined by the user. So one partitions may run a
>> certain set of jobs and another partition may run another set of jobs.
>> Currently the resources are statically allocated to one or more computers
>> and the user can define the max number of jobs that can be run on each host
>> in the Partition.
>> - The scheduling engine is all run out of a single JVM process that is
>> heavily threaded/concurrent.
>>
>> So my initial thinking is to create a mesos Sched/Framework instance per
>> partition/queue thread in the my engine (there could be many partitions
>> since this is user created/controlled via GUI). Each SchedulerDriver
>> (living in the JVM) would request some set of resources from Mesos (as
>> defined by the size of of the queue of jobs running in the Partition) when
>> jobs become ready to run on reoccurring time schedules.
>>
>> Now my question is, if it is practical to have multiple mesos Schedulers
>> Frameworks in a single JVM and each with different resource requirements.
>> Or should I build a single central mesos scheduler in the JVM and have all
>> my partitions/queues make request to this central mesos Scheduler that
>> talks to the mesos master?
>>
>> I am not sure how mesos scales if for example you have many framework
>> schedulers running out of the same JVM/process? And in general if you have
>> a large number of Scheduler instances will this cause resource distribution
>> problems with on one scheduler getting too many resources allocated....etc.
>>
>> So the bottom line question is should have create/instantiate a single
>> central Framework Scheduler in my engine (that proxies requests/offers with
>> mesos) or can I create one per Partition thread.
>>
>> The per partition thread approach can give me finer resource control
>> (request, Filters,....etc) but I am not sure if this is practical.
>>
>> Thanks,
>> Sam Taha
>> http://www.grandlogic.com
>>
>>
>>
>

Reply via email to