Off to MySQL Con

I’m presenting a 25-minute talk on “Thinking about Performance” on Wednesday, around 5:25p at the Percona Performance Conference. My plan is to talk about performance testing and how to go about useful optimizations. This will be in the context of the PostgreSQL Performance Pad testing, and the performance-focused talks Mark Wong has been giving at Portland State University. Stop by if you get the chance – and you’re in San Jose! It’s free.

Robert Treat will be giving a talk on PostgreSQL at 11:15am that should be good, and we’re having a BoF during MySQL Con at 7:30pm. Quite a bit of Postgres-focused content at MySQL Con on Wednesday 🙂

I’m sad that I’ll be missing the Open Source Bridge Town Hall tomorrow night, but you should go! 🙂

Greg’s THREE talks at PostgreSQL Conference East

Greg Sabino Mullane will be presenting three talks at PostgreSQL Conference East this weekend in Philadelphia, at Drexel University. The talks are listed on the site, and here’s what he’ll be speaking about:

Bucardo
April 5, Sunday, 10am
Bucardo is a replication system for Postgres that uses triggers to asynchronously copy data from one server to many others (master-slave) or to exchange data between two servers (master-master). We’ll look at replication in general and where Bucardo fits in among other solutions, we’ll take a look at some of its features and use-cases, and discuss where it is going next. We’ll setup a running system along the way to demonstrate how it all works.

Monitoring Postgres with check_postgres.pl
April 4, Saturday, 2:30pm
What should you monitor? And how? We’ll look at the sort of things you should care about when watching over your Postgres databases, as well as ways to graph and analyze metadata about about your database, with a focus on the check_postgres.pl script.

The Power of psql
April 4, Saturday 10:30am
All about everyone’s favorite Postgres utility, psql, the best command-line database interface, period. We’ll cover basic and advanced usage.

I’ve seen a few of Greg’s talks — The Magic of MVCC, Cloning an elephant and a few others. He’s a great speaker and cool guy. And he’s my boss. But I’m not just saying that because he’s my boss! Really!

He doesn’t like to brag about himself, so I’m gonna help him out. He maintains DBD::Pg, check_postgres.pl, Bucardo and has had MANY patches committed to PostgreSQL. He’s also a volunteer for the PostgreSQL sysadmins team, and specifically helps maintain the git repo box. He’s a contributor to the MediaWiki project. He’s on the board of the United States PostgreSQL Association. He’s basically awesome.

If you’re gonna be there, you should check out his talks. And if you can’t make it, here’s hoping Josh Drake records the talks and shares them with us all! 🙂

Open Source Bridge hackathon on Sunday

Igal just posted to the osbridge-technology list:

Join us to work on one or more of these for Open Source Bridge this weekend:

1. Code: Add features and specs to the OpenConferenceWare conference
app. Join in if you’ve got Ruby on Rails coding experience, such as
contributing code to Calagator.

2. Text: Compose documents for outreach to user groups, educational
institutions, open source projects, and the like.

3. Outreach: Contact user group leaders, educators, open source
projects, mailing lists, etc to encourage them to spread the word about
the conference and submit proposals.

We’ll meet up at Ristretto[1] at 10am, then move on to a working lunch
nearby at the Lompoc 5th Quadrant[2]. Some members will leave as soon as
2pm, but others will stay on later. Join us for however much of this you
can.

Thanks!

-igal

[1] Ristretto Coffee: 3808 N Williams Ave, Portland, OR 97213
[2] Lompoc, 5th Quadrant: 3901 N Williams Ave, Portland, OR

Join us! First three people to make it to Ristretto in the morning get one of these open source nerd merit badges.

Report from SCaLE 7x

DSC_0079
Awesome booth volunteers Noel and Erez!

In the elevator this morning, a person asked me if I was with the SCaLE conference. He started by saying that he was really happy that we (the people attending the conference) were there, and that he hoped for Linux to be successful. And then he said, “I’m a linux supporter, but I’m a windows captive.”

Because I work every day with free software, I lose touch with people who feel trapped by their operating system. That moment in the elevator reminded me that not everyone is as lucky as I am!

This is my second year attending SCaLE. I’m just as excited as I was last year about the number of end users, systems administrators, and enthusiastic supporters of free and open source software. During Joe Brockmeier’s keynote, he asked the crowd to raise their hands if they were already contributing to an open source project, and less than 1/3 of the crowd raised their hands. Other conferences I attend seem to attract mostly people who are already contributors. I’m very happy to see SCaLE having a wider reach.

My favorite event was definitely the PostgreSQL LAPUG birds of a feather session on Saturday evening. We filled the room and had to fetch chairs from outside! Josh Berkus and Magnus Hagander provided some great slides that I used for a quick tour through new SQL programming, administrative and security features in the upcoming release of 8.4. This presentation was basically a tag team effort between myself and Josh.

More than 3/4 of the people had never attended a PostgreSQL user group meeting before, and I hope to hear that they all subscribe to the mailing list and attend some meetings!

We had great traffic at the Postgres booth. There were a surprising number of people who asked about migrating from MSSQL to Postgres. Fortunately, we had at least one person with a fair amount of Windows experience at the booth (Thanks, John!). I also was grateful that many people stopped by with follow up questions about the filesystems I/O talk I gave. I really felt like it was well received, and I hope that we end up with a few new recruits to our testing.

Great show! And now I’m off to relax downstairs before I work a downtime this evening 🙂

Gratitude, freedom and open source

Audrey just wrote a fantastic blog entry about Open Source Bridge, her thoughts about citizenship, and what it means to be a responsible open source citizen.

Yesterday, Forbes published a piece talking about the “open source collaboration gap” and waxed poetic about why it is that corporate IT doesn’t contribute back to open source projects the way that individuals do.

One possible explanation from the article is that there is really a gratitude gap – institutions just can’t feel gratitude or express gratitude the way that individuals can. I kinda like that idea. But paradoxically, Dan Woods then suggests that if we were to just measure the tangible benefits of open source, we’d have our argument for IT contributing back. Well, if the problem is gratitude.. I can’t say that I agree that more metrics are going to fix the collaboration gap.

So, I would try to solve this problem differently. I think that changing collaboration patterns happens one person at a time – with individuals deciding to pursue hobbies and work that interest them, hopefully doing work that matters. To make institutions better open source citizens, they have to change their policies and behaviors so that they encourage, rather than discourage individual contributions.

Encourage individuals to contribute to open source projects from inside large companies, and let individual interest and creativity guide those contributions. The Free Software Foundation was created by a guy who just wanted to solve a problem with a printer. If you run a company, let your employees solve their problems!

That freedom to think, be creative and do something that matters are the parts of my community and my work I most value.

So, if there’s something about free and open source software, your development community, your personal project that inspires you, please submit a proposal to our conference. We want to hear from you!

Photo courtesy of flickr user kalandrakas, under a Creative Commons license.

Waffle-induced development


My waffles will probably not look as good as this.

People often ask me for advice on how to motivate and get people excited about coming to meetings, participating in user groups and contributing to projects. I’m going to try to blog more about the things I do that work.

Friends in Portland know that I often use food (and sometimes alcohol) bribes to get them to come over to my house to hang out, and then do work that is best done with a group (recall a major weeding project in my front yard).

We needed a few good folks to help out with the next phase of our Open Conference Ware application, and so I decided to reuse this “get house chores done” trick to hopefully motivate a few hungry developers to work with us on the next phase of the project.

When I sent out the message, I got both an enthusiastic “Hell yes, I’ll come for waffles”, and an “Oh man, I already had plans — which, if they fall through, I will totally be there for the waffles.”

I’m sure that the good people who stepped up to help us would have done so anyway. But, if I can provide a warm breakfast while we hack away on wireframes, why not? And, after I tweeted what we were up to, I got another volunteer!

Image courtesy of rizkapb, Creative Commons 2.0 generic license.

FSM, visibility map and new VACUUM awesomeness


Heikki Linnakangas, listening as Simon Riggs sketches on the chalkboard.

Update: Heikki’s slides are here!

Heikki Linnakangas gave a presentation this past Sunday at FOSDEM about the improved free space map (FSM), which tracks unused space inside the database, and new visibility map, a bitmap which will indicate which data pages can be skipped during a partial VACUUM. This performance enhancement will affect all users of the upcoming 8.4 software release. You can see what the new FSM implementation looked like back in October from depesz’s blog.

Despite Heikki’s modest claim during the talk that the performance tests were inconclusive, the consensus among Postgres contributors is that this feature will result a substantial improvement in the performance of VACUUM for tables that are large, but have few UPDATEs.

The new free space map and Visibility map (in 8.4) and autovacuum (enabled by default starting in version 8.2) are huge administrative usability improvements to version 8 of Postgres. Prior to version 8.1, VACUUM had to be scheduled outside of database system. Autovacuum has been part of the core Postgres distribution for over two years, and is tunable via several global configuration parameters.

The visibility map enables partial VACUUMs — meaning that VACUUM no longer has to examine every tuple to update the FSM. The new FSM implementation eliminates two configuration parameters, effectively automating a formerly manual configuration process.

The new FSM is stored on disk in seperate files inside of $PGDATA/base/, and is cached in shared_buffers. The result is that the max_fsm_* configuration parameters are no longer in 8.4 — Postgres is able to track and adjust this data structure without user intervention.

A few critical features of the new FSM are:

* Now a binary tree structure
* Constructed using 1 byte per heap page
* The top level shows the maximum amount of contiguous space available
* The data structure is auto-repairing and can be reconstructed from the bottom

Previously, every time that VACUUM was run, the free space map had to be reconstructed from scratch. Now, individual nodes in the map may be updated (aka “retail” updates).

Visibility map is a bitmap of heap pages which tracks which tuples on pages are visible to transactions, and therefore not available for VACUUMing.

Previously, when VACUUM ran, it *had* to look at every tuple in a table, because there was no information about which pages may not have been updated since the last VACUUM. With the visibility map, VACUUM will now be able to perform partial scans of table data, skipping pages which are marked as fully visible. Partial scans means fewer I/O operations for VACUUM, and happier database administrators.

Simon Riggs just rocked my world.

I’m in Brussels for the FOSDEM conference, hanging out at the PostgreSQL booth, meeting my European colleagues, and running into friends.

PostgreSQL has a developer’s room and Simon Riggs just wrapped up a talk about Replication. I sincerely hope that the video of the talk turned out well, because it was the most inspiring and technically interesting talk I have seen in a very long time. Unfortunately, I don’t have a copy of the slides at the moment, but word is that they will be posted on the BSD wiki soon.

Simon focused on new features in 8.4 that affect file-based replication, also mentioning streaming, synchronous replication — which will not be included in 8.4, but is being actively worked on. He explained his rationale for objecting to the inclusion of the synchronous replication patches, mostly, I think, based on the complexity of the WAL archiving required as it was implemented.

Then, Simon launched into an in-depth tour of the issues and solutions brought about during his team’s work on Hot Standby. Hot Standby allows read-only queries to be made against a file-based replication enabled Postgres server, known as Point-in-time recovery and WAL Shipping in the Postgres documentation.

Simon started work on PITR-related patches about five years ago, and continues that work with others today.

One fascinating aspect of the hot standby patches is that they ultimately caused performance improvements in sub-transactions across the board – and will likely cause up to 5% improvement in that code path. There were other performance improvements, but I’ll wait for the slides to mention those. At several times during the talk, Simon pointed out features that Postgres has that no other database has — such as multiple options for dealing with conflicts in hot standby (freezing, conflict resolution and timeout).

At the end of the talk, Simon spent a few minutes talking about how Postgres is capable of being the best database, not just the best open source database. And how all the people in the room were capable of contributing as he had. He claimed that prioritization and aiming to work on the biggest, most interesting problem you can are all you need. And he claimed that all that made him different was that he was a little more persistent about solving problems.

Rock on, Simon.

What are you waiting for? Get your PgCon talks in now!


Yes, that’s me, with Tom Lane. You, too, might be able to get your picture with Tom!

Like Josh Berkus said yesterday:

As of today, you have 2 weeks left to submit talk proposals to PGCon.

You know you want to. PGCon is the international conference for PostgreSQL hackers, sysadmins, application developers, SQL geeks and other Smart People. Submit your talk! Be a Smart Person too!

PGCon will be happening May 21-22 in Ottawa, Canada, with tutorials on May 19 and 20. Some financial help is often available for speakers, but none is available for non-speakers. So submit, submit!

We particularly could use some talks on the new 8.4 features, really creative PostgreSQL applications, massive Postgres scaling, PostGIS, BioPostgres, and a few case studies. This means you.

I attended PgCon last year for the first time. Not only were the presentations top notch, but Dan Langille‘s hospitality set the groundwork for yet another fantastic community-building experience PostgreSQL community members experienced during the 2006 Anniversary summit in Toronto, again in 2007 at the first PgCon.

We had plenty of outstanding socializing and hacking opportunities. Last year’s conference started with a gathering of committers that was fodder for great pub and hallway track conversation all week. Great talks I saw included Andrew Sullivan’s Idle thoughts on PostgreSQL Project Management, Greg Sabino Mullane’s Bucardo talk about this multi-master replication tool, and Magnus Hagander’s walk through how search.postgresql.org was implemented.

Ottawa was beautiful last year, and I can’t wait to go back this May!

Open Source Bridge

wordle rocks

There’s going to be a new conference in Portland next July.

We’re calling it Open Source Bridge.

Our goal is this:

Create a completely volunteer-run, community conference to connect developers working with open source.

Let me explain with a little background:

My first tech conference was LISA in San Diego in 1997. I ran into Linus Torvalds in the hallway with my friend Steve, and we were both star-struck. I was still a student at the time, and loved every minute I spent rubbing elbows with people that were the pop-stars of the UNIXy world.

Since then, I attended LISA a few more times, OSCON, countless user group meetings for Perl, PostgreSQL. The last two years have been filled with local unconferences (BarCampPortland and WhereCampPDX to name just two) and travel to incredible community conferences like PgCon, LUG Radio Live, SCALE, Northwest Linux Fest, the Linux Plumbers Conference and last weekend’s Mentor Summit. And while on the board of the Legion of Tech, I’ve met and connected with more people than I ever thought I could know in Portland.

I love conferences. And I love Portland. Maybe you can guess what’s coming next.

During an intense brainstorming session at Side Project To Startup, a group of concerned Portlanders drew together a plan for a new conference. We packed a tiny room, and had a heated discussion about what we wanted, what Portland needed, and how we might do it. By the end of the session, Audrey Eschright and I agreed to co-chair. And with the support of Portland’s incredible tech community, we knew we could make it happen.

We called a few people, and I invited everyone over to talk about what to do next. We were: Audrey, Reid Beels, Professor Bart Massey, Rick Turoczy, Jake Kuramoto, Dawn Foster, Kelly Guimont, Adam Duvander.

We looked at the giant pieces of paper we’d scribbled notes on a few weeks before, and ate dinner together on a warm fall evening. And we decided to have a Town Hall.

town hall meeting, Oct 30, 2008, 7.30pm, Cubespace

Since then, we’ve been joined by Ward Cunningham (AboutUs), Irene Schwarting (Companies By Design), Harvey Mathews (SAO) and Clay Neal (City of Portland).

But enough with the history lesson!

Open Source Bridge will bring together the diverse tech communities of the greater Portland area and showcase our unique and thriving open source environment.

Open Source Bridge
will have curated, discussion-focused conference sessions, mini-conferences for critical topics and will include unconference sessions.

We will show how well Portland does open source and share our best practices for development, community and connectedness with the rest of the world.

Lots of ideas are buzzing around in our heads, and we’d love to talk about them with you! If you’d like to contribute to the effort, stop by the town hall event October 30, 2008 at Cubespace. We’ll have another meeting November 6th, and it will be announced on Calagator.

At the town hall, you’ll have a chance to meet the members of the core organizing committee, and pick up a responsibility or two. We’ll be breaking off into teams for each of the major areas requiring organization, and distributing the work across many people. We will create a mailing list after this first meeting for those who just want to hear about what we’re up to, or participate in some other way.

Thanks for your interest, and we hope to see you tomorrow night!