HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
orientechnologies
orientdb
Java2013–2020
orientechnologies / orientdb

orientdb

OrientDB is the most versatile DBMS supporting Graph, Document, Reactive, Full-Text and Geospatial models in one Multi-Model product. OrientDB can run distributed (Multi-Master), supports SQL, ACID Transactions, Full-Text indexing and Reactive Queries.

10Distinct people
13Mentions
1Explicit recommenders
5KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

OrientDB is the most versatile DBMS supporting Graph, Document, Reactive, Full-Text and Geospatial models in one Multi-Model product. OrientDB can run distributed (Multi-Master), supports SQL, ACID Transactions, Full-Text indexing and Reactive Queries.

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

Almost all graph databases use gremlin as querying language but I really love orient db's approach of using sql[1] for querying graphs. It feels more natural in my opinion plus…

brickcap used a recommendation phrase. One indexed comment matches. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 1:49:46 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year13 dated mentions

Observed mentions: 2013-07-30 19:28:43 UTC to 2020-07-14 15:22:06 UTC.

0123452013-01-01 00:00:00 UTC to 2014-01-01 00:00:00 UTC (exclusive): 3 mentions; 2 submissions, 1 comments20132014-01-01 00:00:00 UTC to 2015-01-01 00:00:00 UTC (exclusive): 5 mentions; 0 submissions, 5 comments2015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments20162017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2020

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20132013-01-01 00:00:00 UTC2014-01-01 00:00:00 UTC321
20142014-01-01 00:00:00 UTC2015-01-01 00:00:00 UTC505
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC101
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC202
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC000
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC000
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC101
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC101

What Hacker News says

13 sources
It's an "and" rather than an "either-or" :) When the database is open-source, and I spot something that's broken that I know how to fix, I try to fix it. Here's a fix for a severe database query planner correctness bug I contributed to an open-source database called OrientDB: https://github.com/orientechnologies/orientdb/pull/7015 Unfortunately, Microsoft SQL Server, Oracle, and many other databases are not open-source, and I can't hack on their query planners. And even if they were, SQL is an absolutely massive language (the complete spec is 100,000+ pages). The GraphQL compiler query language is tiny in comparison, the spec is maybe 10 pages: https://graphql-compiler.readthedocs.io/en/latest/language_s... It's a lot easier to intelligently map a small language to a big one than it is to optimize the big language outright. In a sense, S
Read the rest
QL is just not designed to be easy to optimize — it's too broad, and there are too many equivalent-ish ways of doing the same thing. This is why even after incredibly smart people cumulatively spent engineer-millennia on the query execution and optimization systems in SQL databases, we still keep having issues and there are still plenty of areas for improvement. More info and more concrete examples of "why not just write SQL" in my upcoming blog post!
In How good are query optimizers, really? [pdf] (2015)
Strange that they have to have such a non-standard license, when they go out of their way to mention Apache 2 several times: https://github.com/dgraph-io/dgraph/blob/master/LICENSE.md Contrast that with Orient, who also have an Enterprise version, and they just straight-up say "Apache 2, no drama" https://github.com/orientechnologies/orientdb/blob/develop/l... We had an absolutely miserable experience trying to get Janus to behave rationally, and thus far have had zero drama with Orient; we skipped dgraph because it does not appear to work with Gremlin, meaning one must use vendor-specific APIs to use dgraph. Their client reminds me of the days before ORM: write a big string literal and send it to the server: https://github.com/dgraph-io/dgraph4j#running-a-query
In Comparing Database Types
It's in this bug report: https://github.com/orientechnologies/orientdb/issues/6179 I recognize this was closed (by you, apparently) on the basis that I was using a bug report to ask a question. The intent of the bug report is that if the ETL file doesn't sufficiently describe what to do with the data, you should display a sensible error message, instead of a traceback from deep within the internals of OrientDB. If I've failed to list a primary key somewhere, you should tell me that, not assume that I want the primary key to be "null". But yes, on top of that, my question remains.
In Unicorn: a simple and flexible abstraction of BigTable-like databases
Not trolling, but for various reasons I don't want my employer linking these comments to my real account. We spent a lot of time and money trying to get OrientDB working and we ran into so many problems that it was impossible for us to continue with it. It is buggy beyond belief, distributed mode is deeply flawed, transactions are not transactional, it's super easy to hang the database and the explain keyword straight up lies, the backup strategy is non-existent, the documentation incredibly poor and riddled with typos and outright mistakes. When we finally thought we'd got over these issues, we imported our data and the system ground to a halt, just weeks before a major product launch. Luckily we were able to move to Postgres pretty quickly, but choosing OrientDB nearly sank the company, choosing it was an inaffordable mistake. Also, loo
Read the rest
k at this list of issues closed as "invalid/wontfix", it seems like you're a lot keener to close issues than to actually fix them - https://github.com/orientechnologies/orientdb/issues?utf8=%E...
In OrientDB?
brickcap·Jun 26, 2014Recommendation phrase
Almost all graph databases use gremlin as querying language but I really love orient db's approach of using sql[1] for querying graphs. It feels more natural in my opinion plus it lowers the barrier to entry for people who already know about sql. Some of the things I like about cayley 1. Switchable backends(I wonder if I can configure it to use couchdb as a store) 2. Documentation get right to the point. When I first tried my hand at graph databases I could not understand where to start but cayley's approach is pretty straight forward and it wins plus points from me for including a big dataset :) A question: I see no mention in the docs about running it on multiple nodes (where does it stand with regards to CAP etc) [1](https://github.com/orientechnologies/orientdb/wiki/SQL)
In Cayley – An open-source graph database
An Update : A lot of people are using orient db as seen from the client list on the official[1] website but there are no posts regrading the "orient db expereince" So I downloaded it and gave it a try last night here are my impressions so far. 1. It has got an awesome documentation for both first time users[2] and those looking for in depth understanding[3] of orient db. 2. It is very easy to pick up. A no brainer installation, a familiar query syntax and a small api make it easy to pick up even if you have never experienced a graph db before. 3. It has clients in popular languages + an http api. I see that there is no client for erlang yet so I am planning to write a small http erlang client for it. 4. The default console client that orient ships with is very easy to use. That is about it for the moment. I can't believe I missed this dat
Read the rest
abase before. I plan to write a few blog posts covering the use of orient db. My first impressions are positive and I am going to use it in a new project. I would love to hear some thoughts of people who have been using orient db for a while (assuming they find this thread) [1](http://www.orientechnologies.com/) [2](http://www.orientechnologies.com/getting-started/) [3](https://github.com/orientechnologies/orientdb/wiki#reference...)
In Ask HN: Has anyone used a graph database?
OrientDB has some great explanations on their github wiki. Here is their thoughts on why references are better than joins: https://github.com/orientechnologies/orientdb/wiki/Tutorial:... And this page gives an overview of relationships in general with OrientDB: https://github.com/orientechnologies/orientdb/wiki/Concepts#... Personally I have found the relational model limiting for performance in certain use cases and limiting in terms of mental overhead in others. I have used MongoDB a lot, however only having embedding to model relationships is also very limiting. The promise of OrientDB is a documunt store with support for embedding (and class inheritance), but also being able to use references rather than joins. What embedding and references have in common is that you have to do more up front work to define your relationships. You can
Read the rest
think of it as freezing the possible queries available in a relational model to the subset that you actually use. I think this is a great default for most applications. However, it is not what an analyst wants for doing ad-hoc queries, which SQL databases are great at. And even application creators often later decide that they want to do some ad-hoc analysis of data sitting in the database. This is where polyglot persistence should shine and you can have multiple databases that index the data in different ways.
In No More Joins - SilverStripe and OrientDB

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.