Archive for the ‘Uncategorized’ Category

Percona Live MySQL Conference 2012 – day 1

This week I am fortunate enough to be sent to the Percona Live Conference by my company. I’ve been sitting here tonight, pondering and recalling sessions for the day; trying to think of all those things that I learned I’m was doing wrong or better tools I could be using. And, since I don’t blog enough lately, here we go!

Nothing earth-shattering so far, but some takeaways from sessions I hit up today:

Building a Multi-Master, Mult-Region Database Infrastructure in Amazon EC2

When I first realized this was going to be just a demo of some commercial software (Tungsten Enterprise), not a “lessons-learned” type of session I was pretty disappointed (I didn’t read the program carefully enough!). As the speaker got deeper into the talk, though, I became more and more impressed with the technology. Continuent has built some interesting technology, letting you not only failover (and failback!) individual nodes easily, but also entire clusters. They also have some pretty hot backup/restore/replication functionality as well.

One to Many: The Story of Sharding at Box

Definitely the most engaging session of the day for me, personally. The session was a pretty open story about Box’s migration from a single database architecture into a sharded architecture (which seems pretty new for them). There were quite a few gotcha’s along the way, especially on the application side. One of the more relevant pieces for me was in their clever use of the Tungsten Replicator to move databases between clusters in a fairly ad-hoc fashion.

The 5 Minute DBA: MySQL DBA 101 for Non-DBA’s

While I wouldn’t exactly call myself a “Non-DBA”.. I know enough to be break things worse than they already are, and I am certainly not a full-time DBA. This was a great session a great overview of the basics (needed occasionally), and a solid overview of some of the tools available in the Percona Toolkit that I know I should be using but currently am not. For shame.

Backing up Facebook

I have to be brutally honest and say attending this session was easily the biggest letdown of the day. I was hoping for more from Facebook on this one. We spent about 25 minutes listening to them talk about how they use mysqldump every day on every database server.. in a non-consistency-ensuring way. And when a pointed question was asked about what would happen when they would need to recover a host server to a point in time? The question was basically brushed off saying they’d use some other mechanism to restore (presumably Xtrabackup or something similar).. I thought that’s what we were here for? Whatever. I did have some interesting hallway conversation with a couple of fine folks about how perhaps there’s some interestingness happening on the database that they’re not wanting to talk about that solves this problem for them. That very well could be (and probably is) the right answer, but then why are they at a conference giving a session on doing backups? Ugh. Again.. whatever.

Scaling MySQL Databases for the Web

This was another title that decieved me (‘fool me twice’, or something like that..). It was less about scaling MySQL and more about a tool developed in-house at YouTube that currently front-ends all MySQL traffic there, doing some intelligent caching and optimization.

One more thing

I usually don’t enjoy or look forward to walking around in the exhibit halls at conferences like this, but I did talk with one very interesting vendor that I hadn’t heard of before. NuoDB seems to be working on a pretty interesting product that’s just about ready to release. I don’t really have the time to dive into details about how it supposedly works, but they seem to understand and handle the scaling-back part of elasticity better than most other database vendors I’ve talked with. They also have a replication strategy that’s similar to the way bittorrent works which is a pretty awesome idea. There seems to be nothing open (as in source) about the product, except they want others to write various language bindings for them, so we’ll see how well this thing takes off. Definitely an interesting product to watch, though.

Tags: ,
Filed under Uncategorized : Comments (0) : Apr 12th, 2012

Velocity 2010 Wrapup

I got the opportunity to attend the Velocity 2010 Web Performance and Operations Conference last week with most of the rest of the guys from the Ops team at SugarCRM. It took place right around the same time as some other stuff I had going on, so I wasn’t able to hang out “after hours” as much as I would have liked, but it was great to listen in on some great sessions and talk to people far smarter than I!

Some of the sessions to highlight:

There were also a number of sessions on different performance tools. Hopefully posts on some tested out for real are soon to come.

On the slightly less technical side, there were some great talks about culture, including quite a few talks on DevOps (more on that in a later post):

Another great set of videos from the conference is the “Choose Your Own Adventure” talks with Adam Jacob from Opscode. You can head over to one of the videos and see them all listed in the related videos. I didn’t get to that session, but watched all the videos and wish I had now :) .

It was a great few days and was followed by DevOpsDay USA over at the LinkedIn campus, more on that to come!

Tags:
Filed under Uncategorized : Comments (1) : Jun 30th, 2010

Photo Publishing from iPhoto to Drupal

This last week I’ve been working on a site for posting photos to share with family/friends/etc. I have my photos all organized nicely in iPhoto and thought iWeb would be a slick way to export those pictures right to my website (via an FTP server I’d setup, at least). (Why not to Flick/Facebook or other, you ask? I want to still “own” my pictures) I’ve used iWeb in the past to create little static sites and thought it would work wonderfully for this. After all, everything Apple makes “just works”, right? Turns out it’s not quite everything. Apparently, iWeb exported photo galleries are a no-show in Firefox (and Chrome) (fixes posted didn’t seem to work for me :( ). Would’ve been nice to know before I started, but I guess I know now.

Anyway, so I started trying to find a nice piece of software to publish my pictures fairly easily from iPhoto. Since I would rather have a CMS (but was willing to put up with the likes of iWeb for organization integration), I decided to take a look at a few open source products to see if one of them would fit the bill. I found an awesome combination that I thought was worth mentioning.

I found the iPhoto2Gallery plugin for iPhoto. The website says it works with iPhoto 08 but it seemed to work just fine for me on iPhoto 09. After I setup a Gallery2 site quick and the plugin didn’t seem to login. Then, when searching for a solution for that problem I hit another lucky break, I ran across this module for Drupal to emulate the Gallery API for publishing! Once the module is enabled, I tried it out and it seems to work flawlessly!

If you’re looking for a slick way to publish your photos from iPhoto to something that’s not Flickr or Facebook and are not wanting to pay for a .Mac account, check out this combination of software. It’s pretty slick!

Just as a note, the default Drupal gallery module is ‘ok’. It’s much better if you add the previous/next buttons :)

Filed under Uncategorized : Comments (1) : Apr 19th, 2010

PHP Apps: Apache vs Nginx

I’ve always read (and witnessed) that nginx is a far more efficient web server than Apache. In fact, people are noticing in vast numbers as evidenced by the latest numbers from Netcraft on web server market share. nginx market share has exploded out of nothing in the past couple of years (it’s only been around since 2005). nginx uses less memory and it much lighter than Apache, so for obvious reasons, it has become very popular. It is incredibly fast and powerful as an http and mail proxy, but just how does it do as a stand-alone PHP application server?

For myself, I wanted to know if WordPress would run faster on an nginx or Apache server. There are plenty of how-tos out there on setting up nginx to use fastcgi for PHP applications, so I won’t go into that, but I happened to use this one.

For my little test, I used Apache Bench (ab) on a separate machine attached to the same switch. I took four tests and averaged the total time to complete the requests given by the output of Apache Bench. Below is a test of 100 requests one at a time (total time in seconds, lower is better):

nginx-v-apache-c1

That wasn’t at all what I was expecting. It wasn’t any different at all, really. The numbers were: 40.00 seconds for nginx and 40.04 for Apache. Add a little roundoff error in there and we really can’t say much about the results.

The numbers get a little more interesting when I start adding a little concurrency:
nginx-v-apache-c3

nginx-v-apache-c6

nginx-v-apache-c40

Definitely a trend, but even at 40 concurrent connections it’s not really anything worth writing home about. With a little tweaking I’m sure the concurrency issue can be throw into a whole ‘nother direction, but I just took what came out of the “box”.

Another interesting thing that I noticed was the memory usage between the two. With Apache, the web server used 23400K of memory. nginx used significantly less memory than that weighing in at a measly 4356K. However, since it can’t interpret PHP on its own and uses fastcgi, we have to add that in as well. That adds 19228K of memory, totaling 23584K, slightly more than Apache!

Apache and nginx seem to be almost the same when being used to run straight PHP applications. If you’re looking for a lighter-weight straight application server for PHP, I probably wouldn’t look any further than the LAMP stack since it has been made extremely easy to install and configure on popular Linux distros. Start adding load balancing, web proxies, mail proxies, and fault tolerance and then I’d start looking at nginx. Otherwise, I’ll be sticking with Apache for my PHP apps for now.

Tags: ,
Filed under Uncategorized : Comments (0) : Aug 21st, 2009

2X App Server Client on 64-bit Ubuntu

Today I got to replace my aging Ubuntu desktop with a new machine. We’ve been using 2X for some time to run Windows apps on our Macs and I was pumped a few months ago to figure out that they had packaged a new version of their client for Ubuntu (well, Debian but it works on Ubuntu).

When I got up and running, I went to install the 2X client again:
wyatt@host:~$ sudo dpkg --install 2XClient.deb
[sudo] password for walterw:
dpkg: error processing 2XClient.deb (--install):
package architecture (i386) does not match system (amd64)
Errors were encountered while processing:
2XClient.deb

Wrong architecture. Dang.

Not to worry! 2X also distributes the binaries in a tarball so, using the 32-bit libraries, one can just run the binaries.

First, download the tarball. You can download it using your browser from their downloads page, or from the terminal via:
wget http://www.2x.com/downloads/AppServer-LoadBalancer/2XClient.tar.bz2

Untar it:
tar jxf 2XClient.tar.bz2

Copy the contents to /opt:
sudo cp opt/2X /opt/

Install the ia32libs:
sudo apt-get install ia32-libs

You can then create a launcher within the Gnome menu or whatever desktop manager you want.

To create the launcher, the command to start the client is:
/opt/2X/Client/bin/2XClient

Create 2X Client Launcher

Create 2X Client Launcher

That’s it! The 2X client should launch and run beautifully.

Tags:
Filed under Uncategorized : Comments (1) : Aug 12th, 2009