Multimedia/status

Last update on: 2013-03-monthly

2011-11-30
Ben Hartshorne has set up the initial development environment for Engineering to have a platform on which to test and continue development of the SwiftMedia extension. Ben and Mark Bergsma continue to do performance testing on Swift prior to using it in production. Aaron Schulz started to refactor the file backend code, a requirement to using SwiftMedia.

2011-12-20
Aaron Schulz merged the FileBackend branch into /trunk. Ben, Aaron and Ariel discussed sharding the swift containers. 

2011-12-31
Aaron Schulz merged the FileBackend branch into, and Tim Starling started to review the code. Aaron, Ben Hartshorne, Ariel Glenn discussed sharding the Swift containers at the MediaWiki level, and Aaron started to implement it.

2012-01-03
FileBackend code has been merged, and has gone through preliminary review with Tim. Some fixes still being made in trunk. MediaWiki-level sharding of containers is currently being implemented by Aaron.

2012-01-05
Container sharding added FileBackend class. Aaron has a testwiki running of the swift test cluster and SwiftFilebackend.

2012-01-19
Aaron continues to make performance improvements and minor fixes to the Swift backend and FileOp classes.

2012-01-31
Aaron Schulz added container sharding to FileBackend, and continued to make performance improvements and fixes. The Swift back-end now passes all unit tests; the code is being reviewed and cleaned up. Some of Aaron's code for purging thumbnails will be backported to MediaWiki 1.18. Ben Hartshorne has prepared interim hardware for production deployment, which will begin the week of February 6.

2012-02-29
After more polish by Aaron Schulz and a February deployment of SwiftMedia and Swift, Swift is now serving 100% of thumbnails on Wikimedia Commons (engineering report).

2012-03-31
<section begin=2012-03-31/>Swift is deployed for thumbnails. There are still some corrupted thumbnails in the Squid cache, but all known issues with new thumbnail corruption have been resolved. Work is underway to test and deploy Swift for original images, with work scheduled to complete in late May.<section end=2012-03-31/>

2012-04-monthly
<section begin=2012-04-monthly/>Ben Hartshorne and Leslie Carr have been running a script to clean up corrupted thumbnails in Swift. Aaron Schulz has been fixing bugs, and is now focusing on adding concurrent file operation support to PHP cloudfiles (the PHP interface to Swift) and to MediaWiki's FileBackend code. This should help alleviate .<section end=2012-04-monthly/>.

2012-05-monthly
<section begin="2012-05-monthly"/>Aaron Schulz and Ben Hartshorne deployed a new version of the thumbnail handler to Commons, test, test2, and mediawiki.org, that uses our Swift FileBackend code. It should provide us with useful production testing prior to using Swift FileBackend for handling original files. Cleanup of corrupted thumbnails is now finished. Aaron deployed a SiteStats fix that should make uploads much faster and fix some timeout problems. Ben and Aaron will also roll out the FileBackend-based thumbnail handler to the rest of the wikis.<section end="2012-05-monthly"/>

2012-06-22
<section begin="2012-06-22"/>Ben is installing SSDs for use in storing the object listing database, in hopes that having faster storage will result in faster purge times (fixing ). All work for deploying Swift for storage of originals is on hold until we fix the object listing performance problems.<section end="2012-06-22"/>

2012-06-monthly
<section begin="2012-06-monthly"/>Ben Hartshorne is installing SSDs for use in storing the object listing database, in hopes that having faster storage will result in faster purge times (fixing ), which we hoped to complete in June, but which is stretching into July. All work for deploying Swift for storage of original images is on hold until we fix the object listing performance problems.<section end="2012-06-monthly"/>

2012-07-27
<section begin="2012-07-27"/>Aaron has the process of migrating image originals into Swift well underway. Commons is done (barring a few minor problems to investigate in the logs). The rest of the wikis are in various stages of progress. Meanwhile, there's also a minor architectural change (MultiWrite backend) that will be deployed next week, which is a necessary prerequisite to serving/storing originals in Swift. Thumb handling changes may also be deployed next week during the scheduled window (currently slated for Wednesday, August 1)<section end="2012-07-27"/>

2012-07-monthly
<section begin="2012-07-monthly"/>Aaron Schulz is in the process of migrating image originals into Swift. Commons is completed (barring a few minor problems to investigate in the logs), and the rest of the wikis are in various stages of progress. Meanwhile, there's also a minor architectural change (MultiWrite backend) that will be deployed soon, which is a necessary prerequisite to serving/storing originals in Swift.<section end="2012-07-monthly"/>

2012-08-30
<section begin="2012-08-30"/>All Wikis are using a multi-write backend to push writes to both Swift and NFS. This has been running for several weeks. All reads of upload originals are served from Swift, including upload.wikimedia.org. The Math and Timeline extensions will be migrated to Swift soon.<section end="2012-08-30"/>

2012-08-monthly
<section begin="2012-08-monthly"/>All Wikimedia sites are now using Swift as the primary storage mechanism for multimedia files such as images (both original images as well as image thumbnails). We continue to write images to our old NFS server as well, though we plan to turn this off in September. Some specialized extensions still use the old NFS server, such as the Math and Timeline extensions. These will be migrated to Swift soon (tentatively in September).<section end="2012-08-monthly"/>

2012-09-monthly
<section begin="2012-09-monthly"/>The Math, EZTimeline, and ConfirmEdit extensions were updated to be able to use Swift-based storage, and all but ConfirmEdit are now using Swift in production. We weren't able to turn off the old NFS server (ms7) as we originally planned, due to hardware issues on our Swift nodes and unanticipated issues with Swift-based replication to our Ashburn data center. We are very nearly out of space on ms7, so our new plan is to back our media storage onto a newer NFS system.<section end="2012-09-monthly"/>

2012-10-monthly
<section begin="2012-10-monthly"/>At the beginning of October, we had our new Swift distributed file storage cluster in production, with copies of all original media also being made to an NFS server (ms7) that was destined to fill up in the month of October. Our original plan was to shut off copying to ms7 and rely solely on the Swift cluster. Because of hardware issues with the Swift cluster, we decided we couldn't afford to switch off the copying of files to an NFS backup. We migrated the contents of ms7 over to a much larger NFS server (nas1), and configured nas1 to be the new live backup for images. We plan to remain in this configuration for the foreseeable future as we stabilize our distributed file store.<section end="2012-10-monthly"/>

2012-11-28
<section begin="2012-11-28"/>Thumnails (and math/timeline files) are now written to nas1 and swift. More improvements have been made to FileBackend to avoid extra HEAD requests for 404s. Webm thumbnails use temp swift URLs to support range requests. Feature requests and bugs reports are filed against ceph as MW takes advantage of other swift features.<section end="2012-11-28"/>

2012-11-monthly
<section begin="2012-11-monthly"/>Thumbnails (and math/timeline files) are now written to nas1 and Swift. More improvements have been made to FileBackend to avoid extra HEAD requests for 404 errors. Webm thumbnails use temporary Swift URLs to support range requests. Feature requests and bugs reports are filed against Ceph as MediaWiki takes advantage of other Swift features.<section end="2012-11-monthly"/>

2012-12-monthly
<section begin="2012-12-monthly"/>Captchas are ready to be served from Swift. They previously were for several days, but the configuration had to be reverted to due random errors from Swift. A new set of captchas are being tweaked for readability and are served from Swift on the test wikis. Captchas are one of the last NFS dependencies.<section end="2012-12-monthly"/>

2013-01-monthly
<section begin="2013-01-monthly"/>NFS for uploads/thumbnails has been unmounted from all Apache servers and the NFS back-end configuration was removed from MediaWiki; all files now only use Swift. A workaround has been added for the Swift back-end class when used with Ceph, so that temporary URLs can be used (for making video thumbnails for example). A Python script to copy files into Ceph has been run and is being worked on. Various issues have been reported in Ceph's bug tracker and are being looked at by the developers.<section end="2013-01-monthly"/>

2013-03-monthly
<section begin="2013-03-monthly"/>Nearly all files have been copied from swift (in tampa) to ceph (in eqiad). Further scripts will be run to synchronize the ceph files to account for deletions and updates to files. The varnish config to handle URL rewriting (to take the place of rewrite.py in swift) is already coded, though not in use.<section end="2013-03-monthly"/>