Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Who's using OrientDb in production? #4806

Closed
StarpTech opened this issue Aug 16, 2015 · 30 comments
Closed

Who's using OrientDb in production? #4806

StarpTech opened this issue Aug 16, 2015 · 30 comments
Assignees
Labels

Comments

@StarpTech
Copy link

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
Copy link
Contributor

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

@lvca lvca added the question label Aug 17, 2015
@StarpTech
Copy link
Author

@PhantomYdn thanks for your reply.

@seeden
Copy link

seeden commented Aug 17, 2015

I am using it in production for one month

Version: 2.0.13 (2.1 has problem with metadata #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 (#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
Copy link
Author

@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
Copy link

sumpton commented Aug 17, 2015

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
Copy link

seeden commented Aug 18, 2015

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

@nooruls143
Copy link

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
Copy link
Contributor

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. 👍 for that!

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

Scott

@imeleshkov
Copy link

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
Copy link
Contributor

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

Scott

@StarpTech
Copy link
Author

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

@StarpTech
Copy link
Author

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

@StarpTech
Copy link
Author

@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
Copy link
Member

lvca commented Aug 19, 2015

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
Copy link

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
Copy link

n0lf commented Sep 7, 2015

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
Copy link
Author

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

@shekhei
Copy link

shekhei commented Sep 30, 2015

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
Copy link
Author

@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
Copy link

shekhei commented Sep 30, 2015

@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
Copy link

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
Copy link
Contributor

Why are you "stuck" on 2.0.6 @lukeasrodgers?

Scott

@StarpTech
Copy link
Author

@lukeasrodgers thanks for sharing your experience.

@lukeasrodgers
Copy link

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

@smolinari
Copy link
Contributor

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

Scott

@Amberos
Copy link

Amberos commented Dec 15, 2015

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
Copy link

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
Copy link
Contributor

mmacfadden commented Jun 12, 2016

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

  • Orient is the only database out there that we found that meets our technical needs. The overall technical concept is fairly advance in terms of where they are going with the project.
  • The blend of SQL and NoSQL and Embeeded and Linked data is very novel.
  • The way the data is modeled and the combination of schema and schemaless mode is nice. I can use schema were I need it and not where I do not.
  • The project is very active and I have had good dialog with some of the maintainers and the community.
  • I think the Orient Technologies guys are very smart and hard working. They are very passionate about the project.

Bads:

  • The project seems to be having some growing pains as new features are being added, the project and codebase is getting bigger and bigger and I am not sure if the OrientTechnologies team is overwhelmed some times. Perhaps if more people take this into production and pay for support, that would help.
  • Also, I think for a commercial / open source project like this I think the community needs to step in and do some of the heavy lifting. I personally have found dozens of significant bugs in the code. But I am using this for free, so instead of getting angry, I just contribute a fix. I am not sure the Orient Team has found a way to really embrace the community. I am not saying at all that they are not working with the community, they certainly are. I just think they need to be creative in terms of thinking of ways to really get the community energized, and also to give some priority to working with folks who want to contribute. that said my experience with them has not been bad at all, its been quite good, but I would like to see a larger set of active community contributors.

Problems:

  • As new features come out, I consistently find regressions and things that at just obviously broken. Most of them are not hugely complicated to fix, and at the stage my project is at, its not the big of a deal.
  • There is some technical debt in the code that makes it fragile to maintain. I would like to see Orient 3.0 perhaps opt for some breaking backwards compatibility in favor of removing technical debt and cleaning up some parts of the project.

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

Key message:

  • I believe OrientDB is a very good project. It is very innovative. I think if it can take the next step in terms of clean up, stability, and features it is going to be very successful. I understand why some people are frustrated, but I suspect some of them are using the software for free and not willing / capable of contributing back, or it may not be practical. (I know that many are and do, and still have issues, so this is not a blanket statement).
  • My recommendation to the maintainers is to 1) increase stability, 2) fix long standing hard technical issues, 3) embrace the community, and 4) increase the speed at which PR that fix problems are evaluated released.
  • My recommendation to consumers is to give Orient a shot. If you find issues report them and try to do a little debugging yourself. Ask questions on Stack Overflow and GitHub. If nothing else, help write unit tests.

@StarpTech
Copy link
Author

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

@mmacfadden
Copy link
Contributor

@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!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Development

No branches or pull requests