coordinate

Job controller with dependency, weighted, and priority scheduling.

https://github.com/diffeo/coordinate

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (8.9%) to scientific vocabulary
Last synced: 11 months ago · JSON representation

Repository

Job controller with dependency, weighted, and priority scheduling.

Basic Info
  • Host: GitHub
  • Owner: diffeo
  • License: mit
  • Language: Python
  • Default Branch: master
  • Homepage:
  • Size: 179 KB
Statistics
  • Stars: 4
  • Watchers: 20
  • Forks: 1
  • Open Issues: 0
  • Releases: 0
Created about 11 years ago · Last pushed over 1 year ago
Metadata Files
Readme Contributing License Code of conduct Codeowners Security

README.md

Coordinate

Coordinate is a standalone server process and client library for multiple-system coordination and synchronization capabilities. It manages work specifications and work units, weighted scheduling, priority scheduling, and dependency graph.

Configuration and execution

In a global yakonfig config.yaml configuration file, add coordinate at the top level:

coordinate:
  server:
    host: 0.0.0.0
    port: 5932
  namespace: *namespace
  registry_addresses: ['10.0.1.x:5932']

Run coordinated with this configuration, or manually specify --host and --port. The default configuration is to only listen on the localhost interface on port 5932.

The main interface is through the TaskMaster object. This implementation makes RPC calls to the coordinated server.

The server is pluggable and additional functionality can be through other server objects similar to the JobQueue class.

RPC system

Coordinated uses a simple RPC system based on CBOR messages. Client processes initiate a TCP connection as indicated in the configuration and send CBOR messages like (JSON syntax):

{"id": 1,
 "method": "lock",
 "params": [...]}

where id is a sequential number per client object, starting at 1. There is one TCP connection per client object, but this connection is held open until explicitly closed.

The responses look like:

{"id": 1,
 "result": "value"}

Or:

{"id": 2,
 "error": {"message": "No such method"}}

If the server-side call raised an exception, the formatted traceback is included as the error message.

The server supports a CBOR list of request messages, and will return a CBOR list of responses.

Client classes subclass coordinated._cbor_rpc_client.CborRpcClient and call _rpc() to perform a call. This method blocks on the connection and response. If the server returned the error form, this is raised as an exception.

The server is run with a proxy object, presently coordinated.lockd.MultiBackendProxyObject, and calls the requested methods on that object with the requested parameters.

Owner

  • Name: Diffeo
  • Login: diffeo
  • Kind: organization
  • Email: team@diffeo.com
  • Location: Cambridge, MA

Uncover the whole story.

GitHub Events

Total
  • Push event: 1
Last Year
  • Push event: 1

Committers

Last synced: about 1 year ago

All Time
  • Total Commits: 43
  • Total Committers: 6
  • Avg Commits per committer: 7.167
  • Development Distribution Score (DDS): 0.535
Past Year
  • Commits: 1
  • Committers: 1
  • Avg Commits per committer: 1.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
David Maze d****e@d****m 20
Brian Olson b****n@d****m 11
John R. Frank j****f@d****m 7
Andrew Gallant a****w@d****m 3
svc-scm 4****m 1
Stan Ostashewski s****y@s****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 11 months ago

All Time
  • Total issues: 0
  • Total pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 0
  • Total pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 42 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 6
  • Total versions: 2
  • Total maintainers: 1
pypi.org: coordinate

Tools for large scale data clustering.

  • Versions: 2
  • Dependent Packages: 0
  • Dependent Repositories: 6
  • Downloads: 42 Last month
Rankings
Dependent repos count: 6.0%
Dependent packages count: 10.0%
Average: 17.4%
Forks count: 22.6%
Downloads: 23.5%
Stargazers count: 25.0%
Maintainers (1)
jrf
Last synced: 11 months ago

Dependencies

setup.py pypi
  • cbor *
  • dblogger *
  • lockfile *
  • psutil *
  • psycopg2 *
  • python-daemon *
  • pyyaml *
  • setproctitle *
  • yakonfig *