Re: Switching to Homebrew as recommended Mac install? / apology - Mailing list pgsql-hackers

From Jay Levitt
Subject Re: Switching to Homebrew as recommended Mac install? / apology
Date
Msg-id 4F79CDA9.5070700@gmail.com
Whole thread Raw
In response to Re: Switching to Homebrew as recommended Mac install?  (David Johnston <polobo@yahoo.com>)
List pgsql-hackers
David Johnston wrote:
 > Just trying to bridge an apparent gap since the original e-mail seems to
 > have come across as too adversarial that the underlying thoughts have
 > been overlooked.  Trying to contribute in my own way with my current
 > resources.

Thanks, but it's my own fault for basing a half-baked "let's rewrite
everything" idea on a few wrong assumptions without asking some simple
questions first. (Sorry, David.) And you guys don't know me very well yet,
so you don't how to interpret my tone, or that I spend the *first* half of
each day making the exact opposite arguments to all the young turks in the
hopes we'll all meet in the middle.  I plan to hang around, so by way of
belated introduction, and you can imagine this in the style of Beetlejuice:

Hi. I wrote AOL's OLTP-style mail server in 1994 and scaled it (with an
eventual team of 25) from 27 to 4000 TPS on minicomputers as powerful as an
iPhone. It had multi-site replication, zero-downtime installs (without
blocking writes), and served 1.5 million simultaneous users. I had to write
nearly a whole SVM-based OS in the app, because nothing at the time - from
the message bus to the disk cache to poll() itself - could handle our load,
and our growth outpaced the hardware manufacturers' ability to build it. I
did this with no CS background beyond public school (I started as a 6502
hacker), no search engine, and no access to research papers or computer
scientists. I have no idea how.

The architecture survived five underlying infrastructure transitions
(Stratus filesystem, Sybase, Informix, Tandem, and the move from four- to
eight-byte IDs that PG has successfully staved off) while migrating live. It
never lost or misrouted a message, and never had a security breach in the
nine years I led it (or, AFAIK, since), despite the fact that we were a big
enough target for hackers to respond to our changed defenses within hours. I
do actually know this stuff, or did.

I spent 10 years taking a break, studying music, successfully sleeping
through Java; now I'm back in technology, leading development in a
Rails/web/JS startup, and luxuriating in the ability to actually store data
in a database this time - because you guys have spent the past 20 years
studying and improving the hard parts of abstracting performant, reliable,
scalable data storage.

I have a tendency to see the possible endgame and insist on starting now,
and if I get too idealistic, ambitious, and "MongoDB is webscale", please
just drag me into a conversation about lock contention and distributed 2PC
and I'll forget the whole thing. But I really do think PG can be the
makes-everything-possible, does-most-things-well data store - really, data
platform - for the next decade or two, and I want to contribute.

I'm provocative, playful and grandiose, I apologize except not really, and
it's because in my n=1 experience, the way life works is (a) you decide to
change the world and then (b) you do.

 > You do not need permission to contribute to the community
 > in the way you seek so what is it that you are really asking for?

Nothing at this point. I was thinking out loud, and at the time was
temporarily insa^h^h^hconvinced that the homebrew formula should be the
community standard, and thus that I'd have to bring it up to some level of
acceptability/review.  I've contributed to the formula in the past, and will
continue to do so based on the thoughts everyone's shared here. It doesn't
need to be official to be useful, and as David Page said, it's not gonna be
listed in the docs no matter what, given the one decision that homebrew
makes (/usr/local) that I can't override.

> When brew is replaced by something more popular do you
> think you will continue to maintain the recipe or is it going to end
> up stuck showing us how to install version 9.3 or earlier.

Like anything, I'll maintain it until it becomes useless to me or vice
versa, and someone will pick it up or they won't.  But just to be clear,
Homebrew's a source-based repo (so there's no cross-compiler issues),
pulling from the upstream source repository, using only the stock compiler
toolchain, Intel-only, on a platform where the only hardware manufacturer
has themselves severely constrained the number of possible configurations.
For the most part, updating the formula to "package" new versions is a
matter of changing the following two lines:

   url 'http://ftp.postgresql.org/pub/source/v9.1.3/postgresql-9.1.3.tar.bz2'
   md5 '641e1915f7ebfdc9f138e4c55b6aec0e'

Unless the instructions for "How to build postgres from source" change,
nothing else in the formula *needs* to.  The current formula is fairly
simple; aside from user instructions, the code is 75 lines and mostly
consists of default arguments to ./configure.  (Formula attached for the
curious.)  Pull requests are freely and quickly accepted after a quick
review; the homebrew repo is operated more in the "fail early and often"
spirit than in the mission-critical "do no releases before formal
verification" style - and again, since it contains nothing more than
programmatic versions of "install this package from source" docs on a
constrained platform, it doesn't tend to fail catastrophically. It's for
developer tools, not deployments.

>  the current installer maintainers are doing so in addition to their
 > other, more regular, contributions

Yes, and I do plan to contribute back to PostgreSQL as well. We have a bunch
of novel uses that could serve as forcing functions for nice optimizations
and generalizations, and my lifelong obsession with scaling, performance and
metering meshes well with some of the core team's future plans. But as a PG
novice, a SQL novice, and someone who last touched C in 1999 other than a
few bug fixes, believe me that I am contributing more by *not* trying to
contribute any code *just* yet.

> Someone would likely pickup the torch

Agreed; the PG formula has had 35 contributors in its 2.5 years, and the
9.1.3 update was released 41 minutes after the e-mail announcement went out.

The homebrew repo's at https://github.com/mxcl/homebrew, and the license
(homebrew-wide) is unnamed but looks MIT-compatible. It does not contain the
PG copyright notices, and I don't know the history of the PG license, so
perhaps that also prevents some here from contributing (although, again,
there is no PG code in homebrew).

Jay

Attachment

pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: log chunking broken with large queries under load
Next
From: Noah Misch
Date:
Subject: Re: ECPG FETCH readahead