SlideShare uma empresa Scribd logo
1 de 32
Baixar para ler offline
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?

Mais conteúdo relacionado

Mais procurados

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
 

Mais procurados (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?
 

Semelhante 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
 

Semelhante 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

Último (20)

MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 

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?