Re: How can we expand PostgreSQL ecosystem?

From: Craig Ringer <craig(at)2ndquadrant(dot)com>
To: MauMau <maumau307(at)gmail(dot)com>
Cc: PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: How can we expand PostgreSQL ecosystem?
Date: 2016-03-06 05:59:34
Message-ID: CAMsr+YFGuLgZj0rLuc+DGKRDsTE7AEmNPuLP_gi_Jedi4F6k0Q@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-advocacy pgsql-hackers

On 6 March 2016 at 13:29, MauMau <maumau307(at)gmail(dot)com> wrote:

> However, there is a problem. The number of software is very small that
> the users can know to interoperate with PostgreSQL.
>

Yep, even among many big and popular OSS apps.

> Many applications might be interoperable through standard interfaces like
> JDBC/ODBC, but the case is unknown.
>

Not tons, in my experience, unless they're doing only trivial SQL. Many
*are* PostgreSQL-compatible via higher level abstractions like
Hibernate/JPA, ActiveRecord, etc, but those are also the systems that are
least interesting from a database PoV since they generally use only the
lowest common denominator of DB features, with the DB treated as not much
more than a dumb row store.

There *is* some cool stuff we could do with ORMs if we'd stop sneering at
them for long enough. I'd love to see the ability to omit repeated values
on a LEFT JOIN for example, where we project the left tuple completely the
first time we see it, i.e. when the key changes, then we emit only the key
when we project it again for subsequent right-hand rows. This would save
ORMs an immense amount of computational effort and network bandwidth... and
you only have to patch each ORM to use it, not each app.

Even more interesting would be to emit JSON as a left-join product, so a
typical chained left join to fetch 'customer' with 'account' and 'contact'
for each 'account' would emit

[
{
customer_id: '42',
...
accounts: [
{
account_id = 1,
...,
contacts: [
{
contact_id = 4,
...
},
{
contact_id = 5,
...
}
]
},
{
account_id = 2,
...
}
]
},
{
customer_id = 43,
...
}
]

i.e. emit the requested data in the form the application actually wants,
without needing to produce a giant relational projection and then process
it in the application.

We could help ORMs solve the N+1 SELECTs problem and help them avoid
transferring vast join projections unnecessarily. That'd make PostgreSQL
pretty compelling for exactly the users we're mostly too busy dismissing to
consider.

When you consider the adoption of PostgreSQL in the Rails/ActiveRecord
crowd I think there's some interesting potential there. What there isn't is
funding AFAIK.

I'd be interested in reaching out to some Hibernate/JPA and ActiveRecord
folks about how the DB could help the ORM and have been meaning to explore
this area for a while, but -ENOTIME. If anyone pursues it I'll be really
interested in hearing how things go.

> Besides, in practice, we probably should increase the number of software
> interoperable with PostgreSQL. e.g. one customer asked us whether Arcserve
> can be used to back up PostgreSQL databases, but unfortunately we had to
> answer no. They are using Arcserve to back up Oracle databases and other
> resources. "Then, you can use NetVault instead" is not the best answer;
> they just want to replace the database.
>

The "we" here is the problem. It's not likely to be folks focused on
PostgreSQL core dev, but ... who, exactly?

> Provide technical assistance to those vendors as an organization so that
> they can support PostgreSQL smoothly.
>

This one is a help. That said, pgsql-general is pretty helpful already...

> * Make a directory of software/services that can be used with PostgreSQL
> on the community web site (wiki.postgresql.org or www.postgresql.org).
> Software/services vendors and PostgreSQL developers/users can edit this
> directory.
>

I thought we had that? Yep.

http://www.postgresql.org/download/product-categories/

It's pretty invisible though, partly due to the postgresql.org landing
page's need for a trim-down and tidy. (Don't even get me started on
http://www.postgresql.org/about/ )

> * How/Where can we get the knowledge of expanding the software ecosystem?
> Is there any OSS project that we can learn from?
>

Mongo.

Despite the real world capabilities being ... patchy ... and the magic
autoscaling claims etc being a bit dubious, they've successfully marketed
it as the magic solution for everything.

This leads to a fair bit of disillusionment, but also massive adoption. I
think they take it too far, but try opening these two pages side by side:

http://www.postgresql.org/
https://www.mongodb.org/

... and tell me which you'd look over first if you were evaluating things.

> How can we attract software vendors to support PostgreSQL? What words are
> convincing to appeal the increasing potential of PostgreSQL as a good
> replacement for commercial databases?
>

Change the name :p

<dives for fireproof clothing>

--
Craig Ringer http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

In response to

Responses

Browse pgsql-advocacy by date

  From Date Subject
Next Message Ioseph Kim 2016-03-07 01:05:33 Re: Request Korean PostgreSQL User Group
Previous Message Mark Kirkwood 2016-03-06 05:46:41 Re: How can we expand PostgreSQL ecosystem?

Browse pgsql-hackers by date

  From Date Subject
Next Message Pavel Stehule 2016-03-06 06:17:57 Re: Proposal: SET ROLE hook
Previous Message Tom Lane 2016-03-06 05:58:45 Re: Proposal: SET ROLE hook