00:11 -!- dammit [~midom@84-80-6-088.static.zebra.lt] has joined #rapidxen 00:11 < dammit> hi! 00:11 -!- dammit is now known as domas 00:11 < Diablo-D3> hi domas 00:11 < Diablo-D3> this makes it easier :P 00:11 * werdnus sits back. 00:11 < Diablo-D3> I answered why google uses mysql... its only on small projects that haven't been moved to the big db... they have projects using all sorts of different dbs, but they all eventually get moved to the big db if they become google products 00:11 < Diablo-D3> yahoo probably is the same reason 00:12 < domas> Diablo-D3: google pageads backend is all mysql 00:12 < domas> Diablo-D3: is the google cash-cow 'small project'? 00:12 < Diablo-D3> thats not true anymore 00:12 < domas> why not true? 00:12 < Diablo-D3> someone said that awhile back, and I asked someone I know who used to work for google 00:12 < Diablo-D3> it started with mysql, and was the last major project of theirs to switch 00:12 < setient> lol 00:12 < domas> they switched to Sybase, then switched back 00:13 < domas> %) 00:13 < Diablo-D3> most of adwords runs on google's db 00:13 < domas> http://xooglers.blogspot.com/2005/12/lets-get-real-database.html 00:13 < domas> most of adwords runs on mysql ;-) 00:13 < Diablo-D3> thats a 3 year old post 00:14 < domas> yeah, but it tells about switching back 00:14 < Diablo-D3> its probably true... they reverted the changes =P 00:14 < domas> so, your knowledge about switching somewhere else is a bit outdated 00:14 < Diablo-D3> you do know google wrote their own db, right? 00:14 < Diablo-D3> bigtable or something like that 00:14 < Diablo-D3> adwords runs on that now 00:14 < domas> hahaha 00:14 < domas> not really 00:15 < domas> they do some export to bigtable 00:15 < domas> for archives 00:15 < domas> but actual OLTP runs all on mysql 00:15 < Diablo-D3> well, said google ex-employee said it does 00:15 < werdnus> newer post http://mysqldatabaseadministration.blogspot.com/2007/04/google-and-mysql.html 00:15 < domas> *shrug*, I probably talk more to google employees than ex-employees 00:16 < domas> I can show you this blog: http://mysqlha.blogspot.com/ 00:16 < domas> it mentions me from time to time :) 00:16 < Diablo-D3> btw, even if google does use mysql 00:16 < Diablo-D3> I bet they've rolled a lot of their own stuff to make mysql sane 00:16 < Diablo-D3> which, really, isn't worth it 00:16 < domas> well, I know what they rolled into it :-) 00:16 < domas> most of it is public 00:17 < Diablo-D3> yeah, I know they've submitted patches 00:17 < Diablo-D3> you missed out on an earlier statement 00:17 < Diablo-D3> mysql wants to add transactions to myisam 00:17 < Diablo-D3> if this happens, mysql may, conceivably, not suck 00:17 < domas> big shops use purely innodb anyway 00:18 < domas> for now :) 00:18 < domas> so nobody really cares about whether myisam sucks or not 00:18 < Diablo-D3> innodb is slower than pg, and still has that "runs out of hd space, and your db is corrupted the whole way through" bug 00:18 < Diablo-D3> they never fixed it 00:18 < domas> how does InnoDB corrupt diskspace when runs out of diskspace? 00:18 < domas> ergh, tablespace 00:18 < Diablo-D3> dunno, it just does 00:19 < domas> ghm, not really :) 00:19 < Diablo-D3> I've never had it happen because I don't use mysql on anything serious 00:19 < Diablo-D3> I've only heard about it from 32482340923840834 admins who've had it happen 00:19 < domas> I never had it happen, even though I use mysql in multiple serious places :) 00:19 < domas> thats a big number of admins you know 00:19 < domas> you probably don't use PG on anything serious too 00:19 < domas> if you think that innodb is slower :) 00:19 < Diablo-D3> I do, but not for any website stuff 00:19 < Trystan> a big number of admins who use mysql on something serious to say no less. 00:19 < domas> Trystan: ;-) 00:20 < Diablo-D3> Trystan: hah 00:20 < Trystan> :) 00:20 < Trystan> have fun with your discussion 00:20 < Trystan> im off to bed 00:20 < domas> Diablo-D3: anyway, back to my original questions 00:20 < Diablo-D3> domas: this is not the discussion I really cared about though 00:20 < domas> innodb clusters data by PK 00:20 < Diablo-D3> if you can get mysql to not suck, fine 00:20 < Diablo-D3> a lot of people have managed that 00:20 < Diablo-D3> it usually involves not sucking at sql in the first place, etc etc 00:20 < domas> PG clusters data by... oh wait, it doesn't 00:21 < domas> once you grow your datasets, locality matters 00:21 < domas> (with SSDs it probably won't ;-) 00:21 < Diablo-D3> I've never used the cluster command, btw 00:21 < domas> that just tells how small your datasets are ;-) 00:21 < Diablo-D3> well, yeah 00:21 < domas> or how small the load is 00:21 < Diablo-D3> the largest dataset I've used is only like 3.3 million rows 00:21 < Diablo-D3> wikipedia adds that much a day or something >_> 00:22 < Diablo-D3> but I'm trying to reduce load at the beginning, not the end 00:22 < Diablo-D3> varnish + lighty + fastcgi'ed perl (using memcached where appropriate) 00:22 < domas> and? 00:23 < Diablo-D3> and that should have a large impact 00:23 < domas> who doesn't do that kind of setup? 00:23 < Diablo-D3> apparently wikipedia doesn't 00:23 < domas> we use squid+apache+mod_php 00:23 < domas> how is it worse than your setup? 00:23 < Diablo-D3> squid sucks dick 00:23 < domas> varnish has issues too 00:23 < domas> does varnish support object streaming? 00:23 < Diablo-D3> need more context, whats object streaming? 00:24 < domas> ability to serve the object before backend finished serving it 00:24 < domas> why would lighttpd+fastcgi be much faster than apache/modphp? :) 00:25 * ToreadorVampire apologises for starting this, although the conversation I started had NOTHING to do with mysql or google, or erm ... anything ... 00:25 < domas> hehe 00:25 < Diablo-D3> I think varnish can stream data like that, domas 00:25 < werdnus> ToreadorVampire: hehehe, but it's fun to watch! 00:25 < ToreadorVampire> My original conversation was on C#/Apache2_mod_mono versus Perl 00:25 < ToreadorVampire> Wheeeeeeeeeeeeeeeee 00:25 < domas> see, most of your stuff is "I think" 00:25 < domas> most of my stuff is "I have worked on that" 00:25 < domas> there's a bit of difference there ;-) 00:25 < Diablo-D3> when I say "I think", it means I haven't googled the answer yet 00:25 < Diablo-D3> varnish _does_ have a decent FAQ, you know 00:26 * ToreadorVampire isn't really watching, went back to work a long time ago, I just un-minimise my xchat window from time to time and have a look at the monster I have created ;) 00:26 < domas> Diablo-D3: I know, I've seen varnish code 00:26 < domas> I have commit access to lighty too 00:26 < domas> ghm 00:26 < domas> I've written patches for squid 00:26 < domas> for mysql, for php, for PG, for .. 00:26 < domas> ergh. 00:27 < domas> I don't need to google to support my "I think" 00:27 < Diablo-D3> um, good for you 00:27 < domas> indeed 00:27 < Diablo-D3> varnish still does serve static data faster than squid though =P 00:27 < domas> ToreadorVampire: btw, we had lots of fun with Mono vs GCJ ;-) 00:27 < domas> Diablo-D3: lack of ability to stream is a bit frustrating 00:28 < domas> Diablo-D3: it starts serving data once it is in varnish memory 00:28 < ToreadorVampire> Oh, I don't use mcs/gmcs for Java, only C# 00:29 < Diablo-D3> domas: if it does, that may be by design 00:29 < domas> Diablo-D3: see, not every design decision is good ;-) 00:29 < Diablo-D3> domas: its not entirely an issue unless you're streaming extremely large files 00:29 < Diablo-D3> Im not saying its a bad design decision 00:29 < Diablo-D3> if there is a net gain out of this, then it should be done 00:29 < domas> well, 'extremely large' is different concept once you serve 50k objects a second 00:30 < Diablo-D3> well, when I say extremely large, I mean as in actual media files 00:30 < Diablo-D3> movies, music, hq images, etc etc 00:30 < domas> ToreadorVampire: we were deploying search once, and as JRE was non-free we had a choice to run Lucene either on GCJ or Lucene.NET kind of thing on mono 00:30 < Diablo-D3> that really should be done by a separate cluster running lighty and nothing else, no dynamic content or anything 00:30 < domas> ToreadorVampire: it was fun that .Net was more free than Java at one point in time 00:30 -!- TheKing [~deathking@oooa-02-84-442-0.phlapa.east.verizon.net] has joined #rapidxen 00:31 < domas> Diablo-D3: 100k file is HQ? 00:31 < Diablo-D3> domas: no, but it may be not worth serving 00:31 < Diablo-D3> the only thing you want varnish to serve in that vein is images that every single page has 00:31 < domas> whole internet is not worth serving 00:31 < Diablo-D3> that... may be true 00:31 < domas> anyway 00:32 < domas> I want frontend cache to be way more aggressive than that 00:32 < Diablo-D3> non-text content for the entires in wikipedia still would be handled under a different cluster in my design 00:32 < domas> that needs aggressive evictions too, what varnish didn't support until recently 00:32 < domas> we are always considering varnish, there're pros and cons 00:33 < domas> I'm not telling it is useless shit, I'm just telling, that we know the technology, and it doesn't always do what we need 00:33 < domas> you look at a peak of iceberg and say "yay, I can do this with my brilliant design" 00:33 < Diablo-D3> btw, domas 00:33 < domas> while in reality there's tons of submarine engineering 00:33 < Diablo-D3> Im trying to solve a similar problem 00:33 < Diablo-D3> you know of 4chan, yes? 00:34 < domas> yes ;-) 00:34 < Diablo-D3> you know that 4chan's software completely sucks ass, right? 00:34 < domas> I don't know that 00:34 < Diablo-D3> ahh, well you're in for a treat: it does 00:34 < Diablo-D3> the bulk of it was written a decade ago by a japanese guy who didnt know how to code 00:35 < domas> that can be told about most web software 00:35 < werdnus> haha, including MediaWiki 00:35 < Diablo-D3> moot has gradually made it worse over the years 00:35 < domas> that too 00:35 < TheKing> I can haz cheeseburgur? 00:35 < werdnus> MediaWiki was Magnus' first PHP project, IIRC. 00:35 < Diablo-D3> ichc runs on wordpress 00:35 < Diablo-D3> I HATE WORDPRESS 00:35 < Diablo-D3> I use it on my blog and it makes me sad ;_; 00:36 < Diablo-D3> anyhow, re: 4chan 00:36 < domas> Diablo-D3: once upon a time I made wordpress suck way way less 00:36 < Diablo-D3> moot tried to throw hardware at the problem 00:36 * domas did the 2.1 performance work 00:36 < Diablo-D3> domas: Ive been using wordpress since before 2.x 00:36 < domas> good! me too! 00:36 < domas> we have something in common 00:36 < Diablo-D3> sometime in november marks the start of my 5th year 00:37 < Diablo-D3> anyhow, moot tried to throw hardware at his problem, and he made it much. much. worse. 00:37 < Diablo-D3> I'm attempting to write software that can do imageboarding without being epic fail 00:38 < Diablo-D3> not that moot will ever run it (god forbid moot actually does his job), but at least some chans out there will suck less. 00:38 < Diablo-D3> I'm trying to aim for running a 4chan sized site on a third of the hardware moot has 00:39 < domas> good! 00:39 < Diablo-D3> so, its not like you and I have dissimilar goals 00:40 < domas> meh 00:40 < domas> performance engineering isn't that difficult 00:40 < domas> you just have to understand your costs 00:40 < domas> no magic buzzword bingo will help 00:41 < Diablo-D3> you don't even have to understand them that well... you just have to be willing to benchmark multiple methods 00:41 < domas> meh, I prefer profiling over benchmarking :) 00:42 < domas> benchmarking skews everything 00:43 < Diablo-D3> yeah, but it tells you which methods _don't_ work 00:43 < ToreadorVampire> Note to self: "Never say anything to Diablo-D3" 00:43 < domas> =) 00:43 < domas> I prefer understanding stuff :) 00:43 < domas> rather than guessing 00:43 < domas> thats why I can tell you why MySQL is better than PG! :-D 00:44 < Diablo-D3> I dunno, I rather like PG 00:44 < domas> I like PG too 00:44 < domas> I know strengths, I know weaknesses 00:44 < domas> actually , I made initial mediawiki support for PG :) 00:45 < Diablo-D3> heh 00:45 < Diablo-D3> domas: convince me to use mysql. 00:45 < werdnus> for what? 00:45 < domas> I don't really care what you use 00:45 < domas> I'm not in Sales/Marketing 00:47 < Diablo-D3> werdnus: the worst thing ever to happen to the internet: imageboard software that works 00:47 < Diablo-D3> domas: well, why would I use mysql 00:47 < werdnus> hey, incidentally, does anybody know if I can get a vhost with rapidxen? 00:47 < Diablo-D3> because I can't seriously see any pros to it 00:47 < werdnus> On, you know, the topic of the room. 00:47 < Diablo-D3> a ... vhost? you mean a vps, right? 00:48 < TheKing> XD 00:48 < werdnus> heh, let me de-IRCify it 00:48 < domas> Diablo-D3: MySQL development was influenced by big shops running big things (and paying money) 00:48 < werdnus> I mean, how can I set the reverse DNS of my VPS? 00:48 < domas> Diablo-D3: it has most of stuff what high-load webshops need 00:48 < Diablo-D3> werdnus: ahh, file a ticket 00:48 < Diablo-D3> werdnus: nenolod or one of his slaves will get to it soon 00:49 < domas> Diablo-D3: anyway, my favorite difference is simply how underlying data is handled 00:49 < domas> nothing at the feature side 00:49 < Diablo-D3> domas: but the only thing I care about is ACID, data integrity outside of the concept of ACID, and performance. In that order. 00:49 < domas> the 'everything is a tree' in InnoDB concept, ability to do covering index reads, etc 00:50 < domas> you get all that with mysql5 strict mode %) 00:50 < domas> anyway 00:50 < domas> if you were after web-scale performance, you'd want to use mysql :) 00:51 < Diablo-D3> if I was performance first, I'd probably use myisam or something 00:52 < domas> not really 00:52 < Diablo-D3> my queries aren't particularly complex 00:52 < domas> at high concurrency innodb is fast 00:53 < Diablo-D3> I have few writes. 00:53 < Diablo-D3> and reads can be blunted away using memcached abusively 00:54 < domas> doesn't work that well with range-reads in scale-out :-) 00:54 < domas> here again, data locality is the king 00:54 < Diablo-D3> well, I don't have 234098230498209480829348023948012840128402350295 items of data 00:54 < Diablo-D3> so, theoretically, I can store everything in memcached 00:54 < domas> then you can store everything in text file too 00:54 < domas> :) 00:54 < TheKing> Highlight D: 00:55 < Diablo-D3> I thought about it, but then thought better of it 00:55 < domas> TheKing: ;-) 00:55 < Diablo-D3> peak /b/ is about 50 posts a minute