Nice work! I think it's worth adding to Wikia code. Emil
DanTMan wrote: > ^_^ Well here's another new feature of mine in core which Wikia should > like... Like the Listusers' hooks, cept I made this one for myself some > time ago. > http://svn.wikimedia.org/viewvc/mediawiki?view=rev&revision=34199 > > I've also got a 1.12 hack published which adds the feature to 1.12 for > anyone who want's the feature now while they are waiting for it to come > out in the next major release. (I hate maintaining hacks myself, but if > it's a just for while you're waiting for the next release to obsolete > the current stable, that's fine with me...) > http://wiki-tools.com/wiki/$wgSharedDBtables > > So the use? Here's what it boils down to... > > The new variable $wgSharedDBtables removes an age old restriction of > $wgSharedDB. In fact a number of MW developers don't get why it's so > restrictive. Hardcoding the tables which are forced to be shared is just > plain bad coding. So this removes that restriction. > By default for backwards compatibility $wgSharedDBtables is set to > array( 'user' ); so the user table is still being shared. However, ^_^ > now you can unset that and disable user sharing, in fact you can disable > that in a setup where you don't want shared users, but still allow other > extensions which use it to be shared (Namely I believe it was either > SpamRegex or RegexBlock). > However, as Wikia is using the shared DB already, there's a little more > useful purpose for this. It's something which is working perfectly fine > over at my setup. > I have $wgSharedDBtables = array( 'interwiki' ); setup over on my wiki. > What's this do? Because of that one little setting, all of my wiki grab > their interwiki prefixes from the shared DB (in my case, it's my commons > wiki) instead of using the local database. And suddenly, all my wiki can > use the Interwiki links, and I only need to update it on a single one. > Which may even be useful for Wikia. Currently we've got a interwiki map > page, and that's synced out to all 5000 of Wikia's wiki. Enabling this > and moving one table into the shared DB would mean that suddenly instead > of needing to duplicate the table over and over, all of Wikia's wiki > would start sharing the same interwiki table. > Oh ya... The beauty of this... I know that interwiki rows are small, but > think about it... There are a few hundred interwiki rows in Wikia's > interwiki database. And wikia hosts around 5000 wiki. Now remember that > all the wiki hooked into Wikia's system basically have duplicate copies > of each other's interwiki tables. Now, think about it... I don't care > how small a interwiki row is, when you add up hundreds of them, > duplicated across 5000 wiki, that's a lot of data duplication. Sharing a > single table would mean that you could basically erase almost 5000 > interwiki tables from Wikia with no real side effects. > Oh ya... And the other benefit? Rather than that interwiki map page, > since the actual table is shared, you only need to enable > Special:Interwiki on one wiki, then you can edit the global table with > that instead of editing the article. ^_^ And it's even logged to (oh ya, > one of these days I'm thinking of finishing a better extension to > replace it, but it works for now). Then you only need to run the > maintenance script to clean the interwiki cache everywhere once in a > while and everything works out nicely. > > Actually, I'm not completely sure what is used for the memcached keys > for the interwiki table. But I may track down the code in core handling > that. ^_^ As a little bonus, I may be able to make the shared interwiki > table use the key for the shared wiki (it is just a cache of the shared > table, so using the same memcached should be good)... And as a nice > result, that should mean that the method of cleaning the interwiki cache > could be reduced to doing it on a single wiki instead of on all of them. > Massive improvement on speed of the task. > _______________________________________________ Wikia-tech-l mailing list [email protected] http://lists.wikia.com/mailman/listinfo/wikia-tech-l
