Archive for April 2012

Twitter, Facebook MySQL trees online – pushing MySQL forward

Just yesterday, I’m sure many saw Twitter opensourcing their MySQL implementation. It is based on MySQL 5.5 and the code is on Github.

For reference, the database team at Facebook has always been actively blogging, and keeping up their code available on Launchpad. Its worth noting that the implementation there is based on MySQL 5.0.84 and 5.1.

At Twitter, most of everything persistent is stored in MySQL – interest graphs, timelines, user data and those precious tweets themselves! At Facebook, its pretty similar – all user interactions like likes, shares, status updates, requests, etc. are all stored in MySQL (ref).

The media has picked up on it too. A fairly misinformed piece on GigaOm (MySQL has problems focused on Stonebrakers fate worst than death? Pfft. Facebook wants to move its code to github? Read the reasoning — its spam handling on LP.), and a shorter piece on CNET.

Both Twitter and Facebook code trees mention that its what they use in their environments, but it’s not supported in any way, shape or form. Facebook recommends Percona Server or MariaDB. Facebook also has tools like online schema change in the repository, amongst others like prefetching tools written in Python.

I haven’t had the chance to play with the Twitter release yet, but it looks like this can only push Percona Server and MariaDB forward. Based on 5.5, some of these BSD-licensed features can make it in, and some have already made it in I’m sure. And what pushes these servers, will push MySQL forward (see lots of new features in MySQL 5.6).

On a personal note, it is amazing to see some MySQL-alumni push this forward. At Twitter, there’s Jeremy Cole and Davi Arnaut. At Facebook, the team includes Domas Mituzas, Harrison Fisk, Yoshinori Matsunobu, Lachlan Mulcahy. Nothing would be complete without mentioning Mark Callaghan (though not-MySQL alumni, active MySQL community member) who led a MySQL team at Google, and now at Facebook.

Square helping the everyday entrepreneur

I arrived in San Francisco yesterday (Easter Sunday) and my usual shuttle service to Santa Clara had some issues fulfilling my journey (some 1h45m wait). So I took a taxi. As soon as I arrived at my destination, and he knew I was a techie, he said: “Look, a San Francisco startup has this cool device that helps independent entrepreneurs like me accept payments by all kinds of credit cards.”

He didn’t know what the device was called, but I immediately recognised it as the Square app (I’ve recently written about this space). On an Android phone. Found it interesting during tipping: 15%, 20%, or 25%. No option to enter your own choice. Enter your email address for a receipt (there’s also a phone number option, which I am sure I can’t use). Then the taxi driver writes one physically for you as well. I presume the driver gets money in his bank account in a rather short period of time.

How did it use to work? A manual scan on carbon paper with a device the credit card company provided. Probably submit the receipt and get paid within a much longer period of time. Or it used to be plain old cash — most drivers would never accept a card, preferring only cash.

Square uses: CentOS, Puppet, Ruby, Graphite, MySQL, PostgreSQL, Redis. They also build the service on the JVM orchestrating Ruby on Rails, Sinatra, JRuby, MRI and Java. Incidentally, love the way they hire people — tell them what is required of them, then ask them to complete a task/programming example.

Square-like payment devices in Asia

Ever since I heard about Square, I was impressed. I was wowed when they used Square to accept payments at WordCampSF 2010 (May 2010). It all just felt right. Swipe the card, email the receipt. The experience felt like making a purchase at an Apple Store with their handheld point-of-sale systems. Square sadly never made it out of the USA and there were rumours that VeriFone and others were going to do similar things. Naysayers claimed security problems (square is magnetic stripe based, rather than chip-based last I used it). Alas, its 2012 and I’ve still not seen anything usable.

So it pleases me to see Swiff in Singapore and the fact that PayPal Here (product page) will also launch in Singapore. Malaysia seems to have SoftSpace. However its April 2012 now and the first reliably available service is Swiff.

Square is upfront with their costs – it basically takes 2.75% of the transaction. That’s considerably higher than the 1.8% charged by Malaysian banks. However it takes away the burden of renting a terminal which can set you back RM130-150/month, with the only option of a refund on that exceeding RM10,000 of transactions per month. And the chances that the terminal accepts “everything” tends to be slim (its usually just Visa/MasterCard). Swiff lacks fixed rates at the moment, and SoftSpace claims to be inundated with queries (but will support more security and have a chip reader).

PayPal might crack this though. They have experience with dealing with banks and banking regulations (Malaysia famously has BAFIA as law). Many tech-savvy people already tend to have a PayPal account (and if they don’t, maybe they’ll start one). They’ve also gone out with a flat 2.7% transaction fee.

I’m looking forward to more competition in this space. It can only lead to lower rates. And with bazaars, conferences, etc. this sort of thing can be very useful.

Food in Dublin, Ireland

Creamier, tastier but considerably quite pricey - a pint sets you back 4.50-5.20 euros. Sin tax must be high, like in malaysiaSteak and Guinness pie, mash and a pint - supposedly very traditionally IrishIt is not hard to find a pub in Dublin, so go to any and they would probably serve you an excellent pint of Guinness. It may not be the cheapest though — 4.50-5.20 Euros per pint. Sin tax must be high.

I had Hanley’s Cornish Pasties. Its like a stew, put into pastry ;) A must try. Many pubs also serve a steak & Guinness pie… Well worth eating a traditional cuisine.

We did end up eating some very nice sushi as well as Lebanese food. All around the Grafton St area and Dublin 2/Dublin 4.


i