An open API service indexing awesome lists of open source software.

https://github.com/drbrain/power_mitten

A DRb-based cloud processing toolkit
https://github.com/drbrain/power_mitten

Last synced: 5 months ago
JSON representation

A DRb-based cloud processing toolkit

Awesome Lists containing this project

README

          

= power_mitten

home :: https://github.com/att-cloud/power_mitten
bugs :: https://github.com/att-cloud/power_mitten/issues

== Description

A DRb-based cloud processing toolkit.

== Features

* DRb-based multiprocess coordination
* Runs on OpenStack or locally
* Logs to syslog

== Running Locally

power_mitten uses the +mitten+ executable to control processes.

First, start a control task:

$ mitten startup --type Control --localhost

All +mitten+ processes log to syslog. On OS X you can use Console.app to see
these logs.

The control task coordinates shared resources such as mutexes and queues.
Alongside the control task is a Rinda:RingServer which other mitten services
to find each other.

When using mitten startup locally you must give it a type. When
run in the cloud +mitten+ automatically determines this from the VM name.

You can then start the console:

$ mitten console --localhost

This will show you all the running processes and information about their
state. (If you start the console first it will wait for a control task.)

You will see output similar to this:

control pid 62724 at kault, 29572 RSS, 0 children
Console pid 63498 at kault, 40048 RSS (me)
RingServer 3โœ“ 3โค“ 0โ˜  pid 62725 at kault, 29764 RSS

To start a +mitten+ task give the task name as the type for +startup+ along
with the number of workers to start:

$ mitten startup --type YourTask --localhost --workers 1

This will start one process of YourTask. +mitten+ will manage multiple
workers doing the same task if you tell it to launch more.

To help debug your task, run it with the --once option:

$ mitten startup --type YourTask --localhost --workers 1 --once

Ordinarily +mitten+ will restart your task upon exceptions, but with
--once it will exit instead.

The +mitten+ executable will load the ~/.power_mitten
configuration file.

If the file exists it must contain OpenStack and swift credential information
even when running locally. Use this dummy configuration:

openstack_auth_url: https://auth.example/v2.0/tokens
openstack_tenant: TENANT
openstack_username: USERNAME
openstack_api_key: PASSWORD
swift_uri: https://storage.example/auth/
swift_username: TENANT:USERNAME
swift_key: PASSWORD

== Install

sudo gem install power_mitten

== Developers

After checking out the source, run:

$ rake newb

This task will install any missing dependencies, run the tests and generate
the RDoc.

== License

Copyright (c) AT&T