All Projects → diennea → majordodo

diennea / majordodo

Licence: Apache-2.0 license
Distributed Operations and Data Organizer built on Apache BookKeeper

Programming Languages

java
68154 projects - #9 most used programming language
HTML
75241 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to majordodo

blobit
BlobIt - a Distributed Large Object Storage
Stars: ✭ 29 (+16%)
Mutual labels:  distributed, bookkeeper
todo-live
A todo list manager in command line.
Stars: ✭ 49 (+96%)
Mutual labels:  task-manager
Server
☁️ Nextcloud server, a safe home for all your data
Stars: ✭ 17,723 (+70792%)
Mutual labels:  distributed
Sia
Blockchain-based marketplace for file storage. Project has moved to GitLab: https://gitlab.com/NebulousLabs/Sia
Stars: ✭ 2,731 (+10824%)
Mutual labels:  distributed
Brainiak
Brain Imaging Analysis Kit
Stars: ✭ 232 (+828%)
Mutual labels:  distributed
Ray
An open source framework that provides a simple, universal API for building distributed applications. Ray is packaged with RLlib, a scalable reinforcement learning library, and Tune, a scalable hyperparameter tuning library.
Stars: ✭ 18,547 (+74088%)
Mutual labels:  distributed
Vernemq
A distributed MQTT message broker based on Erlang/OTP. Built for high quality & Industrial use cases.
Stars: ✭ 2,628 (+10412%)
Mutual labels:  distributed
spicedb
Open Source, Google Zanzibar-inspired fine-grained permissions database
Stars: ✭ 3,358 (+13332%)
Mutual labels:  distributed
celery-monitor
The celery monitor app was written by Django.
Stars: ✭ 92 (+268%)
Mutual labels:  distributed
Shardingsphere Elasticjob Cloud
Stars: ✭ 248 (+892%)
Mutual labels:  distributed
Spring Boot Start Current
Spring Boot 脚手架 Mybatis Spring Security JWT 权限 Spring Cache + Redis
Stars: ✭ 246 (+884%)
Mutual labels:  distributed
Flambe
An ML framework to accelerate research and its path to production.
Stars: ✭ 236 (+844%)
Mutual labels:  distributed
Tensorflow
An Open Source Machine Learning Framework for Everyone
Stars: ✭ 161,335 (+645240%)
Mutual labels:  distributed
Coerce Rs
Coerce - an asynchronous (async/await) Actor runtime and cluster framework for Rust
Stars: ✭ 231 (+824%)
Mutual labels:  distributed
Multi-Node-TimescaleDB
The multi-node setup of TimescaleDB 🐯🐯🐯 🐘 🐯🐯🐯
Stars: ✭ 42 (+68%)
Mutual labels:  distributed
Ruby Spark
Ruby wrapper for Apache Spark
Stars: ✭ 221 (+784%)
Mutual labels:  distributed
Powerjob
Enterprise job scheduling middleware with distributed computing ability.
Stars: ✭ 3,231 (+12824%)
Mutual labels:  distributed
Cat
CAT 作为服务端项目基础组件,提供了 Java, C/C++, Node.js, Python, Go 等多语言客户端,已经在美团点评的基础架构中间件框架(MVC框架,RPC框架,数据库框架,缓存框架等,消息队列,配置系统等)深度集成,为美团点评各业务线提供系统丰富的性能指标、健康状况、实时告警等。
Stars: ✭ 16,236 (+64844%)
Mutual labels:  distributed
osilo
Personal data silos with secure sharing
Stars: ✭ 15 (-40%)
Mutual labels:  distributed
webhunger
WebHunger is an extensible, full-scale crawler framework that supports distributed crawling, aiming at getting users focused on web page parsing without concerning for the crawling process.
Stars: ✭ 17 (-32%)
Mutual labels:  distributed

Majordodo

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].