Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

At last! This was the only feature I was missing in Postgres for years.

Postgres is so amazing I still find it hard to believe it's free. I abused it many times (as a graph database; as a real-time financial data analytics engine with thousands of new ticks coming in each second; as a document storage with several TBs of data per node), and amazingly, it just worked. Magic.

If in doubt, choose Postgres.



Would love to hear more on your usage as a graph database, especially in light of http://static.googleusercontent.com/media/research.google.co...


They have used adjacency lists, which looks strange to me — this is a common way of representing graph data in memory, but doesn't map well to the relational model. I have used "extreme normalization", where all edges are represented as many-to-many relationships with associative tables.

Though I stored document relationships and social graphs, not semantic graphs, as they describe in this paper. I have little experience with semantic graphs — perhaps, they have different requirements.


How many joins did it have (sounds very joinery :-D)/or how deep was your graph? Presumably it was doing full table scans for everything - sounds very interesting anyway.


About 1.5 million nodes (not that big), most of queries followed 3-4 edges.

Joins are good. :)


I have a Postgres database with 25 bn rows on a single host with application level partitioning and a parallel query infrastructure. Surely abuse, but Postgres has handled it beautifully.


I built something very similar once. My tip would be to shove some HTTP interface on the front of it for some cache guarantees (ie. no arbitrary writes so you can trivially flush, etc. etc.)


I miss bi-temporal queries/support most. Unfortunately there is little in place as of now in that regard. http://www.postgresql.org/docs/9.5/static/runtime-config-rep... are the humble beginnings.


It is now under development by Enova. They want to prototype bi-temporal support as an extension. https://hdombrovskaya.wordpress.com/2016/03/15/my-presentati...

While I was listening this presentation I've thought that it's quite weird functionality and intersects a lot with transaction visibility rules that MVCC already has. So it is interesting what is your use case?


Analysing open data portals. PG holds status data on retrievability of links. Depicting the evolvement of such an open data portal over time is possible with custom datetime columns and window fucntions, it's just tedious and error prone.


> I still find it hard to believe it's free

PostgreSQL is only free if your time has no value..

(Paraphrased. In jest..)


Do you know any commercial database with comparable level of documentation and community support?

I worked with a certain other database from a company starting with "O" and ending with "racle", and support/documentation quality was abysmal. Our support contract was quite basic, but still, it expected to be better than free alternatives.

It was very NOT.


I'm sorry, but documentation is one thing Oracle is NOT lacking.

http://docs.oracle.com/cd/E11882_01/nav/portal_booklist.htm


He probably meant "readable" documentation....


I took it to mean the Oracle's support was lessor than that of Postgres', despite paying a fee for it up front.


It was a comment in jest (as I mentioned).


In comparison to what? Mysql? Perhaps. Mysql is a little simpler and quicker to pick up, but one must remember, the original intent of mysql was to stop Devs from using text files for storage...

But in comparison to an enterprise solution like DB2 or Oracle? Not even close...

If you are trying to pull nosql into the argument, that is not even apples to oranges, plus with nosql, you get to retool your entire architecture.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: