orientechnologies / 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.
https://orientdb.dev
Apache License 2.0
4.73k stars 871 forks source link

Who's using OrientDb in production? #4806

Closed StarpTech closed 3 years ago

StarpTech commented 9 years ago

Hello im very interesting in who's using OrientDb in production and what is your use case. Do you have any problems with orientdb? What is you experience? It would be nice if you follow this template.

Your opinion Version: ? Years of experience: ? Goods: ? Bads: ? Problems: ?

Your configuration Driver: nodejs, php, c#.. ? Protocol: binary, REST ? Distribution enabled : ?

Key message: ?

Thank you very much!

PhantomYdn commented 9 years ago

We are using OrientDb in a stack: OrientDB + Orienteer (our datawarehouse system) + proprietary extensions for different domain (CRM, ERP, PRM, accounting and etc). So:

Your opinion Version: 2.1 Years of experience: 1 year Goods: Very good support, easy extensible
Bads: Quite slow releasing... Problems: Commonly can be quickly resolved through support right here on github

Your configuration Driver: native java Protocol: java api + REST api

StarpTech commented 9 years ago

@PhantomYdn thanks for your reply.

seeden commented 9 years ago

I am using it in production for one month

Version: 2.0.13 (2.1 has problem with metadata https://github.com/orientechnologies/orientdb/issues/4804) Years of experience: half of the year Goods: fetchPlan is great Bads: I would like to see more examples in documentation and more tests for embedded list items Problems: embedded list items (https://github.com/orientechnologies/orientdb/issues/3449) I need to fix each query by myself.

Your configuration Driver: livia-orientdb (orientjs) Distribution enabled : no

Communication with orientdb team is good.

StarpTech commented 9 years ago

@seeden thanks! How do you solve the problem if you want to change the projection of nested records in the fetchPlan? I have to filter all by myself.

sumpton commented 9 years ago

We are developing what we consider a large scale project with OrientDB as our primary store. We are working in Node.js so with Oriento, now OrientJS, which we consider poor and neglected. We are caching everything in Redis, similar to what several big and successful social sites have done, and use Elasticsearch, and Kafka to decouple. We laugh at ourselves when we say that OrientDB is likely the weakest point in our stack.

We bought the dream, and are banking on future releases, and some Javascript love. Refactoring is constantly in our minds :) We would have loved to use OrientDB for everything but went with the addition Redis, Elasticsearch, and a lot of consistency code to be comfortable we can scale. Our AngularJS does not read from OrientDB.

We are encouraged by how hard Luca and and other talents seem to be working. I know my reply is off topic, but we have invested a lot of time and money into OrientDB development and hope to put it live in a few months.

seeden commented 9 years ago

@StarpTech I am not sure if I understand your question. Can you explain it more?

nooruls143 commented 9 years ago

We are using OrientDB as our main data store for our Mobile App backend. Currently we are in development phase, we plan to go on Enterprise version once we plan to go live

Your opinion Version: 2.03 (Planning to migrate to 2.1) Years of experience: 8 months Goods: flexible, SQL support, transaction support, extremely fast, Schema-support, easy to install and maintain Bads: Documentation not up to the mark, we need more examples/full-fledged sample applications for APIs, specially Javascript, Groovy, No support for scheduled jobs Problems: Nothing major so far, lack of robust documentation and examples makes development task slow and needs a lot of guessing

Your configuration Driver: nodejs, php, c#.. Native Java driver, used in Spring application Protocol: binary Distribution enabled : Not yet but will be done soon

Key message: Please add Scheduled Job support (like in Oracle) and create sample applications for all APIs

smolinari commented 9 years ago

Love this thread and am following it with interest.

I'd also like to say, we are looking at OrientDB coming from looking hard at MongoDB for our project. We decided however, that the relational needs we faced just needed a relational database and found OrientDB, because we also need flexible schema in a document store and our overarching goal is to have a serious graph between users at one point. We don't have enough experience to say good or bad on the technology itself, but I can say I like where ODB is heading and the flexibility it offers.

I can echo the concerns that others have said about the documentation. Orient might want to consider hiring someone who can do professional documentation for them. I am coming from MongoDB's docs and Orient's is a few notches behind in comparison.

What I also like is the team at Orient are approachable, and even Luca, the CEO is constantly in contact with the community. :+1: for that!

Our project will be PHP based and will be using the binary protocol.

Scott

imeleshkov commented 9 years ago

We tried OrientDB as a db storage for implementation of custom GEO-location service (0.5 million of vertexes + 2 millions of edges). Version 1.7.x. We spent about 8-10 man months before finally figured out that there are some cases where performance of OrientDB is not sufficient for us and support team couldn't help us to address them. Problems: work in cluster, performance of particular queries, ordering by multiple columns, poor documentation. Do not hesitate to check source code by yourself in order to take an impression. Please feel free to contact me directly if you need more info.

smolinari commented 9 years ago

@imeleshkov - did you open issues in Github for the problems you were facing at the time?

Scott

StarpTech commented 9 years ago

At the end of this thread I hope @lvca will take part on it. The most issues here are well-known.

StarpTech commented 9 years ago

@imeleshkov did you try Orientdb 2.0.x or even 2.1RC for your test cases?

StarpTech commented 9 years ago

@seeden e.g if you want to fetch a plan you can configure your projection in the select statement but this configuration is only valid for the first layer all other nested records are unaffected.

lvca commented 9 years ago

Hi guys, Glad to hear feedback from you guys, good and not-so-good. I created this project some years ago by myself in my spare time, but today OrientDB counts thousands of users with so different use cases, very often completely different by each others. This is the good of being Multi-Model: you can do so many different things with OrientDB we can't even imagine.

We know OrientDB project is not perfect, but everybody in Orient Technologies + external contributors are working very hard to make it rock-solid, well tested and well documented.

Unfortunately OrientDB is bigger than most of NoSQL products out there, so also providing good docs is much harder. By the way I think we improved docs since the last year, but we absolutely know that what users are asking is really missing: tons of examples. Unfortunately finding somebody good at it it's hard, because he should understand OrientDB very well first. If you know somebody good at it, please email me in private ;-)

We also decided to publish our code coverage, as signal of complete transparency from our side. How many NoSQL vendors did it? The OrientDB team is also working on writing tons of new test cases for some parts where test coverage was quite poor. You can see the code coverage trend is growing and it's getting every better every week.

I'm sure you all have seen our big improvements on stability in 2.1, where we closed hundreds of issues. If you worked with OrientDB in the past, I suggest you to get a recent version.

If your project is important and you have a little budget I suggest you to get the Developer Support or pick any certificated guy that helps you (certification is important because we saw big damages made by non-certified consultants hired by companies...). This is not just advertisement, but since users are thousands today, answering to everybody in the Community Group is really hard (Sometimes I read long emails there, with use cases that just to reproduce them you can spend an entire day).

That said, OrientDB is an Open Project (we receive many contributions every week - thanks to everybody contributed!). Any constructive critique is well accepted and it helps us to build a better product.

I already know we can't make everybody happy, and there can always be a use case where another product performs better, but with your feedback and contribution we can improve OrientDB all together.

dehbmarques commented 9 years ago

Hi,

I am using it in production for three months.

Version: 2.0.13 (planing to migrate to 2.1 soon) Years of experience: 7 months Goods: Flexible, easy to work with Bads: The documentation is not complete, it would be nice a place with a more complex examples and some tips. Problems: FetchPlan using the binary protocol (#4536). I didn't find an easy workaround for this until its fixed. Any help appreciated.

Your configuration Driver: orientjs Protocol: binary Distribution enabled: no

You step into some problems while developing but the team and the community support is very good.

n0lf commented 9 years ago

We been using it for production since January.

Version: 2.1 Years of experience: 10 months Goods: Fast, very flexible. Cheap. Writing custom indexes, custom js and java functions is great. Bads: The documentation and amount of support forums i small compared to the huge scope of use cases. Not always backwards compatible. I expected better JPA support and am not a huge fan of the tinkerpop API (though that has nothing to do with orientdb really). The lucene plugin and the studio are both good plugins. Problems: The query parser gave us a headache, but that should be better since 2.1. We still run the old query parser due to legacy reasons.

Your configuration Driver: native JAVA Protocol: binary

Key message: If you wan't to do something new and different with and get an edge to your competitors orientdb might very well be the best choice. Once you get the hang of it the development speed is very fast for doing complex stuff. That being said, I don't thing our choice of orientdb had been a success if we didn't have a competent team of java developers at who were willing to learn, contribute and extend this new type of database.

StarpTech commented 9 years ago

@n0lf @dehbmarques @imeleshkov @smolinari @nooruls143 @seeden @PhantomYdn Thanks for all the response !

shekhei commented 8 years ago

Version: since 2.0.5 till now 2.1.1 on live Years of experience: 1year Goods: Flexible, graph dbs are flexible Problems: there were a couple of releases(including 2.1.2GA, which is why we are still on 2.1.1 right now) that broke certain features, documentations could be improved, upgrading the version of the db could be easier, lack of logic in the sql, makes writing pure sql conditions rather difficult

Your configuration Driver: orientjs Protocol: binary

Key message: It is generally a very feature full and rather flexible db, converage is clearly improving, but clearly not enough, an upgrade to a minor version GA should have fixed bugs and at least work with old minor versions, 2.1.0, 2.1.1 and 2.1.2 upgrade wasnt as stable as I would've hoped. And some jepsen test results and things like that would make a lot of us feel "safer", with all those said, I like orientdb!

StarpTech commented 8 years ago

@shekhei thanks do you also work with fetchPlans? How did you solve circular refs in nodejs without loosing data? I have to resolve all RIDS to strings..

shekhei commented 8 years ago

@StarpTech I am using fetchplan for only very few cases, didnt really have circular ref problems(my current fetch plans hasnt ended up in circular deps yet)

lukeasrodgers commented 8 years ago

Your opinion Version: 2.0.6 Years of experience: ~8 months Goods: has been pretty fast for our use case Bads: frequent downtime issues, possibly related to #4635 #4498. I would strongly recommend not using this version in production

Your configuration Driver: ruby Protocol: REST Distribution enabled : yes

Key message: Hard to say at this point, because the version we're currently stuck on has a number of known and serious issues. I would recommend testing orientdb heavily with production-like workload before deploying it.

smolinari commented 8 years ago

Why are you "stuck" on 2.0.6 @lukeasrodgers?

Scott

StarpTech commented 8 years ago

@lukeasrodgers thanks for sharing your experience.

lukeasrodgers commented 8 years ago

@StarpTech operational reasons, nothing to do with orientdb per se. EDIT meant to @smolinari

smolinari commented 8 years ago

So you have operational reasons to hold on to serious operational problems. Ok. Sounds like the proverbial Catch 22 to me. :smile:

Scott

Amberos commented 8 years ago

Using 2.1.7 (upgraded yesterday with no issues), Java/binary/replication.

Our first solution based on OrientDB went into production a couple of weeks ago, and it drives a system with roughly 800 users. The data is partitioned and replicated to four sites. This is a non-critical system, and we see it as a test for our next system (a mainframe system port, no less), which is extremely critical to our business. Our first attempt with mongodb failed miserably with data loss, and Neo4j and OrientDB ended up on the short list. The SQL support and great jdbc driver tipped the scale in OrientDB's favor.

Positive: highly productive environment, superb performance when tuned correctly, sql/jdbc support for our existing tools

Negative: OOM bugs and replication hangs, but fortunately we found workarounds

I think with some more work on fixing bugs, OrientDB will be lightyears ahead of the competition. The multimodel approach combined with SQL is hands down the best approach to persistence I've ever seen.

martingg88 commented 8 years ago

Your opinion Version: 2.1.12 Years of experience: 1 Goods: support both document and graph, and also sql parser. Bads: The documentation is not completed Problems: Really poor performance

Your configuration Driver: nodejs Protocol: binary Distribution enabled : no

mmacfadden commented 8 years ago

Your opinion Version: 2.0 through 2.2 Years of experience: 1.5 Goods:

Bads:

Problems:

Your configuration Driver: Java Protocol: binary and REST Distribution enabled : Not yet, but soon.

Key message:

StarpTech commented 8 years ago

@mmacfadden very good summary I agree in all points. I hope orientdb will learn something from this point of view.

mmacfadden commented 8 years ago

@StarpTech Thanks. I have maintained many open source projects. So I know the challenges that the community faces in brining a commercial grade product to market in the open source model. It's not easy to do. I find more positives with this project than negatives. But at this point I need to be committed to contributing to the community for issues that I care about or pay for support. My project is unfunded at this time, so I need to put in some time rather than pay for support!