Quantcast
Channel: Planet PostgreSQL
Viewing all articles
Browse latest Browse all 9654

Josh Berkus: Why HStore2/jsonb is the most important patch of 9.4

$
0
0
There are a bunch of features which are pending for 9.4, still, and a bunch of features which are already committed.  Given how interesting some of those are: SET PERSISTENT, Logical Changeset Extraction, Materialized Views, etc., I think a lot of people will be surprised that I think Hstore2/jsonb is the single most important patch -- important enough that I think we shouldn't release 9.4 unless it goes in.  Why would I make this wild assertion?  Let me explain.

Open source databases rise and fall on the popularity of the programming languages which use those databases.  MySQL largely rose on the success of PHP, and it fell as PHP became marginalized.  Our current PostgreSQL salad days are based largely on the current hegemony of Python, Ruby, and Rails.  While other events have fed into changes in adoption, where the numbers of developers come from is really "what is the default database for popular language X".

While the future is unpredictable, the current momentum in programming languages is behind two platforms: Node.js and Go.  PostgreSQL already enjoys good support and adoption among Go users.  However, our adoption in the Node.js community is less encouraging.

I was given a set of statistics I'm not allowed to publish, but I can summarize them.  Two of them are fairly alarming:
  • PostgreSQL is the database for fewer than 1 out of 8 Node.js deployments which use a database.
  • The rise in popularity of MongoDB almost exactly parallels the rise in usage of Node.js.
If you've watched database adoption trends for the last 20 years like I have, this is alarming.  We are in danger of being sidelined.  If we want PostgreSQL 10.5 to enjoy the same level of adoption that version 9.3 does, then we need to appeal to Node.js users and whatever comes after them.

What do Node.js users want that we don't have?  There's three main things that I've been able to identify:
  1. A better, faster, driver which fully supports asynchronous querying.
  2. Relatively painless multi-node scaling
  3. Full, indexed support for jsonish hierarchical data and queries.
The first two points need to happen outside the core PostgreSQL project, at least for 9.4.  However, the last point is very much on the table; we have the HStore2/jsonb patch pending.  If that goes in, the PostgreSQL project will be seen as still making progress and still relevant to Node.js users and to other people who like document databases.  If it gets booted to 9.5, and there is no discernable progress on JSON features in 9.4, I believe that we will have permanently conceded the bulk of database market to the new databases for the forseeable future.

Oh, and if anyone wants to work on our Node driver ... please pitch in!


Viewing all articles
Browse latest Browse all 9654

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>