Back from PostgreSQL Con East:
The presentation and the people were almost universally interesting and very fun. I learned an incredible amount, and the parties were awesome (thanks EnterpriseDB). Total awesomenesss was achieved when Baron Schwartz announced himself. I am writing this up several days after the end of the conference and my memory is fading a bit.
Keynote:State of the Community
Drake is good at what he does. I was not a member of the community and I was excited for it.
Interprocess Coordination and Communication
This presentation was not lite on the technical details, and interesting as hell. Their use of a database was innovative.
The general idea is that they have a massive amount of work, mostly very small tasks that can not be run more than once (for example sending an email, billing a customer) and are subject to failure. They created a system where a master (I don’t recall the term they used) used the listen/notify system to tell worker threads what to do. If a thread stalls it gets killed, and a new worker is spawned.
I had no idea listen/notify existed. Yeah, I’m green. I’m thinking I am going to rip off the idea on a micro scale for something that I have to run weekly that dies out way too often. I will probably use http to spawn and monitor the threads.
Inside the PostgreSQL Shared Buffer Cache:
Great presentation. I had no knowledge of buffer optimizations, and this was a very good intro. Postgres reads in data through a buffer which until recently used a least recently used algorithm. The current implementation was explain which is like LRU, but also keeps track of how much the page had been used in the recent history. My gut says that a much higher magic constant for max read count would work out well, but one way or another a bunch of benchmarking is in order, and the gains will be fairly marginal.
Cloning an Elephant
Basic (well, not for me, yeah I am green…) ideas behind replications and the state of the various Postgres implementation. I have read a few tutorials about MySQL replication but never anything more. It was quite an experience having Jan Wieck (author of slony, the replication system that seems to have majority mindshare) in the audience, and Greg Mullane (author of a competing system) presenting. Something that is refreshing is how open the Postgres community is about limitations.
In the next couple of weeks I will set up some sort of virtual replication so that I have a bit more experience…
Logic and Databases
I hung out with Jeff quite a bit later, and I really like him. He is a very smart guy.
At the conference this was the presentation that I liked the least, and afterwards the one which has eaten up the most reflection. I knew that databases are built off of very old set/logic theory. This presentation went into deep discussion about how questions (predicates) are asked of databases. I did not understand a good bit of the presentation, and was bordering on bored for a good bit, and I think I was not alone. Afterwards I have been thinking a lot about tangential topics and will be rewriting a recent bit of schema because of this reflection. What NULL really means was a question I had pretty much ignored, and now I am now pondering the question a good bit. It was very good that Andrew Sullivan was in attendance. I look forward to watching his “Rapid development as a denial of service threat” presentation (if they ever throw it on utub).
Postmodern PostgreSQL Application Development
A good presentation on how to build quickly build a gui app using Python (or most any other language really), qt, and postgres for CRUD. The developer was not really all that interested in db topics, liked ORM because it made his life easy, and the crowd did not like him for it. ORM’s can be horribly abused, but they definitely make a developers life much simpler. I have no problem with judicious use of ORM for and later on this week I will post a simple ORM framework that I use.
Roundtable with Bruce Momjian, Joshua Drake and Magnus Hagander
(or Joshua Drake keynote part deux)
I think the roundtable was far too heavy on organizational issues. Magnus and Bruce I ended up hanging with a bit, and I like them a lot. I think that they were overshadowed by Drake. There was more mysql bashing that I might have liked, and I do not think that the IRC integration was a good idea.
I think that the the view expressed about problems with the mysql business model and how it discourages OS developers are probably correct.
The Magic of MVCC
This conversation fit into the 90 minute session very well, and would have probably been worthless in a 45 minute presentation. I learned a lot about the Postgres method of handling transactions. It would have been good if they had discussed how conflicts are dealt with, but most of the developers present probably were already familiar with that. I am not and will have to experiment trying to create problems.
I learned how in general row level information is stored, and based on that the ideas of mvcc began to understand why the limitations of the design (count(*) and vacuum being necessary) exist.
Best Practices of PostgreSQL
The presenters have a significant code base of varying quality, and explained how they cope with their legacy issues. Based on my work history I think that I will probably end up doing very similar work. Sooner or later I need to write out my thoughts on Stored Procedures, something that has been in flux.
Big, Bad, Broken, PostgreSQL
I was laughing so hard that I was darn near crying. I feel bad for the guys, they did not have an easy February.
Monitoring PostgreSQL with ptop
This tool will end up being copied all of the place. The tool is in its infancy, and I imagine it will be Godsend to many user in the near future.
And then the fun started….
I learned that the longest distance between any two points is a Momjian. A Momjian is defined as the insane route that Bruce Momjian follows while making less than good use of a GPS. The highlite of the evening might have been seeing the capital at night. DC is an incredibly beautiful city at night and I am very glad I saw it when I did.
Following Momjian up the wrong way on a one way street ended up being the highlite. The street was very steep and the car I was driving could not get moving from a stop without four DBA’s pushing getting out and pushing. Another highlite was when Momjian came to a fork in the road and just stopped.