Majordodo Client

A Distributed Resource Manager

License

License

Categories

Categories

CLI User Interface
GroupId

GroupId

org.majordodo
ArtifactId

ArtifactId

majordodo-client
Last Version

Last Version

0.17.0
Release Date

Release Date

Type

Type

jar
Description

Description

Majordodo Client
A Distributed Resource Manager
Project URL

Project URL

http://majordodo.org
Source Code Management

Source Code Management

https://github.com/diennea/majordodo.git

Download majordodo-client

How to add to project

<!-- https://jarcasting.com/artifacts/org.majordodo/majordodo-client/ -->
<dependency>
    <groupId>org.majordodo</groupId>
    <artifactId>majordodo-client</artifactId>
    <version>0.17.0</version>
</dependency>
// https://jarcasting.com/artifacts/org.majordodo/majordodo-client/
implementation 'org.majordodo:majordodo-client:0.17.0'
// https://jarcasting.com/artifacts/org.majordodo/majordodo-client/
implementation ("org.majordodo:majordodo-client:0.17.0")
'org.majordodo:majordodo-client:jar:0.17.0'
<dependency org="org.majordodo" name="majordodo-client" rev="0.17.0">
  <artifact name="majordodo-client" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.majordodo', module='majordodo-client', version='0.17.0')
)
libraryDependencies += "org.majordodo" % "majordodo-client" % "0.17.0"
[org.majordodo/majordodo-client "0.17.0"]

Dependencies

compile (3)

Group / Artifact Type Version
org.apache.httpcomponents : httpclient jar 4.3.6
com.fasterxml.jackson.core : jackson-databind jar 2.10.3
org.apache.zookeeper : zookeeper Optional jar 3.5.7

provided (3)

Group / Artifact Type Version
com.github.spotbugs : spotbugs Optional jar 3.1.8
net.jcip : jcip-annotations Optional jar 1.0
com.github.spotbugs : spotbugs-annotations Optional jar 3.1.8

test (2)

Group / Artifact Type Version
org.majordodo » majordodo-test-clients jar 0.17.0
junit : junit jar 4.12

Project Modules

There are no modules declared in this project.

Majordodo

Build Status

Majordodo is a Distributed Resource Manager, essentially consisting of brokers which coordinate a pool of workers. Users (clients) submit tasks to be executed using a simple HTTP JSON based API

There is no single point of failure, brokers replicate state using Apache BookKeeper. Workers are handled in a very elastic way: you can add and remove workers at runtime, they can crash at any time and the system will continue to be available. You can also add workers to distinct groups to handle different type of works or priorities.

The basic concept of Majordodo is the Task. A Task is an operation which is to be executed by the system. Once a client submits an execution request to Majordodo, a broker will gather the requested resources in the cluster and schedule the effective execution to a worker. The task status is tracked by the broker and if the worker crashes the execution is transparently routed to another worker. The priorities of the single tasks can be modified at runtime.

You can also assign a task to a slot. A Slot is like a task with a shared lock: when a client submit a task and request it to be assigned to a defined slot then the system will accept the request only if there isn't another tasks in waiting or running status for that slot. This can be usefull to implement simple distributed locks without the need of expensive distributed lock algorithms.

In the first release tasks are executed by Java-based workers: the implementation of the actual work is to be coded using Java or any other language which can be run on a JVM (such as Scala, Groovy, JRuby, ...).

Client API supports transactions, batching of requests and http keep-alive connections in order to reduce all the network related overheadd

Getting Involved

See our docs

Join the mailing list

License

Majordodo is under Apache 2 license.

org.majordodo

Diennea

Versions

Version
0.17.0
0.16.0
0.15.0
0.12.0
0.10.1
0.9.0
0.8.0
0.7.0
0.6.0
0.5.0
0.3.0