Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  

































Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 



















Contents

   



(Top)
 


1 How Gearman Works  





2 Features  





3 Implementations  





4 Clients  





5 Similar software  





6 External links  





7 Citations  














Gearman







Tiếng Vit

 

Edit links
 









Article
Talk
 

















Read
Edit
View history
 








Tools
   


Actions  



Read
Edit
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Cite this page
Get shortened URL
Download QR code
Wikidata item
 




Print/export  



Download as PDF
Printable version
 
















Appearance
   

 






From Wikipedia, the free encyclopedia
 


Gearman
Original author(s)Brad Fitzpatrick
Developer(s)Brian Aker, Eric Day
Initial releaseJanuary 8, 2009 (2009-01-08)
Stable release

1.1.19.1 / February 18, 2020; 4 years ago (2020-02-18)

Repositorygithub.com/gearman/gearmand/
Written inC++, C, M4, Shell script
Operating systemLinux, Windows (no server), OpenVMS
Available inEnglish
LicenseBSD License
Websitegearman.org

Gearman is an open-source application framework designed to distribute appropriate computer tasks to multiple computers, so large tasks can be done more quickly. In some cases, load balancing rather than raw speed may be the main goal; a Web server, for instance, could use Gearman to send tasks for which it is not optimized to another computer (which may be running on a different architecture, using another operating system, or loaded with a computer language better suited to a particular operation).

It was originally written in PerlbyBrad Fitzpatrick. Brian Aker and Eric Day rewrote the framework in C.

How Gearman Works[edit]

The Gearman Application Stack.

Gearman assigns each involved computer a role as client, job server, or worker. A worker machine can be assigned multiple instances of the worker role, which allows more powerful computers to complete more portions of a given task. Tasks originate on a client, are transmitted from the client to the job server, and performed on one or more workers. The completed task's output is then returned, again by way of the job server, to the client where the task originated. Gearman is conceptually related to MapReduce; Gearman handles MapReduce by allowing worker nodes to map out work to other workers, with the original worker acting as the reducer.

Gearman performs coalescence on the work sent by a client. If two or more clients ask for work to be completed on the same body of work, either by seeing that the same blocks are being sent or by using the unique value sent by the client, it will coalesce the work so that only one worker is used. It does this specifically to avoid thundering herd problems which are common to cache hit failures.

To mitigate the damage that would be done if a job server (or its network connection) were to fail, clients can be configured with more than one assigned job server; if the first assigned job server fails, another can be transparently substituted.

Gearman implements a protocol that consists of binary packets containing requests and responses; this protocol defines the structure of messages passing between the three parts of a Gearman implementation. By default, the Gearman protocol uses TCP port 4730. It previously operated on port 7003, but this conflicted with the AFS port range and the new port (4730) was assigned by IANA.

The name "Gearman" was chosen as an anagram for "Manager", "since it dispatches jobs to be done, but does not do anything useful itself."[1]

Features[edit]

Implementations[edit]

Clients[edit]

Currently there are client libraries for C, Perl, Node.js, Python, PHP, Ruby, Java, .NET, JMS, MySQL, PostgreSQL, and Drizzle.[2]

Similar software[edit]

External links[edit]

Citations[edit]

  1. ^ "Gearman [Gearman Job Server]".
  • ^ Gearman page Client & Worker APIs

  • Retrieved from "https://en.wikipedia.org/w/index.php?title=Gearman&oldid=1091572533"

    Categories: 
    Application programming interfaces
    Message-oriented middleware
    Software using the BSD license
    Hidden categories: 
    Accuracy disputes from August 2021
    All accuracy disputes
     



    This page was last edited on 5 June 2022, at 03:29 (UTC).

    Text is available under the Creative Commons Attribution-ShareAlike License 4.0; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.



    Privacy policy

    About Wikipedia

    Disclaimers

    Contact Wikipedia

    Code of Conduct

    Developers

    Statistics

    Cookie statement

    Mobile view



    Wikimedia Foundation
    Powered by MediaWiki