SlideShare una empresa de Scribd logo
1 de 32
Descargar para leer sin conexión
Distributed Queue System
      using Gearman

         Taehun Cho
        CTO @ IMcompany
       http://iamcompany.net/
What is a Queue?




             copyright@ www.mathworks.com
Multiple Queue




 With multiple teller, all customers must form
 multiple queue to be served
Some Situation on the WEB




+
You want to send an email, push notification,
messages, import big file, etc...
Problem is that...




     DO NOT LET YOUR USERS WAIT
Run Asynchronously
Running Task in a Single Thread?




  Loading behavior may affect the main GUI
Run in Background!




The user can do 'next' action, and the task should be
     done in backend in a distributed manner
Job Queue Systems
Celery (http://www.celeryproject.org/)
RabbitMQ (http://www.rabbitmq.com/)
Zend Server Job Queue (http://www.zend.com/)
ZeroMQ (http://www.zeromq.org/)
Beanstalkd
Peafowl, Starling
Apache ActiveMQ

and many others..
Introducing Gearman




            LiveJournal
Introducing Gearman
In LiveJournal, many photos had uploaded
every day and it lead to a heavy load of image
processing, and this was a motivation to build
such a queue system.
● Yahoo!: 120+ servers, 12M jobs/day
● Digg: 45+ servers, 400K jobs/day
● LiveJournal, SixApart, DealNews, Xing.com,
   and many others. - Expert PHP and MySQL -
  Andrew et al, (2010, Wrox)
● Grooveshark, GoDaddy.com, IMcompany
Features of Gearman
● Open Source
● Simple & Fast (rewritten in C)
● Support a variety of languages
  : build Worker in Python, Client in PHP
● Flexible
● Load Balance
● Failover
Example of Architectures




       (from http://gearman.org/#what_is_gearman)
Architecture
                        Acks the job, finds all sleeping workers




                                                                   Awake, asks for jobs to server
                                Gearman Job Server
Connect, submit a job


                                             Sends a 'noop' command to
                                             wake them up




     Client
                                                                               Worker
Installation
● Compile                  (for PHP APIs)
tar xzvf gearmand-X.Y.tar. ● Pecl Extension
gz                         sudo pecl install gearman
cd gearmand-X.Y
./configure                ● Add below to php.ini
make                       extension="gearman.so"
make install

● Start Server
$ gearmand -d
Use Cases
- Crawling a website
- Image Manipulation
- Push Notification
- Sending Email/Messages
- File verification/compressing
- Fetching RSS Feeds
- Indexing on Search Engine
Samples - Worker
Samples - Client
Samples - Monitoring




  A good tool for monitoring gearman, is available at
     https://github.com/yugene/Gearman-Monitor
Result
                Worker #1                    Worker #2




The incomplete job will re-queue to available workers
                 for fault-tolerance
Motivation
● At the beginning state, we run 3 computers
  for crawling each school's information.
  (articles, schedules of the school)
● One job at a time, too much time to finish all
  of them, sometimes machines do the same
  job as the others do.
● That was a motivation to make a job queue
  system that could do jobs in parallel. And
  we've found Gearman!
Gearman in IMcompany
But there were some challenges!
● How many workers should be up for a
  server? (How efficiently leverage the load?)
● How can we handle unexpected termination
  of workers?
● What if the server's resource is exhausted
  due to the jobs that given by workers?
  (Then the server would not respond to
  other's requests/connections related to
  WEB, SVN, MySQL)
Exceptional Case #1
Reported bugs when using PHP
Bug #63041 "Failed to set exception option" on
connect when any gearman server is down
https://bugs.php.net/bug.php?id=63041

Bug #63648 Gearman worker stops with
segfault after 1-2 hour of working
https://bugs.php.net/bug.php?id=63648
Supervisord for sanity
"PHP was not built for long running request"
"Sometimes it occurs memory leaks"

Supervisord helps you in above cases!
- Auto restart the processes based on custom
configurations

* Installation guide - http://www.masnun.com/2011/11/02/gearman-
php-and-supervisor-processing-background-jobs-with-sanity.html
Exceptional Case #2




 PHP sometimes slows down after hundreds of
 executions, kill it off if you know this will
 happen. - Mike Willbanks, "Gearman: A Job Server made
 for Scale"
Server Seems Fine for Now
What We Learned
● Gearman's queue list is unstable so
  persistent queueing was highly needed in
  our system
● Integrating MySQL with Gearman was failed
  in both 1.0.2, 0.34
● Tried SQLite, but performance was very
  poor

Do NOT Reserve Too Much Jobs in a Queue
Also We've Tried...
● Firing queueing jobs over HTTP request is
  sometimes not working and may lead to
  freezing the server eventually
● And doesn't support additional functions for
  the HTTP connection such as authentication
● And is not customizable

Gearman Seems Too Young at This Moment
Limitations
● Queue makes no guarantees - use MySQL,
  memcached, Redis, PostgreSQL, etc..
● There are few administration tools
● Jobs don't expire
● If a job is dropped, the client is never be
  notified
-from "http://inside.godaddy.com/cloud-processing-with-
gearman/"
Join Community!
http://gearman.org/
http://groups.google.com/group/gearman/
We're hiring!
●   Work in Daejeon, Korea
●   Flexible, Small Company
●   Excellent Benefits
●   We Need Senior Hackers
Find more information at http://iamcompany.net/

Thank you!
Any questions?

Más contenido relacionado

La actualidad más candente

Scale like a pro with Gearman
Scale like a pro with GearmanScale like a pro with Gearman
Scale like a pro with Gearman
Amal Raghav
 
Work Queues
Work QueuesWork Queues
Work Queues
ciconf
 
CukeUp! 2012: Michael Nacos on Just enough infrastructure for product develop...
CukeUp! 2012: Michael Nacos on Just enough infrastructure for product develop...CukeUp! 2012: Michael Nacos on Just enough infrastructure for product develop...
CukeUp! 2012: Michael Nacos on Just enough infrastructure for product develop...
Skills Matter Talks
 
Fast, concurrent ruby web applications with EventMachine and EM::Synchrony
Fast, concurrent ruby web applications with EventMachine and EM::SynchronyFast, concurrent ruby web applications with EventMachine and EM::Synchrony
Fast, concurrent ruby web applications with EventMachine and EM::Synchrony
Kyle Drake
 

La actualidad más candente (20)

Gearman and asynchronous processing in PHP applications
Gearman and asynchronous processing in PHP applicationsGearman and asynchronous processing in PHP applications
Gearman and asynchronous processing in PHP applications
 
Gearman, Supervisor and PHP - Job Management with Sanity!
Gearman, Supervisor and PHP - Job Management with Sanity!Gearman, Supervisor and PHP - Job Management with Sanity!
Gearman, Supervisor and PHP - Job Management with Sanity!
 
Scale like a pro with Gearman
Scale like a pro with GearmanScale like a pro with Gearman
Scale like a pro with Gearman
 
Gearman and Perl
Gearman and PerlGearman and Perl
Gearman and Perl
 
Asynchronous Processing with Ruby on Rails (RailsConf 2008)
Asynchronous Processing with Ruby on Rails (RailsConf 2008)Asynchronous Processing with Ruby on Rails (RailsConf 2008)
Asynchronous Processing with Ruby on Rails (RailsConf 2008)
 
Madison PHP 2015 - DevOps For Small Teams
Madison PHP 2015 - DevOps For Small TeamsMadison PHP 2015 - DevOps For Small Teams
Madison PHP 2015 - DevOps For Small Teams
 
The Current State of Asynchronous Processing With Ruby
The Current State of Asynchronous Processing With RubyThe Current State of Asynchronous Processing With Ruby
The Current State of Asynchronous Processing With Ruby
 
Choosing a Web Architecture for Perl
Choosing a Web Architecture for PerlChoosing a Web Architecture for Perl
Choosing a Web Architecture for Perl
 
Care and feeding notes
Care and feeding notesCare and feeding notes
Care and feeding notes
 
Mad scalability: Scaling when you are not Google
Mad scalability: Scaling when you are not GoogleMad scalability: Scaling when you are not Google
Mad scalability: Scaling when you are not Google
 
Work Queues
Work QueuesWork Queues
Work Queues
 
Ruby 1.9 Fibers
Ruby 1.9 FibersRuby 1.9 Fibers
Ruby 1.9 Fibers
 
The Mysteries Of JavaScript-Fu (RailsConf Ediition)
The Mysteries Of JavaScript-Fu (RailsConf Ediition)The Mysteries Of JavaScript-Fu (RailsConf Ediition)
The Mysteries Of JavaScript-Fu (RailsConf Ediition)
 
Why I Love TorqueBox (And Why You Will Too)
Why I Love TorqueBox (And Why You Will Too)Why I Love TorqueBox (And Why You Will Too)
Why I Love TorqueBox (And Why You Will Too)
 
No callbacks, No Threads - Cooperative web servers in Ruby 1.9
No callbacks, No Threads - Cooperative web servers in Ruby 1.9No callbacks, No Threads - Cooperative web servers in Ruby 1.9
No callbacks, No Threads - Cooperative web servers in Ruby 1.9
 
CukeUp! 2012: Michael Nacos on Just enough infrastructure for product develop...
CukeUp! 2012: Michael Nacos on Just enough infrastructure for product develop...CukeUp! 2012: Michael Nacos on Just enough infrastructure for product develop...
CukeUp! 2012: Michael Nacos on Just enough infrastructure for product develop...
 
Word press workflows and gulp
Word press workflows and gulpWord press workflows and gulp
Word press workflows and gulp
 
Background processes and tasks in an async world
Background processes and tasks in an async worldBackground processes and tasks in an async world
Background processes and tasks in an async world
 
Fast, concurrent ruby web applications with EventMachine and EM::Synchrony
Fast, concurrent ruby web applications with EventMachine and EM::SynchronyFast, concurrent ruby web applications with EventMachine and EM::Synchrony
Fast, concurrent ruby web applications with EventMachine and EM::Synchrony
 
WASM! WASI! WAGI! WAT?
WASM! WASI! WAGI! WAT?WASM! WASI! WAGI! WAT?
WASM! WASI! WAGI! WAT?
 

Similar a Distributed Queue System using Gearman

Gearman - Northeast PHP 2012
Gearman - Northeast PHP 2012Gearman - Northeast PHP 2012
Gearman - Northeast PHP 2012
Mike Willbanks
 
Check Yourself Before You Wreck Yourself: Auditing and Improving the Performa...
Check Yourself Before You Wreck Yourself: Auditing and Improving the Performa...Check Yourself Before You Wreck Yourself: Auditing and Improving the Performa...
Check Yourself Before You Wreck Yourself: Auditing and Improving the Performa...
Nicholas Jansma
 
Gatling - Bordeaux JUG
Gatling - Bordeaux JUGGatling - Bordeaux JUG
Gatling - Bordeaux JUG
slandelle
 
When Third Parties Stop Being Polite... and Start Getting Real
When Third Parties Stop Being Polite... and Start Getting RealWhen Third Parties Stop Being Polite... and Start Getting Real
When Third Parties Stop Being Polite... and Start Getting Real
Nicholas Jansma
 
When third parties stop being polite... and start getting real
When third parties stop being polite... and start getting realWhen third parties stop being polite... and start getting real
When third parties stop being polite... and start getting real
Charles Vazac
 
Creating a mature puppet system
Creating a mature puppet systemCreating a mature puppet system
Creating a mature puppet system
rkhatibi
 

Similar a Distributed Queue System using Gearman (20)

Gearman - Northeast PHP 2012
Gearman - Northeast PHP 2012Gearman - Northeast PHP 2012
Gearman - Northeast PHP 2012
 
Introduction to Python Celery
Introduction to Python CeleryIntroduction to Python Celery
Introduction to Python Celery
 
Midwest PHP 2017 DevOps For Small team
Midwest PHP 2017 DevOps For Small teamMidwest PHP 2017 DevOps For Small team
Midwest PHP 2017 DevOps For Small team
 
DevOps For Small Teams
DevOps For Small TeamsDevOps For Small Teams
DevOps For Small Teams
 
Check Yourself Before You Wreck Yourself: Auditing and Improving the Performa...
Check Yourself Before You Wreck Yourself: Auditing and Improving the Performa...Check Yourself Before You Wreck Yourself: Auditing and Improving the Performa...
Check Yourself Before You Wreck Yourself: Auditing and Improving the Performa...
 
ZendCon 2015 - DevOps for Small Teams
ZendCon 2015 - DevOps for Small TeamsZendCon 2015 - DevOps for Small Teams
ZendCon 2015 - DevOps for Small Teams
 
Prometheus and Docker (Docker Galway, November 2015)
Prometheus and Docker (Docker Galway, November 2015)Prometheus and Docker (Docker Galway, November 2015)
Prometheus and Docker (Docker Galway, November 2015)
 
AMIMOTO: WordPress + Amazon Web Services Hands-on PARIS
AMIMOTO: WordPress + Amazon Web Services Hands-on PARISAMIMOTO: WordPress + Amazon Web Services Hands-on PARIS
AMIMOTO: WordPress + Amazon Web Services Hands-on PARIS
 
АНДРІЙ ШУМАДА «To Cover Uncoverable» Online WDDay 2022 js
АНДРІЙ ШУМАДА «To Cover Uncoverable» Online WDDay 2022 jsАНДРІЙ ШУМАДА «To Cover Uncoverable» Online WDDay 2022 js
АНДРІЙ ШУМАДА «To Cover Uncoverable» Online WDDay 2022 js
 
Gatling - Bordeaux JUG
Gatling - Bordeaux JUGGatling - Bordeaux JUG
Gatling - Bordeaux JUG
 
Profiling PHP with Xdebug / Webgrind
Profiling PHP with Xdebug / WebgrindProfiling PHP with Xdebug / Webgrind
Profiling PHP with Xdebug / Webgrind
 
JUST EAT: Embracing DevOps
JUST EAT: Embracing DevOpsJUST EAT: Embracing DevOps
JUST EAT: Embracing DevOps
 
Fluent 2018: When third parties stop being polite... and start getting real
Fluent 2018: When third parties stop being polite... and start getting realFluent 2018: When third parties stop being polite... and start getting real
Fluent 2018: When third parties stop being polite... and start getting real
 
When Third Parties Stop Being Polite... and Start Getting Real
When Third Parties Stop Being Polite... and Start Getting RealWhen Third Parties Stop Being Polite... and Start Getting Real
When Third Parties Stop Being Polite... and Start Getting Real
 
The Recording HTTP Proxy: Not Yet Another Messiah - Bulgaria PHP 2019
The Recording HTTP Proxy: Not Yet Another Messiah - Bulgaria PHP 2019The Recording HTTP Proxy: Not Yet Another Messiah - Bulgaria PHP 2019
The Recording HTTP Proxy: Not Yet Another Messiah - Bulgaria PHP 2019
 
Fail over fail_back
Fail over fail_backFail over fail_back
Fail over fail_back
 
DevOps, A brief introduction to Vagrant & Ansible
DevOps, A brief introduction to Vagrant & AnsibleDevOps, A brief introduction to Vagrant & Ansible
DevOps, A brief introduction to Vagrant & Ansible
 
Grunt.js and Yeoman, Continous Integration
Grunt.js and Yeoman, Continous IntegrationGrunt.js and Yeoman, Continous Integration
Grunt.js and Yeoman, Continous Integration
 
When third parties stop being polite... and start getting real
When third parties stop being polite... and start getting realWhen third parties stop being polite... and start getting real
When third parties stop being polite... and start getting real
 
Creating a mature puppet system
Creating a mature puppet systemCreating a mature puppet system
Creating a mature puppet system
 

Último

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Último (20)

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 

Distributed Queue System using Gearman

  • 1. Distributed Queue System using Gearman Taehun Cho CTO @ IMcompany http://iamcompany.net/
  • 2. What is a Queue? copyright@ www.mathworks.com
  • 3. Multiple Queue With multiple teller, all customers must form multiple queue to be served
  • 4. Some Situation on the WEB + You want to send an email, push notification, messages, import big file, etc...
  • 5. Problem is that... DO NOT LET YOUR USERS WAIT
  • 7. Running Task in a Single Thread? Loading behavior may affect the main GUI
  • 8. Run in Background! The user can do 'next' action, and the task should be done in backend in a distributed manner
  • 9. Job Queue Systems Celery (http://www.celeryproject.org/) RabbitMQ (http://www.rabbitmq.com/) Zend Server Job Queue (http://www.zend.com/) ZeroMQ (http://www.zeromq.org/) Beanstalkd Peafowl, Starling Apache ActiveMQ and many others..
  • 10. Introducing Gearman LiveJournal
  • 11. Introducing Gearman In LiveJournal, many photos had uploaded every day and it lead to a heavy load of image processing, and this was a motivation to build such a queue system. ● Yahoo!: 120+ servers, 12M jobs/day ● Digg: 45+ servers, 400K jobs/day ● LiveJournal, SixApart, DealNews, Xing.com, and many others. - Expert PHP and MySQL - Andrew et al, (2010, Wrox) ● Grooveshark, GoDaddy.com, IMcompany
  • 12. Features of Gearman ● Open Source ● Simple & Fast (rewritten in C) ● Support a variety of languages : build Worker in Python, Client in PHP ● Flexible ● Load Balance ● Failover
  • 13. Example of Architectures (from http://gearman.org/#what_is_gearman)
  • 14. Architecture Acks the job, finds all sleeping workers Awake, asks for jobs to server Gearman Job Server Connect, submit a job Sends a 'noop' command to wake them up Client Worker
  • 15. Installation ● Compile (for PHP APIs) tar xzvf gearmand-X.Y.tar. ● Pecl Extension gz sudo pecl install gearman cd gearmand-X.Y ./configure ● Add below to php.ini make extension="gearman.so" make install ● Start Server $ gearmand -d
  • 16. Use Cases - Crawling a website - Image Manipulation - Push Notification - Sending Email/Messages - File verification/compressing - Fetching RSS Feeds - Indexing on Search Engine
  • 19. Samples - Monitoring A good tool for monitoring gearman, is available at https://github.com/yugene/Gearman-Monitor
  • 20. Result Worker #1 Worker #2 The incomplete job will re-queue to available workers for fault-tolerance
  • 21. Motivation ● At the beginning state, we run 3 computers for crawling each school's information. (articles, schedules of the school) ● One job at a time, too much time to finish all of them, sometimes machines do the same job as the others do. ● That was a motivation to make a job queue system that could do jobs in parallel. And we've found Gearman!
  • 22. Gearman in IMcompany But there were some challenges! ● How many workers should be up for a server? (How efficiently leverage the load?) ● How can we handle unexpected termination of workers? ● What if the server's resource is exhausted due to the jobs that given by workers? (Then the server would not respond to other's requests/connections related to WEB, SVN, MySQL)
  • 24. Reported bugs when using PHP Bug #63041 "Failed to set exception option" on connect when any gearman server is down https://bugs.php.net/bug.php?id=63041 Bug #63648 Gearman worker stops with segfault after 1-2 hour of working https://bugs.php.net/bug.php?id=63648
  • 25. Supervisord for sanity "PHP was not built for long running request" "Sometimes it occurs memory leaks" Supervisord helps you in above cases! - Auto restart the processes based on custom configurations * Installation guide - http://www.masnun.com/2011/11/02/gearman- php-and-supervisor-processing-background-jobs-with-sanity.html
  • 26. Exceptional Case #2 PHP sometimes slows down after hundreds of executions, kill it off if you know this will happen. - Mike Willbanks, "Gearman: A Job Server made for Scale"
  • 27. Server Seems Fine for Now
  • 28. What We Learned ● Gearman's queue list is unstable so persistent queueing was highly needed in our system ● Integrating MySQL with Gearman was failed in both 1.0.2, 0.34 ● Tried SQLite, but performance was very poor Do NOT Reserve Too Much Jobs in a Queue
  • 29. Also We've Tried... ● Firing queueing jobs over HTTP request is sometimes not working and may lead to freezing the server eventually ● And doesn't support additional functions for the HTTP connection such as authentication ● And is not customizable Gearman Seems Too Young at This Moment
  • 30. Limitations ● Queue makes no guarantees - use MySQL, memcached, Redis, PostgreSQL, etc.. ● There are few administration tools ● Jobs don't expire ● If a job is dropped, the client is never be notified -from "http://inside.godaddy.com/cloud-processing-with- gearman/"
  • 32. We're hiring! ● Work in Daejeon, Korea ● Flexible, Small Company ● Excellent Benefits ● We Need Senior Hackers Find more information at http://iamcompany.net/ Thank you! Any questions?