Gearman
Original authorBrad Fitzpatrick
DevelopersBrian Aker, Eric Day
Initial releaseJanuary 8, 2009 (2009-01-08)
Stable release
1.1.21 / November 6, 2023; 2 years ago (2023-11-06)
Written inC++, C, M4, Shell script
Operating systemLinux, Windows (no server), OpenVMS
Available inEnglish
LicenseBSD License
Websitegearman.org
Repositorygithub.com/gearman/gearmand/

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

Clients

edit

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

edit

Citations

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

📚 Artikel Terkait di Wikipedia

HAProxy

were shown to reach 2 million requests per second and 100 Gbit/s. Nginx Gearman Pound Varnish Envoy by CNCF Free and open-source software portal LAMP,

List of TCP and UDP port numbers

Associates Desktop and Server Management (DMP)/Port Multiplexer 4730 Yes Gearman's job server 4739 Yes IP Flow Information Export 4747 Unofficial Apprentice

ZeroMQ

dependency on older contributors. Free and open-source software portal Xitami Gearman MQTT "Release 4.3.5". 9 October 2023. Retrieved 20 October 2023. "ØMQ Licensing"

Queue (abstract data type)

PHP has an SplQueue class and third-party libraries like beanstalk'd and Gearman. A simple queue implemented in TypeScript: class Queue<T> { private items:

Subbu Arumugam

exponents Subbu Arumugam, daughter get TN awards". Newstodaynet. "P Anitha, 'Gearman' Subramanian, Bombay Jayashri among those conferred Padma Shri from TN"

Message broker

Fusion Message Broker (Sybase) Fuse Message Broker (enterprise ActiveMQ) Gearman Google Cloud Pub/Sub (Google) HiveMQ HiveMQ MQTT Broker HornetQ (Red Hat)

Message queue

Amazon Simple Queue Service Apache ActiveMQ Apache Qpid Celery (software) Gearman IBM Integration Bus IBM MQ Java Message Service MQTT Message-oriented middleware

Carol (soundtrack)

Patricia Sullivan Violins – Simon James and Gennady Filimonov Viola – Mara Gearman Cello – Wendy Sutter Bass – Jonathan Burnstein Violin – Brittany Boulding