fbpx
Wikipedia

Gearman

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).

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

It was originally written in Perl by Brad 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

  • Gearmand, up to version 1.1.12
  • Gearmand, from version 1.1.13
  • java-gearman-service
  • Gearman::Server
  • TclGearman

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]".
  2. ^ Gearman page Client & Worker APIs

gearman, open, source, application, framework, designed, distribute, appropriate, computer, tasks, multiple, computers, large, tasks, done, more, quickly, some, cases, load, balancing, rather, than, speed, main, goal, server, instance, could, send, tasks, whic. 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 GearmanOriginal author s Brad FitzpatrickDeveloper s Brian Aker Eric DayInitial releaseJanuary 8 2009 2009 01 08 Stable release1 1 19 1 February 18 2020 4 years ago 2020 02 18 Repositorygithub wbr com wbr gearman wbr gearmand wbr Written inC C M4 Shell scriptOperating systemLinux Windows no server OpenVMSAvailable inEnglishLicenseBSD LicenseWebsitegearman wbr orgIt was originally written in Perl by Brad Fitzpatrick Brian Aker and Eric Day rewrote the framework in C Contents 1 How Gearman Works 2 Features 3 Implementations 4 Clients 5 Similar software 6 External links 7 CitationsHow Gearman Works edit nbsp 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 editJob retries Round robin scheduling Coalescence Persistence storage via libmemcached libdrizzle SQLite MySQL Postgres tokyocabinet Redis unreleased currently in development MongoDB unreleased currently in development Implementations editGearmand up to version 1 1 12 Gearmand from version 1 1 13 java gearman service Gearman Server TclGearmanClients editCurrently there are client libraries for C Perl Node js Python PHP Ruby Java NET JMS MySQL PostgreSQL and Drizzle 2 Similar software editThis section s factual accuracy is disputed Relevant discussion may be found on the talk page Please help to ensure that disputed statements are reliably sourced August 2021 Learn how and when to remove this template message HAProxy Squid Varnish TraefɪkExternal links edithttp danga com words 2007 06 usenix usenix pdf http gearman org documentation http gearman org download http lists danga com pipermail gearman 2008 April 000076 html https web archive org web 20081209012837 http krow livejournal com 628025 html GearmanBundle for Symfony2 projectsCitations edit Gearman Gearman Job Server Gearman page Client amp Worker APIs Retrieved from https en wikipedia org w index php title Gearman amp oldid 1091572533, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.