Long ago, in an LGF application that relied on a custom-made flat file database now lost in the mists of antiquity, we had a feature that showed the actual search queries that brought visitors to our humble abode. This feature was dropped when we switched over to a grown-up MySQL database, ...
Little Green Footballs, Tech Note, LGF Blog Engine, Referrers, Search Engine, MySQL
Running a site like LGF with a custom-designed content management system is a constant process of finding and opening bottlenecks. If you’re lucky, the bottlenecks result from an easily addressed database design problem. Tonight I discovered a bandwidth bottleneck that negatively affected every page served by the hamsters in our web ...
Here are some statistics from our database server that I find exceptionally gratifying; this post can also be viewed as an open thread if you’re not in the mood for stats. These numbers indicate a very healthy server running at close to peak efficiency, which is why I’m so darn ...
This one’s going to get knee deep in geekspeak before you know it, so feel free to skip over and treat it as an open thread — my feelings won’t be hurt. It’s all about the backups. You don’t know how important they are until some piece of critical hardware fails ...
Stinky and I are finally getting around to a much needed redesign of the backup system for our MySQL database, to give us regular nightly automatic backups instead of the semi-manual backup we’ve been doing. Imagine the great noise that would issue forth from the lizard army if the server ...
Hey, anyone notice how much better LGF is behaving? The hamsters haven’t even hiccuped all week, and response time is greatly improved overall. The Safari browser has a cool Web Inspector that shows all kinds of stats about a web page as it loads, and it reports that loading the ...
Here’s an open thread for Monday morning; the latest tweaks to the database layer have made a big difference today, as traffic did its usual Monday morning surge. According to mytop, more than 70% of our database requests are being served out of the cache, which makes our MySQL server much ...
After scratching my head, pulling out my hair, consulting the Necronomicon, and Googling like a fiend for terms like “persistent connections” and “query cache bug,” I’ve made some changes to the LGF Blog Engine database layer that seem to have greatly improved performance. I didn’t want to say anything ...
I’ve just discovered a problem that was causing serious slowdowns at LGF, and fixed it. As soon as I implemented the fix, the site started reacting much faster. So here’s an open thread... (Geek note: I needed to add an index to one of our MySQL database tables, for a very common ...
UPDATE at 11/4/07 2:05:42 pm: This is what I’m reading in the bathroom, but please note: the picture was not taken in my bathroom. I do not keep a laptop computer in my bathroom.
LGF, Photograph, Technical, Javascript, PHP, MySQL, CSS
I’m about to start that index rebuilding process I mentioned earlier, so we’ll be going into “placeholder” mode in a few minutes. As the man said, we’ll be right back...
More than 60% of LGF readers agree that the hidden hand of Ron Paul was behind our server’s hard drive crash last weekend: [Poll] Unfortunately, as I’ve been cleaning up the mess, I’ve discovered something that will make it necessary to take LGF offline for a few hours: the indexes for the ...
We took the site offline for a few minutes because there are still some things that need to be tweaked and/or fixed after our so-called “hard drive failure.” We may need to do this once or twice more, but Stinky B. says he’ll try to keep the downtime to a ...
I still have quite a bit of work to do to clean things up around here (with Stinky’s help of course) after the hard drive crash. Lots of virtual nooks and crannies that need to be inspected. And we all know how painful that can be ... so here’s an ...
It’s amazing that hard drives don’t fail more often; a metal disk rotating at close to 200 miles per hour, with a read-write head floating above it by less than the thickness of a human hair. It’s like flying a 747 an inch off the ground, for years. Well, on Saturday ...
This post is going to be totally geeked out, so feel free to tune out if you wish. I ran into something odd in the last few days while experimenting with MySQL’s query cache, and I’m wondering if any of our DB ninjas might know the reason; Google has been worthless ...
Ooo. We have a new server tonight, a third spanking new prison for some unlucky hamsters. I’m rubbing my hands in diabolical glee. Since I know we have a whole lotta geeks reading (or at least 5), I’m going to open the floor for opinions on the best way to use ...
LGF Janitorial Engineer Stinky Beaumont wishes to apologize for the occasional slowdowns and connection errors you may have experienced this evening. Stinky would like you to know that this time it wasn’t a traffic spike, but some deliberate benchmarking and testing that has to happen on a live system—or works ...
LGF, Technical Info, Blogosphere, Traffic, Makeover, Blog Engine, MySQL, Refactoring, Table Locking, Contention, Benchmarking
Why didn’t anybody tell me about these table locking issues (nooooo!) in MySQL? This is actually good news, because the overwhelmingly geeky page linked above helped me to solve an extremely annoying problem that has been causing sporadic, mysterious lockups at LGF since the database makeover. Who knew that there was ...
LGF, Technical Info, Blogosphere, Traffic, Makeover, Blog Engine, MySQL, Refactoring, Table Locking, Contention
New features tonight in the LGF search page: 1) One big problem with the old design was the way you specified the time “window” for your search. You could search backwards from the current date by increasing amounts—last day, last week, last month, last year, etc. This approach bogs down more ...
In a big improvement, the LGF poll application now uses Ajax (Javascript and PHP) techniques to let you vote and see the results without reloading the page. The ‘Show’ button will still take you to a separate page, where you can view and vote on any LGF polls that are currently ...
LGF, Technical Info, Database, MySQL, Abstraction Layer, PHP, Refactoring, Polls, Olmert, Israel, Winograd
Another piece of the LGF Blog Engine’s MySQL makeover was completed over the weekend—our polling application. This was kind of a tough one to convert from flat files; had to rethink the entire data model in SQL terms, and ended up with a complex but very flexible multi-table design that ...
LGF, Technical Info, Database, MySQL, Abstraction Layer, PHP, Refactoring, Polls
When I rebuilt the LGF Blog Engine to use MySQL, and revamped our login and authentication code to be more secure and more Web 2.0-ish, one of the features that didn’t survive the change was our old preferences page that let you choose which fonts were displayed for the main ...
LGF, Technical Info, Database, MySQL, Abstraction Layer, PHP, Refactoring, Comments, Login, Ajax, Security, Preferences
Yes, it’s another in the long-running series of updates and announcements about our new Ajax-driven login system. The latest enhancement makes the system much more secure. Previously, your password was being transmitted in plain text when you clicked the log in button. (In fact, it’s been this way for years at ...
LGF, Technical Info, Database, MySQL, Abstraction Layer, PHP, Refactoring, Comments, Login, Ajax, Security
Because I’m getting a bit weary of answering emails about why the login system isn’t working, from people who’ve set their browsers to refuse cookies, the requirement to have cookies enabled for logging in is now strictly enforced. Before this rule was put in place, if you turned cookies off you’d ...
LGF, Technical Info, Database, MySQL, Abstraction Layer, PHP, Refactoring, Comments, Login, Ajax, Security, Cookies