Live data from Hacker News

YouTrackDB is a general-use object-oriented graph database

github.com

31–40 of 73 posts

Re: YouTrackDB is a general-use object-oriented graph database

#32

I've always been curious about graph DBs and dabbled a bit in them, but for those who have more extensive experience in them-- are they really worth it? Is it that for small scale SQL is better and graph DBs really only matter at scale, or for specific use cases with highly connected data?

I worked in a startup whose value proposition was largely derived from using graph data and graph databases under the hood. The main benefit is, as the repo even states "Fast data processing: Links traversal is processed with O(1) complexity."

So, technically, you can do deep traversals quicker. A few notes:

1. Few use cases truly need low-latency deep traversal on realtime data (>5 hops). There are some well known ones like fraud detection in payment processing and, possibly, social media recommendation engines. But I am not even sure how latest social media engines work, and whether they still rely on graph DBs.

2. However, in practice the advantage is often marginal. With modern analytical databases, or even an optimized PostgreSQL (ltree, materialized views, pgrouting, pg_duckdb, etc), you often get more than good enough performance. In addition those traditional SQL DBs scale with hardware more easily than graph databases. So, you can always use the lever: "Throw more hardware at it."

3. Even Graph DBs don't get good traversal performance under all conditions without hand tuning. For example, there is the "super node" issue, a node with an abnormally high number of connections (edges). And if you still need hand-tuning, you might as well choose something more versatile.

4. The ecosystem of a PostgreSQL and other popular DBs is just unbeaten. With graph DBs, you often prematurely put yourself in a corner that you don't want to be in.

Hence, my recommendation. Unless you are really sure that a graph DB is the right fit for your use case, start with something else, and go the graph db way when you have established a true need.

Re: YouTrackDB is a general-use object-oriented graph database

#33

I've always been curious about graph DBs and dabbled a bit in them, but for those who have more extensive experience in them-- are they really worth it? Is it that for small scale SQL is better and graph DBs really only matter at scale, or for specific use cases with highly connected data?

I worked for the research branch of a children's hospital. At one point, I was brought into vendor evaluations a department wanted to buy. Their tool had something to do with visualizing protein interactions, which was highly networked. It was basically a Neo4j database with a React UI on top of it.

Re: YouTrackDB is a general-use object-oriented graph database

#36
post #22

Earlier quoted context omitted.

That's true, although, if you look at them, you wouldn't notice. The only mention of JVM you can see in the IDEs is in the About dialog, and the IDEs install and run their own OpenJDK, so no JVM has to be installed globally. Almost as if they were a bit self-conscious about using such an "unsexy" architecture...

Bundling a JDK with the app is the officially sanctioned way to ship Java apps since Java 9, so for over a decade now.

The JDK is too big for every app to do that, imo.

Re: YouTrackDB is a general-use object-oriented graph database

#37
post #22

Earlier quoted context omitted.

That's true, although, if you look at them, you wouldn't notice. The only mention of JVM you can see in the IDEs is in the About dialog, and the IDEs install and run their own OpenJDK, so no JVM has to be installed globally. Almost as if they were a bit self-conscious about using such an "unsexy" architecture...

Bundling a JDK with the app is the officially sanctioned way to ship Java apps since Java 9, so for over a decade now.

You mean a JRE, because the whole JDK contains a bunch of things you're never going to need.

Mind you, a default JRE redistribution makes your app at least 100+MB. Using jdeps to strip out unneeded things is a good idea if you want it to get down to 25 ish MBs.

Re: YouTrackDB is a general-use object-oriented graph database

#38

Earlier quoted context omitted.

Bundling a JDK with the app is the officially sanctioned way to ship Java apps since Java 9, so for over a decade now.

The JDK is too big for every app to do that, imo.

Which is why there are linking and packaging tools for trimming fat that isn't needed, or even AOT compile the application.

Re: YouTrackDB is a general-use object-oriented graph database

#39
post #24

Object databases routinely go away and routinely come back. Ten years ago I worked with a database called Versant OODBMS (from Actian). I was a junior sysadmin so i was essentially administering it at a very surface level but skimming the documentation (and trying some of the samples) it was very cool that you could pick essentially any random class, implement an interface (and hence a few method) and that was it, yo…

Yes, POET for C++, for example.

http://www.kevra.org/TheBestOfNext/ThirdPartyProducts/ThirdP...

Re: YouTrackDB is a general-use object-oriented graph database

#40
post #3

I wonder if there's a design decision documented somewhere that makes the existing graph databases like Neo4j, etc. not good enough for Youtrack's use case.

That's a good question indeed. Also I wonder why they picked java as the implementation language.

Because Youtrack itself is written in java
Post reply on HN