Re: How can we expand PostgreSQL ecosystem? - Mailing list pgsql-hackers

From Craig Ringer
Subject Re: How can we expand PostgreSQL ecosystem?
Date
Msg-id CAMsr+YFGuLgZj0rLuc+DGKRDsTE7AEmNPuLP_gi_Jedi4F6k0Q@mail.gmail.com
Whole thread Raw
In response to How can we expand PostgreSQL ecosystem?  ("MauMau" <maumau307@gmail.com>)
Responses Re: How can we expand PostgreSQL ecosystem?  ("MauMau" <maumau307@gmail.com>)
Re: How can we expand PostgreSQL ecosystem?  ("MauMau" <maumau307@gmail.com>)
List pgsql-hackers
On 6 March 2016 at 13:29, MauMau <maumau307@gmail.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.


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:


... 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

pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: Proposal: SET ROLE hook
Next
From: Pavel Stehule
Date:
Subject: Re: Proposal: SET ROLE hook