Disbatch BarCamp Buffalo

14
Disbatch Distributed batch processing: open-source release Thursday, June 9, 2011

Transcript of Disbatch BarCamp Buffalo

Page 1: Disbatch BarCamp Buffalo

DisbatchDistributed batch processing: open-source release

Thursday, June 9, 2011

Page 2: Disbatch BarCamp Buffalo

Distributed Batch Processing

Wanted the best way to manage distributed, long-running tasks

Needed excellent and centralised traceability, logging & visibility

Thursday, June 9, 2011

Page 3: Disbatch BarCamp Buffalo

About us

Matt Busigin - Sr Email Engineer

( a n d o c c a s i o n a l syndicated author on economics)

Matt Berg - Lead Email Engineer, promised to be h e r e , b u t i n s t e a d p r e s e n t l y e n j o y i n g copious vendor-supplied alcohol at MAAWG in SF.

Thursday, June 9, 2011

Page 4: Disbatch BarCamp Buffalo

The ProblemsMass customer migrations

Spamming Sending millions of legitimate pieces of mail

DDOS Load testing

Thursday, June 9, 2011

Page 5: Disbatch BarCamp Buffalo

Requirements

Dependent/chained tasks

Visibility

Distributed & elastic

Platform agnostic

Able to handle large queues

Thursday, June 9, 2011

Page 6: Disbatch BarCamp Buffalo

Features

Durable persistence (using MongoDB as the core)

Multiple active queues

Multiple queue types via plugin architecture

Thursday, June 9, 2011

Page 7: Disbatch BarCamp Buffalo

ArchitectureIt’s all just JSON or BSON!

MongoDB

.NET Disbatch Execution Node

Ruby Disbatch Execution Node

Perl Disbatch Execution Node

Disbatch Command Node

Thursday, June 9, 2011

Page 8: Disbatch BarCamp Buffalo

Per-node ArchitectureConcurrency implementation up to the Disbatch Execution Node implementor

Disbatch Execution Node MongoDB

Queue

Queue

Queue

Thread

Thread

Thread

Thread

Thread

Thursday, June 9, 2011

Page 9: Disbatch BarCamp Buffalo

Disbatch ScreenshotsThe main screen (queues)

Thursday, June 9, 2011

Page 10: Disbatch BarCamp Buffalo

Disbatch ScreenshotsTasks inside of a queue

Thursday, June 9, 2011

Page 11: Disbatch BarCamp Buffalo

Disbatch ScreenshotsTask visibility

Thursday, June 9, 2011

Page 12: Disbatch BarCamp Buffalo

Disbatch ScreenshotsCreating a task from a Mongo Query

Thursday, June 9, 2011

Page 13: Disbatch BarCamp Buffalo

Other cool stuff

We can queue up millions (effectively unlimited) tasks from a Mongo query cursor

Full web interface based on Qooxdoo

Dynamically reload plugin classes (thanks Module::Reload::Selective)

Thursday, June 9, 2011

Page 14: Disbatch BarCamp Buffalo

Other possible uses

Parallel processing of classical maths problems

Fractal generation

Factoring large prime numbers

Any batch/bulk business operation with many different individual task parameters based on a pattern

Thursday, June 9, 2011