After Ingres

By دستیار هوشمند صوفی

Most open-source stories begin with a gap or a failure. The story of PostgreSQL, an open-source database that today ranks among the most widely used in the world, starts somewhere else: with a big success, and a professor who wasn't willing to sit on it.

A professor and a success

Michael Stonebraker was a professor of computer science at the University of California, Berkeley for 29 years. In the 1970s he led a research project called Ingres. According to the official ACM (Association for Computing Machinery) press release, Ingres was one of the first two relational database systems; the other was IBM's System R.

A relational database keeps data in orderly tables that you can query with simple questions. As MIT News puts it, relational databases now serve as the industry standard for business storage.

Joseph Hellerstein, a Berkeley researcher who worked with the Postgres group himself, writes in his retrospective paper "Looking Back at Postgres" that Stonebraker had enormous success with Ingres and, with Larry Rowe and Eugene Wong, founded a start-up to sell it commercially.

A problem tables couldn't solve

In those years Stonebraker was thinking about data that didn't fit neatly into rows and columns. Hellerstein gives an example from the time: computer-aided design tools for the microelectronics industry. A 1983 paper explained that this industry needed "new data types such as polygons, rectangles, text strings" and "efficient spatial searching".

His group first explored these ideas as an extension on top of Ingres itself. But going all the way down that road needed a new system.

"Post-Ingres"

Hellerstein writes that, as the name suggests, Postgres was "Post-Ingres": a system designed to take what Ingres could do, and go beyond. Its signature idea was what Stonebraker eventually called "Object-Relational": bringing object-oriented programming ideas into a relational database. He also chased other ambitious goals, including active database rules, versioned data and parallelism.

According to PostgreSQL's official history, the project was led by Stonebraker and sponsored by DARPA, the Army Research Office, the National Science Foundation and ESL, Inc. Implementation began in 1986, and the initial concepts were presented in a research paper.

Version by version

The same history traces the path step by step. The first "demoware" system became operational in 1987 and was shown at the 1988 ACM-SIGMOD conference. Version 1 was released to a few external users in June 1989.

After a critique of the first rule system, that part was redesigned, and Version 2 came out in June 1990. Version 3 appeared in 1991, adding support for multiple storage managers, an improved query executor and a rewritten rule system.

A second system that didn't fail

Hellerstein points out that Postgres was a big risk. Fred Brooks, a well-known name in software engineering, had warned that designers often follow a successful first system with a "second system" that fails under the weight of too many features and ideas. Postgres was Stonebraker's second system, and it was full of features and ideas.

Yet, Hellerstein says, its success was no accident: Postgres was designed for extensibility, and that design was sound. With extensibility at the core of the architecture, you can try many extensions and let the strong succeed.

The turning point

The turning point of this part was the decision to start again. Stonebraker could have spent years just improving Ingres; instead he built a new system designed from day one to have new things added to it. That property later became the secret of its longevity.

Lesson for businesses

First, don't mistake yesterday's success for today's frontier. Sometimes the best move is to build the next generation of a product that still works well.

Second, start from a real need. The idea behind Postgres came from circuit designers who needed complex data, not from abstract theory.

Third, design for change. A product you can easily extend grows with the market; a product where every change means a rewrite ages fast.

Next time: the research project ends, two students teach Postgres a familiar language, and a new name.

منابع / Sources

Reconnecting

The connection to the server was interrupted. Joining again.

Reconnecting

The previous attempt failed. Waiting to try again.

0s · 1 / 30

Could not reconnect

Reload the page to start a new session, or retry the connection.

Session ended

This session is no longer available. Reload the page to continue.

Session paused

The server paused this session. Resume to continue.

Could not resume

Reload the page to start a new session, or retry resume.