User:Wenzel/Bouncer:MirrorBrain

From MozillaWiki
Jump to: navigation, search
Draft-template-image.png THIS PAGE IS A WORKING DRAFT Pencil-emoji U270F-gray.png
The page may be difficult to navigate, and some information on its subject might be incomplete and/or evolving rapidly.
If you have any questions or ideas, please add them as a new topic on the discussion page.

Bouncer project: MirrorBrain Evaluation

MirrorBrain is a "download redirector and metalink generator" and thus aims basically in the same direction as the Bouncer project: Intelligently redirecting users' download requests to an appropriate mirror.

General Remarks

Positive

  • The performance claims are impressive: The FAQ states, OpenSuSE has pushed at least 250 GBit/s using MB. Performance is vital for Mozilla.
  • The feature list aligns very well with Mozilla's requirements (GeoIP, mirror management and monitoring, see below).

Negative

  • The core piece of software in MB is an Apache module called mod_mirrorbrain, and it is written in C. On the plus side, that promises high performance. On the downside, WebDev (whose project Bouncer is) has limited experience with C. Possible feature requests etc may not be as easily implementable for us as they'd be in PHP or Python.
  • MB's documentation is virtually nonexistent: "the documentation needs work. Not much exists yet."[1]

Neutral

  • MB uses PostgreSQL. As Bouncer currently uses MySQL, we'd need to make sure to have a sufficiently beefy PgSQL box when using MB.
  • Likewise, sufficiently new versions of Apache and friends are needed, which may or may not be present in Mozilla's production systems yet.
  • As an Apache module, MB would bind us to Apache tightly. That's not a problem considering the webheads are running Apache currently anyway, just something to be aware of.

MB's Alignment with Bouncer Goals

Note: This list is by all means not complete. I gathered a number of requirements from the current Bouncer bug list, and determined if MB claims to handle that problem or not. More requirements are available on the Sentry Requirements page.

Present in MB

  • GeoIP / peer network (bug 353237) handling: MB claims sophisticated mirror selections based on both of these criteria -- and more.
  • Automated mirror monitoring, and spot-checking file integrity (Bouncer's Sentry functionality): MB supports this, along with real-time server health checking.

Not handled yet

  • MB does not have a Web Frontend yet, though it is planned. This may keep us from fixing a significant number of bugs that rely on some sort of web-based interface.

Unsure

  • Due to the lack of a web frontend, it's unsure if administrative data can be saved and easily be retrieved (mirror contact data, for example: bug 408677)
  • The command-line interface will likely make Build happy, if it supports adding releases on the fly (bug 408674)