Extension:QuickInstantCommons/ja

The QuickInstantCommons extension is a performance optimized version of. また、ローカルのWikiでMediaHandlerの拡張子がないファイルの基本的なサムネイルを作成することができます. For example, the first page of a PDF will still thumbnail even without Extension:PDFHandler installed, but advanced features like multipage requires the extension to be installed locally.

パフォーマンス
Initial testing was done using the page en.wikipedia.org: List of governors general of Canada (revision 1054426240) which has 85 images. テストはキャッシュを無効にして行われ、すでに設定された接続でのAPIの推定TTFBは〜250msであった.

MediaWikiコアのインスタントコモンズでは1038.18秒、この拡張機能でプリフェッチを無効にすると18.50秒、この拡張機能だがプリフェッチを有効にすると1.10秒かかりました.

設定
If you were previously using, no configuration is needed beyond wfLoadExtension-ing this extension; Configuration is only required for advanced usage.


 * Automatically setup  to use this extension (defaults true). Set to false if you need to customize something.
 * Automatically setup  to use this extension (defaults true). Set to false if you need to customize something.


 * Enable prefetching images based on what's in DB (Default true). Most of the time this is a major performance boost, but its possible that occasionally this might cause work to be done that isn't necessary.
 * Enable prefetching images based on what's in DB (Default true). Most of the time this is a major performance boost, but its possible that occasionally this might cause work to be done that isn't necessary.


 * Max number of images to prefetch if prefetching is enabled (Default: 1000). Could hit OOM issues if too high.
 * Max number of images to prefetch if prefetching is enabled (Default: 1000). Could hit OOM issues if too high.

高度な設定
You can directly configure $wgForeignFileRepos if you want. For example, if you want to use this extension with a wiki that is not commons. Example:

is probably the most important value from a performance perspective (other then ). If you feel things are slow, try increasing it. If a new version of a file is uploaded, it might not show up properly until after metadata expires. However you can force an expiry by purging the file description page on the local wiki. If you want to maxamize performance, an appropriate value might be 60*60*24*30 (1 month)

Differences between this and ForeignApiFileRepo

 * Caches curl handle
 * Uses HTTP/2 multiplexing (Major performance boost)
 * ?action=purge of File pages purges image metadata
 * Does not support local thumbnail caching
 * Automatically generate thumbnail URLs locally if foreign repository supports 404 handling (Major performance boost. Especially when responsive images are enabled)
 * Prefetch expected images based on imagelinks table (Major performance boost)
 * Allows limited thumbnailing of files that are missing handler extension (e.g. Still show thumbnail of first page of a PDF even if you don't have Extension:PDFHandler installed).
 * Adaptive TTL support that actually works (If the foreign image was recently edited, cache for shorter time, so that if its vandalism the revert will show up faster).
 * Configurable metadata caching time, with better defaults than core.
 * When using a foreign repo that itself has foreign repos (For example, how en.wikipedia.org includes commons.wikimedia.org), image page descriptions will now work correctly.
 * file redirects for files that are foreign files on the foreign repo work.
 * allows disabling media handlers that are incompatible and use fallback behaviour instead.
 * for images that can't use 404 rendering (missing local media handler extension or if transformVia404 false), predictively prefetches the responsive high-dpi thumbnails
 * reuse http/2 connection for fetching description page text
 * do not show text of 404 if the description page is missing on foreign wiki. Instead just show it as blank.

Other ideas that haven't been implemented: better adaptive cache for image description pages.

既知の問題点

 * If you are using Extension:TimedMediaHandler, you need to use at least MediaWiki 1.38 for this extension to work with video files.

関連項目

 * blog post explaining how it works
 * blog post explaining how it works
 * blog post explaining how it works