[orientdb] Re: Problems with first steps in using graphs (performance)
Hey guys I really need some help here. Shall I ask maybe somewhere else? -- --- 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-database+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [orientdb] Re: OrientDB and neo4J
Hi Erich, On 13 August 2014 22:52, Erich Heine sophac...@gmail.com wrote: I ended up choosing OrientDB because: * Part of my data model was very painful with a traditional SQL database, whereas graphs work nicely. * Parts of my data model very much like the Document DB aspects of Orient - especially the EMBEDDED* types. * Licensing is good * The various query/fetching methods - SQL dialect, gremlin, direct object load, etc, map to various ways I think about accessing my data. * The times I want to enforce schema, I can, which gives me a certain level of type-safe comfort I enjoy. The reason I chose against Neo4j was mostly licensing, the above is just a nice benefit. Thanks for the feedback ;-) A couple of Orient cons from my POV: * When working in a non-jvm language, it somewhat painful to use the binary or http interfaces. The http interface feels a bit inconsitent, and arbitrary when it comes to return values, and what can and cannot be done, rather than a full API. e.g. I use python, and interfacing with full features is just frustrating sometimes (and bulbflow/rexster don't really allow me to use everything fully) If you have any specific issue to report against API calls, we can work on it. * Some things are non-intuitive in the Orient way of doing things, and it's taken a lot of experimenting to get things done sometimes. Being a small community still, not every question I have is answered by a simple google search. This part needs a bigger re-work, mostly by using a new SQL Engine more compliant, more strict and with a better reporting in case of errors. Then we need to improve documentation, this is something everybody ask for. Lvc@ HTH On Thursday, January 5, 2012 11:56:14 PM UTC-6, Luanne Misquitta wrote: Hi everyone, Did any of you consider using neo4J and why did you pick OrientDB over it? Thanks Luanne -- --- 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-database+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. -- --- 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-database+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [orientdb] paper about OrientDB and other graph-db
On 14 August 2014 00:51, Valerio Schiavoni valerio.schiav...@gmail.com wrote: Hello Luca, 60M of nodes and 400M of edges is not that big, you could manage the entire graph in 1 machine, but depends by the kind of operation you do against the graph: - is it mostly read than write? Yes. The database is write-once, but reads follow unpredictable patterns. So you import the database at the beginning and then you make only traversal, right? - what kind of traversal you will do? The main operation will be a shortest-path between any two vertices. The number of hops between any two vertices follow a scale-free distribution. Ok - what's the expected performance in terms of query/sec? I don't need to comply to a particularly stringent SLA, but it has to be fast... For instance: internally, does OrientDB memoize traversal results ? [2] - http://en.wikipedia.org/wiki/Memoization We don't support this out of the box, but you could create in-memory graphs as result of traversing, and then reuse them fir further queries. Can OrientDB automatically shard (via some kind of semi/automatic graph-clustering) a large graph across a set of OrientDB nodes ? You can shard the graph against multiple nodes. We have 3 strategies to distribute data against different machines (round-robin, balanced and sticky), but 99% of the times it's better to rely to the application where to store the nodes because he better know the domain. Can you point me to the documentation where these 3 strategies are described, if any ? https://github.com/orientechnologies/orientdb/wiki/SQL-Create-Class#cluster-selection-strategy How the nodes communicate to each other ? All nodes are connected via TCP/IP, so the traversal is transparent, but could be costly if you have many hop back and forth on machines. Are connections established once and for all, or they are created on the fly only when a given edge is traversed, and closed once the traversal has completed ? Connections remain until you stop a server or becomes unreachable. If the vertices are sharded following a min-cut clustering, this cost should be low...right? Right Is there some rebalancing mechanism in the case a graph-cluster becomes too big ? With 2.0 we have a move vertex command to move vertices to nodes, this is very useful to move one node or entire clusters. Interesting. Given latest version I see is 1.7.8, the question is due: when do you plan to release 2.0 ? 2.0-rc1 is scheduled for the beginning of September, the final release within September. 2.0 has more news, like new binary protocol serialization to save 20-60% of space on disk, better multi-core support, new Studio with Graph Render (pretty cool), better performance on distributed architecture and much more. 1 - http://www.odbms.org/wp-content/uploads/2014/05/an-empirical-comparison-of-graph-databases.pdf This is a pretty old benchmark with the old version of OrientDB that used local and mvrb+tree indexes. Now OrientDB is totally different, and it scales much better. I understand your concerns. But the paper is not so old after all, officially published back in September 2013 here: http://ieeexplore.ieee.org/xpl/login.jsp?tp=arnumber=6693403url=http%3A%2F%2Fieeexplore.ieee.org%2Fxpls%2Fabs_all.jsp%3Farnumber%3D6693403 They tested OrientDB 1.3, released on December, 19th 2012 ( https://code.google.com/p/orient/downloads/detail?name=orientdb-1.3.0.tar.gzcan=2q=#makechanges ). Recently I found another benchmark published 2 months ago, where they used YCSB with recent version of NoSQL products and... OrientDB 1.0.1... Lvc@ By the way I asked to the authors of the paper to retry the very same benchmark against 1.7.x but they never responded me... Too bad :-( -- --- 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-database+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. -- --- 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-database+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [orientdb] Re: OrientDB and Grails
Luca, I recently had similar project and decided to use ANTLR. It is much better supported, my research showed. For your antlr SQL grammar files, you can start with the ones in the Apache TAJO project, http://tajo.apache.org If you go with antlr, get the visual tools too! They helped me a lot. -- --- 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-database+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[orientdb] Re: OrientDB and Grails
Hi Fiedel, I'm using OrientDB together with Grails since roughly one year now and it works very well. For my own purposes, I've written a small plugin that is NOT an implementation of GORM, but tries to mimic the convenience of it (i.e. save(), get(), etc. on domain objects). I realized that using Groovy's AST and Metaclass-Programming, but I use SQL-queries (what's wrong with that?) to obtain objects. Also, I'm not sure, if you want to get rid of the SQL-queries (strings), if you really need to use JavaCC or ANTLR, given all the possibilities you have with Groovy. I initially thought about writing a GORM implementation for OrientDB, but then I thought about my requirements and the things I really needed could be implemented very quickly without going the effort of a GORM implementation. I don't use the Web-Stuff of Grails either, but by app is based on Vaadin instead. That's probably, why I don't have to be GORM compatible. However, if someone volunteers for developing that, I'll be happy to use it in the future. Kind regards, Markus On Monday, 4 August 2014 18:22:40 UTC+2, Fidel Viegas wrote: Hello, everyone! I have been playing around with orientdb and i would like to put together a small application using grails and was wondering if anyone has worked with grails and orientdb that would like to share his experience. Is there any driver for grails ou there? How could one integrate the java driver? I look forward to hearing from those that have some advice with regards to this combo. Thanks in advance! Best Regards, Fidel H Viegas -- --- 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-database+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [orientdb] Re: Problems with first steps in using graphs (performance)
Hi Curtis where did you find this syntax? *CREATE EDGE E TRANSFORM comment.postId TO **post.id http://post.id* *INVERSE* I do not see it in the documentation. You could use SQL Batch for your case https://github.com/orientechnologies/orientdb/wiki/SQL-batch 2014-08-14 9:10 GMT+02:00 'Curtis Mosters' via OrientDB orient-database@googlegroups.com: Hey guys I really need some help here. Shall I ask maybe somewhere else? -- --- 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-database+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. -- --- 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-database+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [orientdb] paper about OrientDB and other graph-db
Hello Luca, Yes. The database is write-once, but reads follow unpredictable patterns. So you import the database at the beginning and then you make only traversal, right? Correct. [2] - http://en.wikipedia.org/wiki/Memoization We don't support this out of the box, but you could create in-memory graphs as result of traversing, and then reuse them fir further queries. Ok, good to know. This suggests that internal caching is also out of the picture. https://github.com/orientechnologies/orientdb/wiki/SQL-Create-Class#cluster-selection-strategy Thanks. If the vertices are sharded following a min-cut clustering, this cost should be low...right? Right Nevertheless, this seems to contradict the rationales behind any of those 3 cluster selection strategies. Node of them seem to to be aware of the clustering degree of the graph components. In a distributed deployment, such strategy should be definitely worth investigating. They tested OrientDB 1.3, released on December, 19th 2012 ( https://code.google.com/p/orient/downloads/detail?name=orientdb-1.3.0.tar.gzcan=2q=#makechanges ). Recently I found another benchmark published 2 months ago, where they used YCSB with recent version of NoSQL products and... OrientDB 1.0.1... I feel your pain. Unfortunately, paper publication rate is always orders of magnitude slower than your release-rate. And I guess you won't slow down your release rate :-) a+ v -- --- 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-database+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[orientdb] valid property names in graph API
Hi I'm currently trying to make sure my graph mapping library (https://github.com/Riduidel/gaedo) supports OrientDB. I must confess first tests are not that satisfying : it seems there are invalid characters for property names, contrary to what Blueprints doc states there http://www.tinkerpop.com/docs/javadocs/blueprints/2.5.0/com/tinkerpop/blueprints/Element.html#setProperty(java.lang.String,%20java.lang.Object) key - the string key of the property Indeed, when I try to call the setproperty method with key = java.util.Map$Entry___key value = java.lang.String___a nothing happens. AT ALL. is there a reason for this lack of reaction of orientDB ? Is there a way to configure the way orientDB reacts when encountering an unsupported character in property key or value ? Could it be possible to add this limitation to Blueprints implementation to the https://github.com/orientechnologies/orientdb/wiki/Graph-Database-Tinkerpop page ? I must - to my big disappointment - confess this code is tested and works exactly as expected with two other Graph implementations : TinkerGraph (quite logical) and neo4j. Do I have to plan a long adaptation delay to have my API working with OrientDB ? Thanks -- Nicolas Delsaux -- --- 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-database+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [orientdb] paper about OrientDB and other graph-db
On 14 August 2014 11:29, Valerio Schiavoni valerio.schiav...@gmail.com wrote: Hello Luca, Yes. The database is write-once, but reads follow unpredictable patterns. So you import the database at the beginning and then you make only traversal, right? Correct. [2] - http://en.wikipedia.org/wiki/Memoization We don't support this out of the box, but you could create in-memory graphs as result of traversing, and then reuse them fir further queries. Ok, good to know. This suggests that internal caching is also out of the picture. OrientDB already caches traversed nodes and edges. So traversing the same path the second time will be a RAM-only operation. https://github.com/orientechnologies/orientdb/wiki/SQL-Create-Class#cluster-selection-strategy Thanks. If the vertices are sharded following a min-cut clustering, this cost should be low...right? Right Nevertheless, this seems to contradict the rationales behind any of those 3 cluster selection strategies. Node of them seem to to be aware of the clustering degree of the graph components. In a distributed deployment, such strategy should be definitely worth investigating. They tested OrientDB 1.3, released on December, 19th 2012 ( https://code.google.com/p/orient/downloads/detail?name=orientdb-1.3.0.tar.gzcan=2q=#makechanges ). Recently I found another benchmark published 2 months ago, where they used YCSB with recent version of NoSQL products and... OrientDB 1.0.1... I feel your pain. Unfortunately, paper publication rate is always orders of magnitude slower than your release-rate. And I guess you won't slow down your release rate :-) ;-) Lvc@ -- --- 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-database+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [orientdb] Re: Problems with first steps in using graphs (performance)
Hi, just found it here: https://github.com/orientechnologies/orientdb/wiki/Import-RDBMS-to-Graph-Model Scroll a bit down. Mine is just copied from there. To your link: I want to import a 100 gb database into OrientDB, I don't think that the SQL Batch is the thing I'm looking for? Am Donnerstag, 14. August 2014 11:12:42 UTC+2 schrieb Enrico Risa: Hi Curtis where did you find this syntax? *CREATE EDGE E TRANSFORM comment.postId TO **post.id http://post.id* *INVERSE* I do not see it in the documentation. You could use SQL Batch for your case https://github.com/orientechnologies/orientdb/wiki/SQL-batch 2014-08-14 9:10 GMT+02:00 'Curtis Mosters' via OrientDB orient-...@googlegroups.com javascript:: Hey guys I really need some help here. Shall I ask maybe somewhere else? -- --- 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 javascript:. For more options, visit https://groups.google.com/d/optout. -- --- 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-database+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [orientdb] Re: Problems with first steps in using graphs (performance)
Hi Curtis, unfortunately that syntax was a proposal, but in the wiki seems has been removed the fundamental word proposal. If you want to import something in OrientDB the easier way is using the ETL: just one JSON for configuration and that's all. What's your source? A RDBMS? https://github.com/orientechnologies/orientdb-etl/wiki/Import-from-DBMS Lvc@ On 14 August 2014 13:05, 'Curtis Mosters' via OrientDB orient-database@googlegroups.com wrote: Hi, just found it here: https://github.com/orientechnologies/orientdb/wiki/Import-RDBMS-to-Graph-Model Scroll a bit down. Mine is just copied from there. To your link: I want to import a 100 gb database into OrientDB, I don't think that the SQL Batch is the thing I'm looking for? Am Donnerstag, 14. August 2014 11:12:42 UTC+2 schrieb Enrico Risa: Hi Curtis where did you find this syntax? *CREATE EDGE E TRANSFORM comment.postId TO **post.id http://post.id* *INVERSE* I do not see it in the documentation. You could use SQL Batch for your case https://github.com/orientechnologies/orientdb/wiki/SQL-batch 2014-08-14 9:10 GMT+02:00 'Curtis Mosters' via OrientDB orient-...@googlegroups.com: Hey guys I really need some help here. Shall I ask maybe somewhere else? -- --- 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/d/optout. -- --- 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-database+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. -- --- 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-database+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [orientdb] Re: Problems with first steps in using graphs (performance)
Hey Luca, yeah it's just MySQL. God damn I did not find your link before. Sounds great and instantly testing this awesome stuff thanks =) Am Donnerstag, 14. August 2014 13:34:57 UTC+2 schrieb Lvc@: Hi Curtis, unfortunately that syntax was a proposal, but in the wiki seems has been removed the fundamental word proposal. If you want to import something in OrientDB the easier way is using the ETL: just one JSON for configuration and that's all. What's your source? A RDBMS? https://github.com/orientechnologies/orientdb-etl/wiki/Import-from-DBMS Lvc@ On 14 August 2014 13:05, 'Curtis Mosters' via OrientDB orient-...@googlegroups.com javascript: wrote: Hi, just found it here: https://github.com/orientechnologies/orientdb/wiki/Import-RDBMS-to-Graph-Model Scroll a bit down. Mine is just copied from there. To your link: I want to import a 100 gb database into OrientDB, I don't think that the SQL Batch is the thing I'm looking for? Am Donnerstag, 14. August 2014 11:12:42 UTC+2 schrieb Enrico Risa: Hi Curtis where did you find this syntax? *CREATE EDGE E TRANSFORM comment.postId TO **post.id http://post.id* *INVERSE* I do not see it in the documentation. You could use SQL Batch for your case https://github.com/orientechnologies/orientdb/wiki/SQL-batch 2014-08-14 9:10 GMT+02:00 'Curtis Mosters' via OrientDB orient-...@googlegroups.com: Hey guys I really need some help here. Shall I ask maybe somewhere else? -- --- 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/d/optout. -- --- 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 javascript:. For more options, visit https://groups.google.com/d/optout. -- --- 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-database+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [orientdb] Re: Problems with first steps in using graphs (performance)
I don't get it to work. Also searched for some more information already. I included the JDBC driver https://code.google.com/p/find-ur-pal/downloads/detail?name=mysql-connector-java-5.1.18-bin.jar; into the lib folder. But where shall I put the config now? Am Donnerstag, 14. August 2014 14:03:13 UTC+2 schrieb Curtis Mosters: Hey Luca, yeah it's just MySQL. God damn I did not find your link before. Sounds great and instantly testing this awesome stuff thanks =) Am Donnerstag, 14. August 2014 13:34:57 UTC+2 schrieb Lvc@: Hi Curtis, unfortunately that syntax was a proposal, but in the wiki seems has been removed the fundamental word proposal. If you want to import something in OrientDB the easier way is using the ETL: just one JSON for configuration and that's all. What's your source? A RDBMS? https://github.com/orientechnologies/orientdb-etl/wiki/Import-from-DBMS Lvc@ On 14 August 2014 13:05, 'Curtis Mosters' via OrientDB orient-...@googlegroups.com wrote: Hi, just found it here: https://github.com/orientechnologies/orientdb/wiki/Import-RDBMS-to-Graph-Model Scroll a bit down. Mine is just copied from there. To your link: I want to import a 100 gb database into OrientDB, I don't think that the SQL Batch is the thing I'm looking for? Am Donnerstag, 14. August 2014 11:12:42 UTC+2 schrieb Enrico Risa: Hi Curtis where did you find this syntax? *CREATE EDGE E TRANSFORM comment.postId TO **post.id http://post.id* *INVERSE* I do not see it in the documentation. You could use SQL Batch for your case https://github.com/orientechnologies/orientdb/wiki/SQL-batch 2014-08-14 9:10 GMT+02:00 'Curtis Mosters' via OrientDB orient-...@googlegroups.com: Hey guys I really need some help here. Shall I ask maybe somewhere else? -- --- 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/d/optout. -- --- 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/d/optout. -- --- 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-database+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[orientdb] Re: Trouble Using difference()... or removing one result set from another
I expanded the audience for my question over at stackoverflow: http://stackoverflow.com/questions/25308685/orientdb-removing-one-result-set-from-another-using-the-difference-function Hopefully I can get some help today! Regards, Andrew -- --- 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-database+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [orientdb] Re: How to use Fetching plans properly?
Hi guys, When you use the remote connection + fetchplan, OrientDB sends the connected records into the client's Level1 cache. So when the client loads the RecordID it finds the record in local cache, and the server is not involved. The problem you are experimenting is related to the fact the db instance must be alive, even if the remote call is not made. If you need to operate without a database try calling: v.getRecord().detach(); Lvc@ On 11 August 2014 18:39, Shaun Barker shaun...@gmail.com wrote: Hi No news on this topic I see. I spoke with Vladimir and wanted to paraphrase the issue: The reason he turned off orient db was to prove that all linked vertices would be pre-loaded. Since the system died immediately is it correct to say that the system was trying to call the db to load more data during that for loop? We guess the connection was being called for more data, or is the client on some keep alive and this caused the issue? regards S On Wednesday, July 16, 2014 5:56:16 PM UTC+1, Vladimir Ziankevich wrote: Hi guys! In my test graph database I'm trying to retrive list of vertices with enabled fetching. I do the next: public ListVertex getPeopleByName(OrientGraph graph, String name) { IterableVertex people = graph.command( new OCommandSQL( select from People where name CONTAINSTEXT '+ name +' // Fulltext index was already built ) ).setFetchPlan(*:-1).execute(); return Lists.newArrayList(people); } ... OrientGraphFactory graphFactory = new OrientGraphFactory( remote:localhost/ExampleDatabase, username, password); OrientGraph graph = graphFactory.getNoTx();// also tried with getTx() ListVertex people = graphDao.getPeople(graph, Bi); // Line 1, where I shutdown OrientDB for (Vertex person : people) { IteratorVertex parentsIterator = person.getVertices(Direction.IN, parent).iterator(); if (parentsIterator.hasNext()) { // some logic here // and here } } graph.shutdown(); ... So, enabling fetching *:-1 I expected that all linked vertices would be pre-loaded. But in the debug mode staying on the breakpoint an line Line 1 when I shutdown OrientDB the next code person.getVertices(Direction.IN, parent) throws an exeption com.orientechnologies.orient.core.exception.ODatabaseException: Error on retrieving record #16:1829 ... Caused by: com.orientechnologies.common.io.OIOException: Error on connecting to 127.0.0.1:2424/ExampleDatabase ... Caused by: java.net.ConnectException: Connection refused: connect I googled a little bit, found some possible causes... I've checked if level 1 cache enabled. In orientdb-server-config.xml I have entry value=true name=cache.level1.enabled/ entry value=false name=cache.level2.enabled/ and OGlobalConfiguration.CACHE_LEVEL1_ENABLED.getValue() returns true Also I use remote connection new OrientGraphFactory( remote:localhost/ExampleDatabase, username, password); I have no ideas what is the problem. Could someone help me to find what I'm doing wrong? Thanks in advance. P.S. I run OrientDB on Windows 7 if it makes sense. -- --- 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-database+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. -- --- 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-database+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [orientdb] Re: OrientDB and neo4J
Hi Luca, On Thursday, August 14, 2014 2:26:13 AM UTC-5, Lvc@ wrote: snip A couple of Orient cons from my POV: * When working in a non-jvm language, it somewhat painful to use the binary or http interfaces. The http interface feels a bit inconsitent, and arbitrary when it comes to return values, and what can and cannot be done, rather than a full API. e.g. I use python, and interfacing with full features is just frustrating sometimes (and bulbflow/rexster don't really allow me to use everything fully) If you have any specific issue to report against API calls, we can work on it. I have some notes I've made as I work on my OrientDB related project. I plan on going through them thoroughly in the next couple of weeks and writing up something about it. Some of it is just learning curve related frustration on my part - this happens with any new (for me) technology, but some of it probably should be mentioned in the form of suggestions or feature requests. Regards, Erich -- --- 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-database+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [orientdb] OrientDB with tomcat DB locking issue
Hi Enrico, Thanks for your help after using the remote it is now working well without locking issues. I really appreciate it. On Tuesday, August 12, 2014 3:07:39 PM UTC+4, Enrico Risa wrote: Hi Kareem you call this: OServer server = OServerMain.create(); server.startup(new File(/usr/local/temp/db.config)); server.activate(); At the startup of your application, then from your application code you can use new OrientGraphFactory(plocal:d:/db/test); For the db.config it is the configuration of the Server where you set the listening port binary http etc.. I use this configuration in a Play application. Before starting the server i configured with java api the ORIENTDB_HOME System.setProperty(ORIENTDB_HOME, path); I load a custom orientdb-config.xml start the server and then you can reproduce the folder structure of the Server with path/ databases/ plugins/ in plugins i copied a dist of OrientDB Studio and then i was able to run queries from studio opening my browser to http://localhost:2481/studio/index.html#/ 2014-08-12 11:34 GMT+02:00 Kareem Jabr karee...@gmail.com javascript:: Thanks Enrico, I really appreciate it. Can I then call new OrientGraphFactory(plocal:d:/db/test); after: server.activate(); I prefer doing this as below, OServer server = OServerMain.create();server.startup(new File(/usr/local/temp/db.config));server.activate(); The documentation is not really clear regarding the best practices on how to use it in a prodcution level. 1) What shall I keep in this file: db.config? 2) I have come across this: listener protocol=http port-range=2480-2490 ip-address=0.0.0.0 commands command implementation=com.orientechnologies.orient.server.network.protocol.http.command.get.OServerCommandGetStaticContent pattern=GET|www GET|studio/ GET| GET|*.htm GET|*.html GET|*.xml GET|*.jpeg GET|*.jpg GET|*.png GET|*.gif GET|*.js GET|*.css GET|*.swf GET|*.ico GET|*.txt GET|*.otf GET|*.pjs GET|*.svg parameters entry value=Cache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nPragma: no-cache name=http.cache:*.htm *.html/ entry value=Cache-Control: max-age=120 name=http.cache:default/ /parameters /command /commands/listener When is this needed? Hi Kareem you can use embedded server Take a look here. Let's you connect in plocal but you can use tool like Studio and Console https://github.com/orientechnologies/orientdb/wiki/Embedded-Server 2014-08-12 0:41 GMT+02:00 Kareem Jabr karee...@gmail.com: Plocal Factory = new OrientGraphFactory(plocal:d:/db/test); Factory.getTx() On Aug 11, 2014 4:54 PM, Enrico Risa enric...@gmail.com wrote: Hi Kareem how do you open the database from tomcat server? plocal or remote? 2014-08-11 14:51 GMT+02:00 Kareem Jabr karee...@gmail.com: If I try to connect to the DB thru studio from the browser http://localhost:2480/studio/index.html#/database/test/browse *it shows this in the log:* java.io.IOException: The process cannot access the file because another process has locked a portion of the file [ ONetworkProtocolHttpDb] Since I am already connected to the same database test from tomcat server. I think whoever I open first locks the DB so other app won't be able to access the DB. I need to access the DB from studio and code at the same time for many reasons. Please guide me to a best practice way to handle connections and DB locking for my case. Thanks, Kareem -- --- 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/d/optout. -- --- 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/ny6WHJZ7_Ok/unsubscribe. To unsubscribe from this group and all its topics, send an email to orient-databa...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. -- --- 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/d/optout. -- --- 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 javascript:. For more options, visit https://groups.google.com/d/optout. -- --- You received this message because you are subscribed to the Google Groups OrientDB group. To unsubscribe from this group and stop receiving emails
[orientdb] Re: mono-directional edges
and again :) On Friday, 8 August 2014 21:20:12 UTC, ste...@activitystream.com wrote: Hi, Are mono-directional edges still on the roadmap for 2.0 and when do you think the new version will be stable enough for 3rd party, non critical, development? Regards, -Stefán -- --- 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-database+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[orientdb] Blueprints indexes and transactions
Hi as i'm advancing over my port of gaedo (https://github.com/Riduidel/gaedo) to support OrientDB specificities, I'm fighting with a strange bug that appear only on transacted graph. Let me explain it further. In my test, I create a vertex and index it immediatly over all of its properties, in an index named vertices and inherited from Blueprints legacy. Each indexing is done in the form index('property name', 'property value', 'vertex'). When doing so, i try to get back that vertex from index but, when using a transacted graph, it seems to fail, and the vertex is duplicated, or at least it appears so. Indeed, when working on single-valuated properties, I do a test on update operations to make sure the source vertex is linked to only one destination vertex. When running with transactionless graph (calling the getNoTx() method), all goes fine. But, when running with transacted graph, I get lots of messages like this one : public com.dooapp.gaedo.test.beans.Message com.dooapp.gaedo.test.beans.User.about is linked to more than one vertex : v[#9:8]-com_dooapp_gaedo_test_beans_Post-10 v[#9:13]-com_dooapp_gaedo_test_beans_Post-10 v[#9:13]-com_dooapp_gaedo_test_beans_Post-10 v[#9:20]-com_dooapp_gaedo_test_beans_Post-10 v[#9:20]-com_dooapp_gaedo_test_beans_Post-10 v[#9:27]-com_dooapp_gaedo_test_beans_Post-10 v[#9:27]-com_dooapp_gaedo_test_beans_Post-10 v[#9:27]-com_dooapp_gaedo_test_beans_Post-10 v[#9:27]-com_dooapp_gaedo_test_beans_Post-10 (continuing on 50 lines). From debugging, I understand many vertices are created in that case. And I suspect, after a fast debug in OTransactionRealAbstract, that this may have something to do with the fact that the index is only updated at the end of the transaction. Am I right ? Notice that, as my library is supposed to work on OrientDB as well as on Neo4j, I'm very reluctant to any change in code. In such conditions, what can I do to fix that ? -- Nicolas Delsaux -- --- 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-database+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [orientdb] Re: OrientDB and neo4J
* Some things are non-intuitive in the Orient way of doing things, and it's taken a lot of experimenting to get things done sometimes. Being a small community still, not every question I have is answered by a simple google search. This part needs a bigger re-work, mostly by using a new SQL Engine more compliant, more strict and with a better reporting in case of errors. Then we need to improve documentation, this is something everybody ask for. Lvc@ Hi Luca, I'd like to add my voice to the need for improved documentation. I really like OrientDB in our project, but I and my team have concerns about documentation and stability that may cause me to spend scarce staff time in evaluating Neo4J or other DBs as alternatives. An example of stability concerns was a recent episode using 1.7.7 where we found that a small percentage of edges that we were creating in one of our loaders were only in one direction, could not be traversed in the other direction. We were going to report the problem and provide a code example - but then the problem disappeared and was not reproducible. We are left with a vague fear that the problem would recur and compromise our users data. Its certainly possible that this is our bug in the sense that we may be using the graph or document model incorrectly, but I'm concerned that we were able to provoke a behavior using low-level graph model operations that was 99% successful rather than either working or failing. We apparently ran into some edge case but we have no idea what the cause of the problem was or why it went away. While reading the dialog on this google group, I have been very impressed with your rapid response to bugs and questions. On the other hand, I'm worried that you and your team may be too responsive to requests for features - you have a fundamentally strong product but it can be compromised by spreading your efforts too broadly. (I'm sympathetic to the problem - our project faces the same feature vs. robustness tradeoffs as we come up to our v1.0 release) So I would like to put in a vote for a very solid, well-documented core OrientDB - and a release that we can commit to for a fairly long time if we limit ourselves to that core functionality. From the perspective of the NDEx project, here's a cut at our top priorities for OrientDB: (I understand that some of these issues are currently addressed. I'm enumerating our priorities, not making a list of implicit complaints :-) ) Robust operation of the Graph Model and Document Model Especially the reliability and correctness of stored content, methods for verifying correctness and consistency of database. Documentation and executable Java code examples for Graph and Document Model use Schema management Best practices for efficient queries and inserts Use of transactions Large inserts - when and why to turn off transactions, best practices to be robust without transactions. Best practices for indexing Including Lucene Documentation and code examples for use of OrientDB in embedded vs remote mode Connection pool management Documentation and script examples showing best practices for maintenance of production databases backup and restore strategies for recovery in cases of corrupted data replication migration between DB versions Clear separation of base Graph and Document Model usage documentation from higher level abstractions. we need simplicity, maintainability, and performance. Tinkerpop is cool, but the use of that option and the additional mental and computational overhead should be a very distinct choice. In the future, we will also be interested in scalabilty, distributed servers. But these are only of concern if the our single processor server is solid. Orient is of course a for-profit company. If some utilities / support packages aimed at production databases were part of the enterprise edition or support contracts, I'd be happy to hear more about it. Dexter Dexter Pratt Director, NDEx project Ideker Lab UCSD / Cytoscape Consortium dexterpratt@gmail.com - dex...@ndexbio.org www.ndexbio.org -- --- 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-database+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [orientdb] Setup problem: more Database 'xxx' is not configured on server problems
Hi Mayur, Seems this is a bug. Workaround: place your database where you want and create a symbolic link under $ORIENTDB_HOME/databases. Example: cd $ORIENTDB_HOME/databases ln -s /tmp/orientdb/GratefulDeadConcerts Lvc@ On 14 August 2014 18:07, Mayur Patel drone1...@gmail.com wrote: Erik Petersen seemed to have a similar problem in Feb but that thread just stops without resolution. I'm trying to set up OrientDB for testing, running on one workstation, accessed from another; both running Fedora Core 14. (The tests I describe below were tested in 1.7.7 and 1.7.8 in java 1.6_20 and java 1.7_51) Out of the box, I modified the orientdb-server-config.xml to add the user: user resources=* password=admin name=admin/ and configuration properties: entry value=/tmp/orientdb name=server.database.path/ entry value=true name=tx.commit.synch/ entry value=true name=tx.log.synch/ entry value=true name=index.durableInNonTxMode/ For testing, I'm putting my databases in /tmp/orientdb which is a local drive. I also edited orientdb.sh: ORIENTDB_DIR=/path to my home directory on a NAS/orientdb-community-1.7.8 ORIENTDB_USER=mpatel Minor gripe: On startup, I noticed that it overwrote the config xml, so the comments I'd left there were stripped. Why do that? I started the server, (I tried both orientdb.sh start as well as server.sh with the same result), seem to come up okay. Initialization ends with the line OrientDB Server v1.7.8 is active. [OServer]. On a remote machine, I try to connect. I can connect with this: % connect remote:gerra.spinpro.com admin admin Connecting to remote Server instance [remote:gerra.spinpro.com] with user 'admin'...OK but I cannot seem to connect to any existing databases. I've copied the test db (GratefulDeadConcerts/) to /tmp/orientdb/ but I fail to connect: % connect remote:gerra.spinpro.com/GratefulDeadConcerts admin admin Disconnecting from remote server [remote:gerra.spinpro.com/]. http://gerra.spinpro.com/%5D... OK Connecting to database [remote:gerra.spinpro.com/GratefulDeadConcerts] with user 'admin'... Error: com.orientechnologies.orient.core.exception.OConfigurationException: Database 'GratefulDeadConcerts' is not configured on server (home=/tmp/orientdb) I can create a new database: % create database remote:gerra.spinpro.com/test2 admin admin plocal document Creating database [remote:gerra.spinpro.com/test2] using the storage type [plocal]... Disconnecting from remote server [remote:gerra.spinpro.com/]. http://gerra.spinpro.com/%5D... OK Connecting to database [remote:gerra.spinpro.com/test2] with user 'admin'...OK Database created successfully. Current database is: remote:gerra.spinpro.com/test2 If I leave the console and come back, then I'm still good: % connect remote:gerra.spinpro.com/test2 admin admin Connecting to database [remote:gerra.spinpro.com/test2] with user 'admin'...OK but if I kill the orientDB server; and restart server.sh again, then I'm no longer able to connect: % connect remote:gerra.spinpro.com/test2 admin admin Disconnecting from the database [null]...OK Connecting to database [remote:gerra.spinpro.com/test2] with user 'admin'... Error: com.orientechnologies.orient.core.exception.OConfigurationException: Database 'test2' is not configured on server (home=/tmp/orientdb) I can connect to the database (as previously described) and get the configuration with 'config' and it does look like it's respecting the properties I've set. So how can I resolve this? Thanks, Mayur -- --- 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-database+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. -- --- 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-database+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [orientdb] Blueprints indexes and transactions
Hi Nicolas, Indexes are transactional. How did you create indexes? How did you lookup on them? Lvc@ On 14 August 2014 17:34, Nicolas Delsaux nicolas.dels...@gmx.fr wrote: Hi as i'm advancing over my port of gaedo (https://github.com/Riduidel/gaedo) to support OrientDB specificities, I'm fighting with a strange bug that appear only on transacted graph. Let me explain it further. In my test, I create a vertex and index it immediatly over all of its properties, in an index named vertices and inherited from Blueprints legacy. Each indexing is done in the form index('property name', 'property value', 'vertex'). When doing so, i try to get back that vertex from index but, when using a transacted graph, it seems to fail, and the vertex is duplicated, or at least it appears so. Indeed, when working on single-valuated properties, I do a test on update operations to make sure the source vertex is linked to only one destination vertex. When running with transactionless graph (calling the getNoTx() method), all goes fine. But, when running with transacted graph, I get lots of messages like this one : public com.dooapp.gaedo.test.beans.Message com.dooapp.gaedo.test.beans.User.about is linked to more than one vertex : v[#9:8]-com_dooapp_gaedo_test_beans_Post-10 v[#9:13]-com_dooapp_gaedo_test_beans_Post-10 v[#9:13]-com_dooapp_gaedo_test_beans_Post-10 v[#9:20]-com_dooapp_gaedo_test_beans_Post-10 v[#9:20]-com_dooapp_gaedo_test_beans_Post-10 v[#9:27]-com_dooapp_gaedo_test_beans_Post-10 v[#9:27]-com_dooapp_gaedo_test_beans_Post-10 v[#9:27]-com_dooapp_gaedo_test_beans_Post-10 v[#9:27]-com_dooapp_gaedo_test_beans_Post-10 (continuing on 50 lines). From debugging, I understand many vertices are created in that case. And I suspect, after a fast debug in OTransactionRealAbstract, that this may have something to do with the fact that the index is only updated at the end of the transaction. Am I right ? Notice that, as my library is supposed to work on OrientDB as well as on Neo4j, I'm very reluctant to any change in code. In such conditions, what can I do to fix that ? -- Nicolas Delsaux -- --- 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-database+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. -- --- 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-database+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [orientdb] Re: mono-directional edges
Hi Stefan, Mono-directional edge will be not part of 2.0, but we moved them to 2.2, sorry. Seems there is no much interest on it from the community. About 2.0, it will be ready for stable development starting from rc1 scheduled on the beginning of September 2014. Lvc@ On 14 August 2014 17:37, ste...@activitystream.com wrote: and again :) On Friday, 8 August 2014 21:20:12 UTC, ste...@activitystream.com wrote: Hi, Are mono-directional edges still on the roadmap for 2.0 and when do you think the new version will be stable enough for 3rd party, non critical, development? Regards, -Stefán -- --- 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-database+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. -- --- 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-database+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [orientdb] Re: OrientDB and neo4J
Hi Dexter, Hi Luca, I’d like to add my voice to the need for improved documentation. An example of stability concerns was a recent episode using 1.7.7 where we found that a *small percentage of edges* that we were creating in one of our loaders were only in one direction, could not be traversed in the other direction. We were going to report the problem and provide a code example - *but then the problem disappeared and was not reproducible*. We are left with a vague fear that the problem would recur and compromise our users data. Its certainly possible that this is our bug in the sense that we may be using the graph or document model incorrectly, but I’m concerned that we were able to provoke a behavior using low-level graph model operations that was 99% successful rather than either working or failing. We apparently ran into some edge case but we have no idea what the cause of the problem was or why it went away. We usually see such problems in 2 cases: - Graph and Document API are used together - Operations against Graph are non transactional If you can find that the problem is in OrientDB, please let us know to fix it asap. While reading the dialog on this google group, I have been very impressed with your rapid response to bugs and questions. On the other hand, I’m worried that you and your team may be too responsive to requests for features - you have a fundamentally strong product but it can be compromised by spreading your efforts too broadly. (I’m sympathetic to the problem - our project faces the same feature vs. robustness tradeoffs as we come up to our v1.0 release) So I would like to put in a vote for a very solid, well-documented core OrientDB - and a release that we can commit to for a fairly long time if we limit ourselves to that core functionality. This is what most of the users asked us, and this is the reason why we're working hard to provide an always more efficient, fast and reliable engine with OrientDB 2.0. We've also started to rewrite our SQL engine to be more strict avoiding weird corner cases with some syntax. This will be ready in 2.1. All the last new components are configured as external plugins. Take a look at: - OrientDB-Lucene (https://github.com/orientechnologies/orientdb-lucene) and - OrientDB-ETL (https://github.com/orientechnologies/orientdb-etl/wiki) From the perspective of the NDEx project, here’s a cut at our top priorities for OrientDB: *(I understand that some of these issues are currently addressed. I’m enumerating our priorities, not making a list of implicit complaints :-) )* - Robust operation of the Graph Model and Document Model - Especially the reliability and correctness of stored content, methods for verifying correctness and consistency of database. - Documentation and executable Java code examples for Graph and Document Model use - Schema management - Best practices for efficient queries and inserts - Use of transactions - Large inserts - when and why to turn off transactions, best practices to be robust without transactions. - Best practices for indexing - Including Lucene - Documentation and code examples for use of OrientDB in embedded vs remote mode - Connection pool management - Documentation and script examples showing best practices for maintenance of production databases - backup and restore - strategies for recovery in cases of corrupted data - replication - migration between DB versions - Clear separation of base Graph and Document Model usage documentation from higher level abstractions. - we need simplicity, maintainability, and performance. - Tinkerpop is cool, but the use of that option and the additional mental and computational overhead should be a very distinct choice. Thanks for the list! Improving the documentation is on our todo-list, any suggestions like yours is welcome. In the future, we will also be interested in scalabilty, distributed servers. But these are only of concern if the our single processor server is solid. Orient is of course a for-profit company. If some utilities / support packages aimed at production databases were part of the enterprise edition or support contracts, I’d be happy to hear more about it. OrientDB is an Open Source project, so it's non-profit. But Orient Technologies was created to give professional support to the Open product. We have two support plans: Development and Production. Take a look at: http://www.orientechnologies.com/support/. With both the supports you'd have a private channel with OrientDB committers to help your team to fix problems and to validate the way OrientDB has been used. Lvc@ Dexter Dexter Pratt Director, NDEx project Ideker Lab UCSD / Cytoscape Consortium dexterpratt.bio@g depr...@ucsd.edumail.com - dex...@ndexbio.org www.ndexbio.org
Re: [orientdb] valid property names in graph API
On 14 August 2014 11:33, Nicolas Delsaux nicolas.dels...@gmx.fr wrote: Hi I'm currently trying to make sure my graph mapping library ( https://github.com/Riduidel/gaedo) supports OrientDB. I must confess first tests are not that satisfying : it seems there are invalid characters for property names, contrary to what Blueprints doc states there http://www.tinkerpop.com/docs/javadocs/blueprints/2.5.0/com/ tinkerpop/blueprints/Element.html#setProperty(java.lang. String,%20java.lang.Object) key - the string key of the property Indeed, when I try to call the setproperty method with key = java.util.Map$Entry___key value = java.lang.String___a nothing happens. AT ALL. is there a reason for this lack of reaction of orientDB ? Is there a way to configure the way orientDB reacts when encountering an unsupported character in property key or value ? Could it be possible to add this limitation to Blueprints implementation to the https://github.com/orientechnologies/orientdb/ wiki/Graph-Database-Tinkerpop page ? You can configure OrientDB to be less strict than Blueprints that doesn't accept NULL values and the id property name: graph.setStandardElementConstraints(false); But in your case the problem seems to be the dot (.). In OrientDB with the dot-notation you cross embedded objects (this isn't supported by Blueprints and Neo4J). Can you try to set this against vertex/edge before to set the property? v.getRecord().setAllowChainedAccess(false); If this works (please let me know it), we can fix BP implementation to implicitly call this method against all the vertex/edge underlying documents. I must - to my big disappointment - confess this code is tested and works exactly as expected with two other Graph implementations : TinkerGraph (quite logical) and neo4j. Do I have to plan a long adaptation delay to have my API working with OrientDB ? Strange property names apart, which are the other problems (I already saw other email about transactions indexes) ? Lvc@ Thanks -- Nicolas Delsaux -- --- 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-database+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. -- --- 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-database+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[orientdb] Re: Trouble Using difference()... or removing one result set from another
Is there no simple way to remove the vertices found by one traversal from the vertices found in another traversal? I've been experimenting and researching since my original post, and haven't had any luck so far. Regards, Andrew -- --- 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-database+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [orientdb] Setup problem: more Database 'xxx' is not configured on server problems
For testing, I can do this; but for deployment this is going to be a deal-breaker for us. Can you give me a bug# and/or ETA until this is addressed? Thanks, Mayur On Thursday, August 14, 2014 12:17:03 PM UTC-4, Lvc@ wrote: Hi Mayur, Seems this is a bug. Workaround: place your database where you want and create a symbolic link under $ORIENTDB_HOME/databases. Example: cd $ORIENTDB_HOME/databases ln -s /tmp/orientdb/GratefulDeadConcerts Lvc@ On 14 August 2014 18:07, Mayur Patel dron...@gmail.com javascript: wrote: Erik Petersen seemed to have a similar problem in Feb but that thread just stops without resolution. I'm trying to set up OrientDB for testing, running on one workstation, accessed from another; both running Fedora Core 14. (The tests I describe below were tested in 1.7.7 and 1.7.8 in java 1.6_20 and java 1.7_51) Out of the box, I modified the orientdb-server-config.xml to add the user: user resources=* password=admin name=admin/ and configuration properties: entry value=/tmp/orientdb name=server.database.path/ entry value=true name=tx.commit.synch/ entry value=true name=tx.log.synch/ entry value=true name=index.durableInNonTxMode/ For testing, I'm putting my databases in /tmp/orientdb which is a local drive. I also edited orientdb.sh: ORIENTDB_DIR=/path to my home directory on a NAS/orientdb-community-1.7.8 ORIENTDB_USER=mpatel Minor gripe: On startup, I noticed that it overwrote the config xml, so the comments I'd left there were stripped. Why do that? I started the server, (I tried both orientdb.sh start as well as server.sh with the same result), seem to come up okay. Initialization ends with the line OrientDB Server v1.7.8 is active. [OServer]. On a remote machine, I try to connect. I can connect with this: % connect remote:gerra.spinpro.com admin admin Connecting to remote Server instance [remote:gerra.spinpro.com] with user 'admin'...OK but I cannot seem to connect to any existing databases. I've copied the test db (GratefulDeadConcerts/) to /tmp/orientdb/ but I fail to connect: % connect remote:gerra.spinpro.com/GratefulDeadConcerts admin admin Disconnecting from remote server [remote:gerra.spinpro.com/]. http://gerra.spinpro.com/%5D... OK Connecting to database [remote:gerra.spinpro.com/GratefulDeadConcerts] with user 'admin'... Error: com.orientechnologies.orient.core.exception.OConfigurationException: Database 'GratefulDeadConcerts' is not configured on server (home=/tmp/orientdb) I can create a new database: % create database remote:gerra.spinpro.com/test2 admin admin plocal document Creating database [remote:gerra.spinpro.com/test2] using the storage type [plocal]... Disconnecting from remote server [remote:gerra.spinpro.com/]. http://gerra.spinpro.com/%5D... OK Connecting to database [remote:gerra.spinpro.com/test2] with user 'admin'...OK Database created successfully. Current database is: remote:gerra.spinpro.com/test2 If I leave the console and come back, then I'm still good: % connect remote:gerra.spinpro.com/test2 admin admin Connecting to database [remote:gerra.spinpro.com/test2] with user 'admin'...OK but if I kill the orientDB server; and restart server.sh again, then I'm no longer able to connect: % connect remote:gerra.spinpro.com/test2 admin admin Disconnecting from the database [null]...OK Connecting to database [remote:gerra.spinpro.com/test2] with user 'admin'... Error: com.orientechnologies.orient.core.exception.OConfigurationException: Database 'test2' is not configured on server (home=/tmp/orientdb) I can connect to the database (as previously described) and get the configuration with 'config' and it does look like it's respecting the properties I've set. So how can I resolve this? Thanks, Mayur -- --- 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 javascript:. For more options, visit https://groups.google.com/d/optout. -- --- 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-database+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[orientdb] Re: Trouble Using difference()... or removing one result set from another
Maybe to clarify, I'm looking for the equivalent behavior of the SQL EXCEPT operator: - https://en.wikipedia.org/wiki/Set_operations_%28SQL%29#EXCEPT_operator - http://publib.boulder.ibm.com/infocenter/rbhelp/v6r3/index.jsp?topic=%2Fcom.ibm.redbrick.doc6.3%2Fsqlrg%2Fsqlrg42.htm I sort of expected the difference() function in OrientDB's SQL language to have the analogous behavior of EXCEPT, since the union() function seems to equate to the classic UNION operator, and the intersect() function seems to equate to the classic INTERSECT operator. What am I missing? Is there a bug in how difference() is working? Or am I trying to use it in a way it wasn't intended? Regards, Andrew -- --- 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-database+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[orientdb] asynchronous dserver?
Dear colleagues, I am trying to figure out how to deploy a distributed orientdb setup. I've followed the manuals, which explicitly state that writeQuorum 1 will result in 100% asynchronous mode, however I am faced with inserts taking up to 1 second or more. Example: orientdb {GratefulDeadConcerts} insert into followed_by (out, in, weight) values (#9:1, #9:1, 1) Inserted record 'followed_by#11:7061{out:#9:1,in:#9:1,weight:1} v1' in 0.953000 sec(s). When I don't run in distributed mode, I have: orientdb {GratefulDeadConcerts} insert into followed_by (out, in, weight) values (#9:1, #9:1, 1) Inserted record 'followed_by#11:7063{out:#9:1,in:#9:1,weight:1} v1' in 0.002000 sec(s). writeQuorum 1 has no effect, I've tried several releases from the 1.7 branch and even 2.0, all with the same result. It is important to note that the nodes are each located on a different continent. OrientDB looks great and I would really like to use it. Any advice on how to achieve asynchronous replication is greatly appreciated. Best regards, - Ben -- --- 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-database+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [orientdb] asynchronous dserver?
Hi Ben, setting writeQuorum = 1 in your scenario means that the server node where the client is connected should be the first to respond (for obvious reasons), so it's crazy it takes 1 second for 1 insert. To know more try to enable logging on the server where the client is connected. Edit config/orientdb-server-log.properties and put these lines .level = INFO com.orientechnologies.level = INFO com.orientechnologies.orient.server.distributed.level = FINE com.orientechnologies.orient.server.hazelcast.level = FINE com.orientechnologies.orient.server.journal.level = FINE At the restart you should have much more logging information, then send us the log for the insert. Lvc@ On 14 August 2014 20:38, vogt@gmail.com wrote: Dear colleagues, I am trying to figure out how to deploy a distributed orientdb setup. I've followed the manuals, which explicitly state that writeQuorum 1 will result in 100% asynchronous mode, however I am faced with inserts taking up to 1 second or more. Example: orientdb {GratefulDeadConcerts} insert into followed_by (out, in, weight) values (#9:1, #9:1, 1) Inserted record 'followed_by#11:7061{out:#9:1,in:#9:1,weight:1} v1' in 0.953000 sec(s). When I don't run in distributed mode, I have: orientdb {GratefulDeadConcerts} insert into followed_by (out, in, weight) values (#9:1, #9:1, 1) Inserted record 'followed_by#11:7063{out:#9:1,in:#9:1,weight:1} v1' in 0.002000 sec(s). writeQuorum 1 has no effect, I've tried several releases from the 1.7 branch and even 2.0, all with the same result. It is important to note that the nodes are each located on a different continent. OrientDB looks great and I would really like to use it. Any advice on how to achieve asynchronous replication is greatly appreciated. Best regards, - Ben -- --- 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-database+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. -- --- 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-database+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [orientdb] Re: OrientDB and neo4J
Thanks for the prompt and thoughtful response, comments below... - Dexter Hi Dexter, Hi Luca, I'd like to add my voice to the need for improved documentation. An example of stability concerns was a recent episode using 1.7.7 where we found that a small percentage of edges that we were creating in one of our loaders were only in one direction, could not be traversed in the other direction. We were going to report the problem and provide a code example - but then the problem disappeared and was not reproducible. We are left with a vague fear that the problem would recur and compromise our users data. Its certainly possible that this is our bug in the sense that we may be using the graph or document model incorrectly, but I'm concerned that we were able to provoke a behavior using low-level graph model operations that was 99% successful rather than either working or failing. We apparently ran into some edge case but we have no idea what the cause of the problem was or why it went away. We usually see such problems in 2 cases: - Graph and Document API are used together This is an excellent insight. I'll have to review with my team to see if we might have done this, but this is the kind of roadmap / best practices documentation that would be wonderful to make more prominent. I'll go back and see if I can find this in the documentation, but your advice raises the following questions: Is it *always* a bad idea to mix the two models? Or just within one transaction? What about cases where different parts of a multi module application use the same DB? Is it only bad in the context of writes? Or are queries problematic? - Operations against Graph are non transactional If you can find that the problem is in OrientDB, please let us know to fix it asap. Thanks, as I said before, we appreciate your responsiveness and obvious hard work on this system While reading the dialog on this google group, I have been very impressed with your rapid response to bugs and questions. On the other hand, I'm worried that you and your team may be too responsive to requests for features - you have a fundamentally strong product but it can be compromised by spreading your efforts too broadly. (I'm sympathetic to the problem - our project faces the same feature vs. robustness tradeoffs as we come up to our v1.0 release) So I would like to put in a vote for a very solid, well-documented core OrientDB - and a release that we can commit to for a fairly long time if we limit ourselves to that core functionality. This is what most of the users asked us, and this is the reason why we're working hard to provide an always more efficient, fast and reliable engine with OrientDB 2.0. We've also started to rewrite our SQL engine to be more strict avoiding weird corner cases with some syntax. This will be ready in 2.1. Great, I'm very happy to hear that 2.0 is focused on reliability stability. All the last new components are configured as external plugins. Take a look at: - OrientDB-Lucene (https://github.com/orientechnologies/orientdb-lucene) and - OrientDB-ETL (https://github.com/orientechnologies/orientdb-etl/wiki) More good news - we will start using the lucene plugin shortly From the perspective of the NDEx project, here's a cut at our top priorities for OrientDB: (I understand that some of these issues are currently addressed. I'm enumerating our priorities, not making a list of implicit complaints :-) ) Robust operation of the Graph Model and Document Model Especially the reliability and correctness of stored content, methods for verifying correctness and consistency of database. Documentation and executable Java code examples for Graph and Document Model use Schema management Best practices for efficient queries and inserts Use of transactions Large inserts - when and why to turn off transactions, best practices to be robust without transactions. Best practices for indexing Including Lucene Documentation and code examples for use of OrientDB in embedded vs remote mode Connection pool management Documentation and script examples showing best practices for maintenance of production databases backup and restore strategies for recovery in cases of corrupted data replication migration between DB versions Clear separation of base Graph and Document Model usage documentation from higher level abstractions. we need simplicity, maintainability, and performance. Tinkerpop is cool, but the use of that option and the additional mental and computational overhead should be a very distinct choice. Thanks for the list! Improving the documentation is on our todo-list, any suggestions like yours is welcome. In the future, we will also be interested in scalabilty, distributed servers. But these are only of concern if the our single processor server is solid. Orient is of course a for-profit
Re: [orientdb] Using in(), inv, in.out, etc. with lightweight edges
I apologize for the late reply. I must not be configured to receive email notifications. But I solved my issue, thanks! And you responded on stackoverflow! On Wednesday, August 13, 2014 12:46:49 PM UTC-7, Lvc@ wrote: Hi Ricardo, Can you post a query to take a look to what's wrong? Lvc@ On 13 August 2014 21:34, Ricardo Rivas ricardo.riv...@gmail.com javascript: wrote: Hi, Most example of traversals after a WHERE clause I found in documentation does not work for me. I am only able to successfully compare in the WHERE clause by using in_label and this only works for single items. Arrays under that field do not work. Is this due to lightweight edges? Any thoughts? Thank you, Ricardo Rivas, NDEx Project -- --- 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 javascript:. For more options, visit https://groups.google.com/d/optout. -- --- 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-database+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [orientdb] asynchronous dserver?
Hi Lvc, Thanks for quick response. I've updated the log settings as you specified and attached the output for the following insert (still with writeQuorum 1): orientdb {GratefulDeadConcerts} insert into followed_by (out, in, weight) values (#9:1, #9:1, 1) Inserted record 'followed_by#11:7064{out:#9:1,in:#9:1,weight:1} v1' in* 1.374000 *sec(s). 2014-08-15 05:31:13:348 FINE [node1408040014769]-[[node1408040014769, node1408040027697]] sending request id=1 from=node1408040014769 task=record_create(#11:-1 v.0) userName= [OHazelcastDistributedDatabase] 2014-08-15 05:31:13:590 FINE [node1408040014769] processing request=id=1 from=node1408040014769 task=record_create(#11:-1 v.0) userName= sourceNode=node1408040014769 [OHazelcastDistributedDatabase] 2014-08-15 05:31:13:710 FINE [node1408040014769]-[[node1408040014769, node1408040027697]] sent request 1 (record_create(#11:-1 v.0)) [OHazelcastDistributedDatabase] 2014-08-15 05:31:13:711 FINE [node1408040014769] received request: id=1 from=node1408040014769 task=record_create(#11:-1 v.0) userName= [OHazelcastDistributedDatabase] 2014-08-15 05:31:13:717 FINE [node1408040014769] creating record GratefulDeadConcerts/#11:-1 v.0... [OCreateRecordTask] 2014-08-15 05:31:13:746 FINE [node1408040014769] +- assigned new rid GratefulDeadConcerts/#11:7064 v.1 [OCreateRecordTask] 2014-08-15 05:31:13:747 FINE [node1408040014769] sending back response '#11:7064 v.1' to request 1 (record_create(#11:7064 v.0)) [OHazelcastDistributedDatabase] 2014-08-15 05:31:13:876 FINE [node1408040014769] received response '#11:7064 v.1' for request (id=1 from=node1408040014769 task=record_create(#11:-1 v.0) userName=) (receivedCurrentNode=true receivedResponses=1) [ODistributedResponseManager] 2014-08-15 05:31:14:022 FINE [node1408040014769]-[node1408040027697] received response '#11:7064 v.1' for request (id=1 from=node1408040014769 task=record_create(#11:7064 v.1) userName=) (receivedCurrentNode=true receivedResponses=2) [ODistributedResponseManager] My distributed conf: 2014-08-15 05:30:22:227 INFO updated distributed configuration for database: GratefulDeadConcerts: -- { version:2, autoDeploy:true, hotAlignment:false, readQuorum:1, writeQuorum:1, failureAvailableNodesLessQuorum:false, readYourWrites:true,clusters:{ internal:null, index:null, *:{ servers:[NEW_NODE,node1408040014769,node1408040027697] } } } -- Regards, - Ben -- --- 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-database+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.