The first problem is an interesting paradox.
Now, since we are planning to deploy in production soon, I thought, well, in that case I will use OrientDB 1.3.0. This is one of the releases appearing on the release page, so I assumed it was still supported.
Using OrientDB 1.3.0 and Bluprints and Gremlin 2.3.0 I developed the entire API and I worked just fine. In fact, I felt it was significantly faster than when running agains Neo4j.
Then I moved into evaluating how to implement replication and there it is when I started running into problems.
Facts of OrientDB Replication
First Failing Scenario with OrientDB 1.3.0
Ok, this one was in part my fault. I did not see that one coming. What went wrong?
Paradoxes of Open Source: #2 – The Non-existing API
So, no wonder why I never used it while working with OrientDB 1.3.0.
Now, since OrientGraphNoTx does not exist in Blueprints 2.3.0, only in 2.4.0-SNAPSHOT, does that mean there is no way to use Blueprints with OrientDB 1.3.0? I guess it also means there is no way to use replication without using the recommended (and not yet officially released) API like Blueprints 2.4.0-SNAPSHOT.
Paradoxes of Open Source: #3 – Misleading Documentation
In this regard, the documentation should be organized as the Tinkerpop stack does. One set of pages per every supported release.
Second Failing Scenario with OrientDB 1.3.0
Well, since the distributed server does not support distributed transactions, I thought I could change the scenario to do something very simple.
Failing Scenario with OrientDB 1.5.0 Succeeding with
OrientDB 1.4.1
Well, since evidently staying in 1.3.0 is not an option I
decided to try replication with 1.5.0 which was release
yesterday.
Out frustration I decided to try the exact same scenario with OrientDB 1.4.1 which paradoxically succeed in doing replication.
So 1.4.1 works but 1.5.0, doesn’t? It was the exact same scenario in the three versions of the database, but it only worked with OrientDB 1.4.1.
This somehow tells me the scenario is not flawed.
Conclusions for our case where:
--
---
You received this message because you are subscribed to the Google Groups "OrientDB" group.
To unsubscribe from this group and stop receiving emails from it, send an email to orient-databa...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
--
--
---
You received this message because you are subscribed to the Google Groups "OrientDB" group.
To unsubscribe from this group and stop receiving emails from it, send an email to orient-databa...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
--
---
You received this message because you are subscribed to the Google Groups "OrientDB" group.
To unsubscribe from this group and stop receiving emails from it, send an email to orient-databa...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
Hi Andrey,regarding:
Right now the hash index cluster is under development and if this setting will be switched on the space of deleted records will not be recycled and will be kept forever is it ok for you ?
right now it is not critical to me that the RID is not recycled, but it seems soon I will need that and I do not want to mark the record as deleted but really delete it and also have not-recyclable RID .I am not very aware of the hash index cluster concept, but when you say that the deleted records will be kept forever do you mean only now when the cluster is still under development or that will be the normal/expected behavior on the cluster when using not-recyclable RID?Thank you.
--
---
You received this message because you are subscribed to the Google Groups "OrientDB" group.
To unsubscribe from this group and stop receiving emails from it, send an email to orient-databa...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
for( int retry = 0; retry < maxRetries; ++retry ) { try{ // LOOKUP FOR THE INVOICE VERTEX Vertex invoice = graph.getVertices("invoiceId", 2323); // CREATE A NEW ITEM Vertex invoiceItem = graph.addVertex("class:InvoiceItem"); invoiceItem.field( "price", 1000 ); // ADD IT TO THE INVOICE invoice.addEdge( invoiceItem ); graph.commit(); break; } catch( OTransactionException e ) { // SOMEONE HAVE UPDATE THE INVOICE VERTEX AT THE SAME TIME, RETRY IT } }
--
Thanks!
Has there been an official update to the reuse issue in plocal? Is there a setting to reuse an RID in plocal without storing the deleted records permanently? Also does local store in this way? Reusing RIDs but storing the deleted records permanently? Or does local reuse RIDs and keep clean by removing deleted records?
Thanks!
--
---
You received this message because you are subscribed to the Google Groups "OrientDB" group.
To unsubscribe from this group and stop receiving emails from it, send an email to orient-databa...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
Yes. I read this. Great documentation on plocal storage but what about local storage? Does it handle deletions in the same way? I couldn't find documentation on local deletions.
I also saw a request in this discussion about adding a setting to plocal to reuse RIDs. Was not sure if that request was implemented. I know, as of the latest build, local reuses and plocal doesn't. I was interested in reusing RIDs in plocal.
Thanks!
You received this message because you are subscribed to a topic in the Google Groups "OrientDB" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/orient-database/wXs6HoaiQkY/unsubscribe.
To unsubscribe from this group and all its topics, send an email to orient-databa...@googlegroups.com.
Ah. Ok. Saw your concerns. Will trust them.
I was thinking of something less durable like "votes" or "likes" in a database. Let's say you get a couple thousand votes and then start a new poll. That old, deleted, poll is just wasted RIDs.
That would be a great solution. Or even if it's an eventual reuse. Where if and when the RIDs run out (I am aware the limit is far beyond trillions), the database will start from 0 again and reuse any unused RIDs.
Andrey,
The fact that local will be deprecated helps in choosing the right option between the two. Thanks.
Correct. Just wanted peace of mind if we keep the database clean on the app side, we could have unlimited RIDs.
So if hundreds of thousands of RIDs are deleted on a regular basis, those RIDs are not gone for good. They would be reused sometime in the future.
The longer the period between reuse, the better. This would also relieve the concerns of those who may not want the confusion of immediate reuse.