HipHop deployment/meeting notes from May 2013

From mediawiki.org

Agenda for HipHop@Wikimedia meeting > 1) Meet and greet Names? Facebook:

  • Joel Pobar - Development manager
  • Joel Marcey- Documentation
  • Sara Golemon - OSS coordinator
  • Paul Tarjan - Hacker

WMF:

  • Rob Lanphier
  • Aaron Schulz
  • Brad Jorsch
  • Chad Horohoe
  • Sumana Harihareswara
  • Tim Starling

> 2) What work has been done to date, and what issues have you run in to.

HPHC/doc documentation, a lot of docs imply HHVM does not exist yet -- need to be updated (fixed)

To understand our situation with Lua: https://blog.wikimedia.org/2013/03/14/what-lua-scripting-means-wikimedia-open-source/ & https://blog.wikimedia.org/2013/03/11/lua-templates-faster-more-flexible-pages/

More about our new parser: https://www.mediawiki.org/wiki/Parsoid ( "ganglia": http://ganglia.wikimedia.org/latest/ )

Re MariaDB switch: https://blog.wikimedia.org/2013/04/22/wikipedia-adopts-mariadb/

Wikimedia Labs: http://wmflabs.org/

Chad Horohoe: "Let's run hhvm master + mw master in labs. Great trial by fire."

We have namespace support with 82% tests passing now! (done)

(tiny WMF staff: https://wikimediafoundation.org/wiki/Staff?showall=1 )

Here's a list of some things we use in MediaWiki that are missing from HipHop, for discussion during the meeting.

If the following aren't present, things will break, so either implementation or migration to some other solution would be needed:

  • FilesystemIterator - easy (done, not committed)
  • ArrayObject - medium amount of work (done)
  • filter_var() - hard
  • geoip - sara will do
  • Redis client (https://github.com/nicolasff/phpredis)
  • Our Lua extension (LuaSandbox)
  • Our diff extension (wikidiff2)
  • Apache front end (could possibly live with a proxy)

These extensions are for efficiency, and we already have a pure-PHP implementation of the relevant parts:

  • Our string search extension "FSS" (but the PHP implementation is

probably not feasible for large articles)

  • dba (for CDB support)
  • gmp

Writing a HipHop extension: https://github.com/hiphop-php/hello-world <<SHORT TERM WORKAROUND>> To generate system files once you've added new files to hphp/idl/ and hphp/runtime/ext/: hphp/tools/generated_files.sh all I think our own extensions are our own responsibility, although good documentation and a decent build system would help us along with the porting process. wikidiff2 and FSS are very simple wrappers and would be easy to port, whereas LuaSandbox would be non-trivial. > 3) What are the requirements on your side in terms of stability, code push > process, uptime etc. (We're more generally optimized for Facebook's push > process, so we want to make sure we're across your requirements). > 4) Set up the criteria for success > 5) Set up the appropriate communication channel Few things from the last investigation of this: http://www.mediawiki.org/wiki/HipHop How big of an advantage is jemalloc?

  • Are packaged versions acceptable?

Distribution packaging

  • Unpatched version of curl
    • Isn't this true in master?
  • Unpatched version of libevent
  • Packages for google-glog?
    • I see libgoogle-glog, does that work?
  • Quick install process
  • Community needs
    • Commnication venues
      • Getting off the Facebook group would be helpful
      • People want to be able to participate anonymously
      • Syndicating to/from FB group & blog
        • GitHub, Launchpad, Savannah, open mailing list ... .?

FB team join wikimedia mailing list (which one(s)?)

TODO: WMF to host a public mailing list to concentrate on HipHop stuff -- at milestones or when wider consultation/testing is needed, cross-post to wikitech-l wmflabs.org for possible virtualization

  • Should be easy

Which extensions do we need to help with? Bug tracker is: GitHub issue tracker.

  • Need to triage the bugs (done - bug bankruptcy)

TODO: Sumana & Sara to talk about next steps re outreach to certain developer communities, future meetups/IRC office hours/events Today is the last day to submit Strange Loop https://thestrangeloop.com/sessions-page/call-for-presentations - Facebook's already submitted a talk :-)

https://www.mediawiki.org/wiki/Amsterdam_Hackathon_2013 - late May in Amsterdam

http://opensourcebridge.org/ - June in Portland

http://wikimania2013.wikimedia.org/ - August in Hong Kong

Wikimedia's working on this - a matter of when, not if. sometime in 2013. :-)