Thursday Feb 05, 2009

Golden Rules for Contribution-based Communities

There are some basic, golden rules when it comes to having a vibrant community of contributors.

The following are rules I have extracted and learned based on my experience managing and working with engineers actively involved and participating in the Apache/Derby, PostgreSQL and MySQL open-source communities. These rules are also based on extensive discussions with many folks involved with the MySQL community, with the PostgreSQL community and with the Apache/Derby (Java DB) community, over many years.

Before I go through these rules, I would like to thank Marten Mickos for having suggested some of the headings for these rules. (I originally had much longer headings for all of them.) I would also like to thank many of MySQL, PostgreSQL and Java DB colleagues, as well as to many other colleagues involved in open-source development, for having contributed to the ideas and practices behind these rules.

A) Transparency.
1.Often, this openness can span all the way from development (architectural specification, implementation design and planning, implementation, code review and walk-through) to testing, qualification and release.
2.It may be possible to move towards greater transparency over time but openness in development is often the minimum starting point. 

B) Dialog.
1.It should be possible to conduct open dialog and conversation regarding any aspect of the development (and other aspects of) work.
2.When mailing lists and other archive-able communication channels (such as wikis) focused on development work are opened up, it becomes easier to conduct open dialog and conversation regarding the development work. 
3.Of course, when a corporation or business concern contributes (either as a major contributor or a minor contributor) to the development of an open-source product, it is to be expected that some aspects of the development work (e.g. those related to specific customer needs) may remain obscure through mechanisms such as withholding of a customer's name. 

C) Pace.
1.It should be possible to track the fate of any contribution and have a public archive of the conversation conducted regarding that contribution—recording decisions made and various feedback loops in time for the purposes of learning and further work.
2.For this purpose, it is often sufficient to have a time record of the conversation conducted with respect to the given contribution.
3.These records can be searched to determine the fate of the contribution.
4.These records help provide a learning platform for the future contributors.

D) Setting Expectations.
1.Using available and open information, the contributor community should be able to form and entertain valid expectations regarding milestones, releases, timelines, etc.
2.Anticipating the future and related risk management helps all market participants to reduce transaction costs.

E) Small is Beautiful.
1.While it should be possible to absorb contribution of any size, emphasis should be put on  absorbing smaller and incremental contributions.
2.To create mass and momentum and community and quality, it helps to encourage smaller contributions.

F) Differences.
1.Not all contributions are equal.
Contributions are judged by whether they are well designed, fit into business roadmaps, are well documented, comply with standards, do not produce regressions in the code and improve performance.
2.Not all contributors are equal.
Contributors vary in expertise, skill and experience.
These variations give meaning to the practices and procedures of the contributor community.

G) Places.
1.It is clear where one needs to work.
There are enough branches or trees to serve distinctly different target groups.
2.Trees and branches are well-groomed.
Active code branches or trees are kept at a minimum set in order to keep the product roadmap and expectations coherent.

H) Parallelism.
1.Contributions are added in parallel with frequent synchronization so that community participants can respond to each others' work.Parallel work leads—naturally and out of brute necessity—to modularization, better and faster integration.

I) Incrementalism.
1.Work is conducted in increments.
2.Each contribution does one thing.
3.Each contribution has a test case that exercises it.

J) Learning.
1.Contributor community assets (channels of communications, forums, bug databases, etc.) are developed to improve learning by all participants and contributors.


I'd like to thank Brian Aker, Knut Anders Hatlen, Davi Arnaut, Kaj Arnö, Jorgen Austvik, Igor Babaev, Mark Callaghan, Peter Eisentraut, Sergei Golubchik, Shawn Green, Lenz Grimmer, Rick Hillegas, Stefan Hinz, Geir Hoydalsvik, Henrik Ingo, Alexey Kopytov, Mark Leith, Dmitry Lenev, Manyi Lu, Giuseppe Maxia, Paul McCullagh, Mårten Mickos, Chad Miller, Francois Orsini, Konstantin Osipov, Trudy Pelzer, Sergey Petrunia, Jay Pipes, Jeffrey Pugh, Ole Solberg, Georg Richter, Mikael Ronström, Kristian Waagan, Dag Wanvik, Monty Widenius, Jeff Wiss, and more.

Monday Sep 08, 2008

ERP and CMS on PostgreSQL on OpenSolaris

Jignesh K. Shah and Robert Lor describe how to set up Openbravo (an open-source ERP system) and Drupal (an open-source CMS) on PostgreSQL on OpenSolaris.

Tuesday Aug 26, 2008

PostgreSQL BuildFarm on Solaris on Sparc

Check out a new PostgreSQL buildfarm set up by Zdenek Kotala. (By the PostgreSQL community convention, I'm referring to it as a "buildfarm" but it should probably be better known as a "testfarm".)

Tuesday Aug 05, 2008

LinuxWorld Expo?

I dropped by "LinuxWorld Expo" in San Francisco on Tuesday, and I think the only thing worth noting is the PgDay.

Five years ago, when I attended the same Expo, it had a completely different spirit, with a lot more participation by the main Linux vendors and a large variety of software companies.

(Other references: PostgreSQL on Solaris and on OpenSolaris.) 

Tuesday Jun 17, 2008

PostgreSQL Surveys community pages contain some interesting surveys.

Sunday Jun 15, 2008

A PostgreSQL Monitor

Jignesh Shah has implemented a simple PostgreSQL monitor using Netbeans 6.1, which also has facilities to make packaging and distribution of a Java app much easier. 

Monday Jun 02, 2008

Community Statistics for Netbeans Database Usage

"The database support in NetBeans allows users to connect to a database and view and modify the database structure and data. These graphs show which database servers users connect to most often."

Of particular note, besides the large usage of MySQL and Oracle, is the large usage of Java DB (Derby), and the significant PostgreSQL usage.

Thursday May 22, 2008

PGCon 2008

After two days of PostgreSQL tutorials, several evenings of gatherings and a hackers' meeting, PGCon 2008 sessions began today.

Yesterday, Yahoo did make an important announcement having to do with their leveraging of PostgreSQL source base to build a system to run the largest database in the world. Reports of Yahoo's work can be found at InformationWeek ("Yahoo Claims Record with Petabyte Database") and ComputerWorld ("Size Matters: Yahoo Claims 2-Petabyte Database is the World's Biggest").

I wrote this while sitting in Andrew Sullivan's session on PostgreSQL project management. During Q&A, people discussed how to manage various feature proposals.

I should probably note here that a couple of weeks before the PGCon, we heard about a major US research institution looking into 64 bit PostgreSQL on Solaris for a large astronomy project.


(Note: Sun Microsystems already sells PostgreSQL support for Solaris. You can also learn more about OpenSolaris and databases for OpenSolaris, here.) 

Friday May 09, 2008

DTrace Probes for Databases

Robert Lor has listed potential standard DTrace probes for databases and some PostgreSQL-specific probes.

Thursday May 08, 2008

Who Dons the Java DB T-Shirt


Giuseppe Maxia took this picture at JavaOne, 2008, just a couple of days ago.

It shows Marten Mickos (MySQL) donning the Java DB T-Shirt and giving a friendly hug to PostgreSQL evangelist Josh Berkus.

That's how the story of the three open-source databases from Sun will keep unfolding.

Many observers have noted that customers and developers will have great choices to work with:

  • the premier open-source DB for web applications,
  • the premier open-source DB for demanding enterprise and reporting applications, and
  • the premier open-source DB for embedding in Java applications.

All from the same company.


Sunday May 04, 2008

PG on Mac

The PostgreSQL 7.3 installation instructions for Mac OS-X also work well for installing PostreSQL 8.3. The changes you need to make to these instructions should be obvious. On Tiger, building PostgreSQL from source will require XCode 2.5 Developer Tools from Apple, which is a free download for members of ADC.

(By the way, if you're using PostgreSQL on Solaris and need support, you can purchase it directly from Sun.)

Friday Apr 25, 2008

Tolven Health PostgreSQL Benchmark

Tolven Health has published a benchmarking study with PostgreSQL on Solaris. The purpose of the study was to "to assess the scalability and performance characteristics of the Tolven open source healthcare information technology solution and to provide guidance for customers with regards to hardware requirements for enterprise, state, regional, and country wide deployments."

Thursday Feb 07, 2008

Three Open Source Databases in Solaris SXDE 1/08


These three open-source databases, now in OpenSolaris SXDE 1/08, offer all the needed features for most of the applications out there.

"Three databases to run them all"...

... and of course, Sun offers solutions with commercial database vendors, like the Sun and Oracle's Enterprise Grid Solutions.

SXDE 1/08 is Released!


Sun Microsystems has released Solaris Express Developer Edition 1/08, Sun's free OpenSolaris-based distribution targeted at developers.

This release brings together integrated web stack (Apache, MySQL, Ruby, Php, PostgreSQL), NetBeans 6.0, interoperability with Microsoft's CIFS protocol, support for virtual machines via Sun xVM hypervisor, based on  technology developed by the Xen community, Sun HPC ClusterTools based on the Open MPI effort.

There are three ways to acquire Solaris Express Developer Edition 1/08: (1) Free download; (2) Have a free DVD mailed to you (at no cost); (3) Download a VMware SXDE 1/08 virtual machine.

Tuesday Feb 05, 2008

PostgreSQL 8.3 is Released

Josh Berkus has just announced the release of PostgreSQL 8.3.

Bjorn Munch has posted a note on the release of the Solaris binaries for PostgreSQL 8.3 on the OpenSolaris database community discussion forum.

Munch also has a wiki entry that describes how to build PostgreSQL for youself. (Important note: As should be expected, Sun provides support only for PostgreSQL versions that it itself ships with Solaris. While this should be kept in mind, we also like developers to know how to build and develop PostgreSQL on Solaris. Hence the wiki entry!)

This, I believe, is the first time official Solaris binaries of a GA release of PostgreSQL become available also through

About this release, there has been a lot of commentary in the press and in blogsphere. These were forwarded by a colleague. I selected some of the news and blog items below, giving the relevant links:


If interested, you should also consult the official PostgreSQL 8.3 release announcement.

Finally, I would also recommend checking out Sun PostgreSQL web site and the OpenSolaris database community for discussion and other topics related to PostgreSQL and databases in general!


"Open Source PostgreSQL 8.3 Better Suited For Web Applications: New features include a full text search tool, improved overall throughput, and ANSI standard SQL/XML support ," InformationWeek, 2/7

Wednesday Jan 30, 2008

Buying PostgreSQL support got easier

Buying support for PostgreSQL on Solaris has become much easier.

Just click "Buy Now" on the PostgreSQL support page and you'll be on your way.

Wednesday Nov 21, 2007

Blogging from Berkeley

Blogging from Berkeley, David Van Couvering, a database technologist at Sun Microsystems, has recently written some pieces examining PostgreSQL on Solaris. (I certainly look forward to even more such pieces, or maybe some pieces on migration from Oracle or MySQL. I think there are some interesting topics to explore in those areas when it comes to tooling.)

For example, take a look at his posts on "NetBeans, Ruby on Rails, and PostgreSQL on Solaris"and on "Starting PostgreSQL as a service in Solaris Express ."

Tuesday Oct 02, 2007

PostgreSQL @ Sun


With revamped product web pages, you can more readily find information about PostgreSQL on Solaris, and if you're already a user of PostgreSQL on Solaris, you can buy PostgreSQL support from Sun.

Thursday Aug 02, 2007

Underground Notes and Voices from OSCon and Ubuntu Live

Some say Sun is as cool as OSCon (if not cooler) because, among most companies that support OSCon, only Sun can produce truly underground notes on OSCon.

David Van Couvering reviews Mike Olson's comments about his keynote at OSCon and pontificates about whether the value of Open Source could be limited to the collaboration it fosters. David aptly notes that

Open source and an open community gives you the assurance that the technology you are depending on is not going to be discontinued or put into "maintenance mode," it won't be acquired by someone who you would rather not do business with, and it won't be used as leverage against you to extract money or modify your behavior.

By way of further review, David contrasts MySQL as an Open Source project to PostgreSQL as an Open Source project.

In a separate underground note from OSCon, Barton George has posted his interview with Free Software Foundation lawyer Eben Moglen.

Barton has also produced a series of interviews with some six dignitaries during Ubuntu Live: Mark Shuttleworth. Tim Gardner, Jane Silber, Daniel Holbach, Stephen O'Grady, Jono Bacon.

Monday Jul 09, 2007

Database Price-Performance on Sun All Open-Source Platform

More good PostgreSQL and open-source news! 

In the first week of July 2007, Sun announced a very attractive SpecJ2004 result for an all open-source Sun stack, including PostgreSQL on Solaris on Niagara.

Josh Berkus and Jignesh Shah have already written about the recent SpecJ benchmark results

The highlights are already given by Josh and Jignesh's blogs: Josh notes the importance of the results in proving the suitability of the Niagara architecture for DB applications and the importance of this result as a proof of SMP scalability. He also notes the significant price difference between Sun and the competition and looks forward to even better SMP performance by PostgreSQL database on Solaris. Jignesh gives some details regarding the DB tuning strategy used. If you want more of the tuning strategy details, you should probably leave him a comment.

Here's a summary of other highlights based on other sources:

  • This is the second all open source SPECjAppServer2004 benchmark result and Sun is the only vendor to publish all open source results.
  • It demonstrates Sun's commitment to use open source software at all levels of the stack -- including open source databases -- and to bring these price/performance benefits to users.
  • An all-Sun, all open source stack comprised of PostgreSQL on Solaris (built off OpenSolaris) on T2000s (with OpenSPARC) with Glassfish gave 89% the performance at 34% the cost of a comparable HP benchmark with proprietary database, application server, and hardware. (Tom Daly provides further details regarding price-performance results.)

If you do not know about SpecJ 2004, refer to In summary, SPECjAppServer2004 heavily exercises all parts of the underlying infrastructure that make up the application environment, including hardware, JVM software, database software, JDBC drivers, and the system network. The primary metric of the SPECjAppServer2004 benchmark is jAppServer Operations Per Second ("SPECjAppServer2004 JOPS") in either @Standard or @Distributed mode.

Look, also, at Tom Daly's blog for more information on these performance benchmarks and more.

Disclosure Statement:
Sun Fire X4200 (6 chips, 12 cores) 778.14 SPECjAppServer2004 JOPS@Standard.
HP rx2660 (2 chips, 4 cores) 874.61 SPECjAppServer2004 JOPS@Standard.
SPEC, SPECjAppServer reg tm of Standard Performance Evaluation Corporation.
Results from as of 7/10/07.




« February 2017