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