Knowledge (XXG)

Gearman

Source 📝

258:, 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 24: 243: 265:
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
273:
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.
281:
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
207:
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
505: 515: 510: 203:
framework designed to distribute appropriate computer tasks to multiple computers, so large tasks can be done more quickly. In some cases,
291: 262:; Gearman handles MapReduce by allowing worker nodes to map out work to other workers, with the original worker acting as the reducer. 283: 126: 101: 75: 451: 204: 407: 327: 134: 231: 130: 267: 208: 402:
Currently there are client libraries for C, Perl, Node.js, Python, PHP, Ruby, Java, .NET, JMS, MySQL,
278: 200: 446: 419: 287: 255: 251: 301:
for "Manager", "since it dispatches jobs to be done, but does not do anything useful itself."
223: 212: 169: 145: 36: 499: 431: 138: 452:
https://web.archive.org/web/20081209012837/http://krow.livejournal.com/628025.html
381: 488: 174: 215:, or loaded with a computer language better suited to a particular operation). 403: 386: 227: 48: 43: 31: 23: 286:
port 4730. It previously operated on port 7003, but this conflicted with the
456: 322: 259: 242: 391: 342: 356: 298: 154: 107: 376: 332: 436: 475: 350: 337: 241: 150: 371: 219: 447:
http://lists.danga.com/pipermail/gearman/2008-April/000076.html
441: 185: 290:port range and the new port (4730) was assigned by 180: 168: 160: 144: 122: 100: 74: 55: 42: 30: 250:Gearman assigns each involved computer a role as 432:http://danga.com/words/2007_06_usenix/usenix.pdf 8: 16: 22: 15: 270:which are common to cache hit failures. 467: 359:(unreleased - currently in development) 353:(unreleased - currently in development) 476:"Gearman [Gearman Job Server]" 230:and Eric Day rewrote the framework in 489:Gearman page Client & Worker APIs 7: 297:The name "Gearman" was chosen as an 81:1.1.19.1 / February 18, 2020 457:GearmanBundle for Symfony2 projects 506:Application programming interfaces 14: 437:http://gearman.org/documentation/ 266:does this specifically to avoid 516:Software using the BSD license 372:Gearmand, up to version 1.1.12 246:The Gearman Application Stack. 1: 377:Gearmand, from version 1.1.13 218:It was originally written in 442:http://gearman.org/download/ 511:Message-oriented middleware 532: 319:Persistence storage via: 96: 70: 59:January 8, 2009 21: 268:thundering herd problems 201:open-source application 153:, Windows (no server), 313:Round robin scheduling 247: 277:Gearman implements a 245: 83:; 4 years ago 382:java-gearman-service 18: 248: 32:Original author(s) 238:How Gearman Works 194: 193: 523: 491: 486: 480: 479: 472: 414:Similar software 224:Brad Fitzpatrick 213:operating system 211:, using another 190: 187: 146:Operating system 118: 115: 113: 111: 109: 91: 89: 84: 66: 64: 37:Brad Fitzpatrick 26: 19: 531: 530: 526: 525: 524: 522: 521: 520: 496: 495: 494: 487: 483: 474: 473: 469: 465: 428: 416: 400: 387:Gearman::Server 368: 366:Implementations 307: 240: 184: 106: 92: 87: 85: 82: 62: 60: 56:Initial release 12: 11: 5: 529: 527: 519: 518: 513: 508: 498: 497: 493: 492: 481: 466: 464: 461: 460: 459: 454: 449: 444: 439: 434: 427: 426:External links 424: 423: 422: 415: 412: 399: 396: 395: 394: 389: 384: 379: 374: 367: 364: 363: 362: 361: 360: 354: 348: 345: 340: 335: 330: 325: 317: 314: 311: 306: 303: 239: 236: 205:load balancing 192: 191: 182: 178: 177: 172: 166: 165: 162: 158: 157: 148: 142: 141: 124: 120: 119: 104: 98: 97: 94: 93: 80: 78: 76:Stable release 72: 71: 68: 67: 57: 53: 52: 46: 40: 39: 34: 28: 27: 13: 10: 9: 6: 4: 3: 2: 528: 517: 514: 512: 509: 507: 504: 503: 501: 490: 485: 482: 477: 471: 468: 462: 458: 455: 453: 450: 448: 445: 443: 440: 438: 435: 433: 430: 429: 425: 421: 418: 417: 413: 411: 409: 405: 397: 393: 390: 388: 385: 383: 380: 378: 375: 373: 370: 369: 365: 358: 355: 352: 349: 346: 344: 341: 339: 336: 334: 331: 329: 326: 324: 321: 320: 318: 315: 312: 309: 308: 304: 302: 300: 295: 293: 289: 285: 280: 275: 271: 269: 263: 261: 257: 253: 244: 237: 235: 233: 229: 225: 221: 216: 214: 210: 206: 202: 198: 189: 183: 179: 176: 173: 171: 167: 163: 159: 156: 152: 149: 147: 143: 140: 136: 132: 128: 125: 121: 117: 105: 103: 99: 95: 79: 77: 73: 69: 58: 54: 50: 47: 45: 41: 38: 35: 33: 29: 25: 20: 484: 470: 401: 347:tokyocabinet 323:libmemcached 296: 276: 272: 264: 249: 217: 209:architecture 196: 195: 161:Available in 139:Shell script 44:Developer(s) 316:Coalescence 310:Job retries 175:BSD License 500:Categories 404:PostgreSQL 392:TclGearman 328:libdrizzle 228:Brian Aker 123:Written in 102:Repository 88:2020-02-18 63:2009-01-08 51:, Eric Day 49:Brian Aker 463:Citations 260:MapReduce 114:/gearmand 343:Postgres 305:Features 279:protocol 112:/gearman 420:Ansible 408:Drizzle 398:Clients 357:MongoDB 299:anagram 197:Gearman 186:gearman 181:Website 170:License 164:English 155:OpenVMS 86: ( 61: ( 17:Gearman 406:, and 333:SQLite 256:server 254:, job 252:client 199:is an 108:github 351:Redis 338:MySQL 151:Linux 292:IANA 220:Perl 188:.org 110:.com 288:AFS 284:TCP 222:by 127:C++ 502:: 410:. 294:. 234:. 226:. 137:, 135:M4 133:, 129:, 478:. 232:C 131:C 116:/ 90:) 65:)

Index


Original author(s)
Brad Fitzpatrick
Developer(s)
Brian Aker
Stable release
Repository
github.com/gearman/gearmand/
C++
C
M4
Shell script
Operating system
Linux
OpenVMS
License
BSD License
gearman.org
open-source application
load balancing
architecture
operating system
Perl
Brad Fitzpatrick
Brian Aker
C

client
server
MapReduce

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.