Hi László, Due to nature of my data I don't and won't have that amount of vertices as you have. I don't have any problem with performance so far.
-Andrey On 27 March 2014 16:15, László Rékasi <[email protected]> wrote: > Hi Andrew' > > It's something useful to play with :-) > Meantime I have started to get it work in javascript function. > May I know if you have faced to performance problems? My friends told me > that it was not easy to sort it out with gremlin on a bitcoin database. How > much data you deal with? > I have approx: > - vA: 1 million > - vB: 2 million > - vC: around 200-300 million > - vD: 2 million > - vE: 200 k > And having few other class of vertices, 1 million each. > > I think it still not "big data", but something I can manage on a commodity > oracle server. But it is not good for realtime recommender engine, although > the performance is pretty good :-) > > Thx! > L. > 2014.03.27. 14:03 ezt írta ("Andrey Yesyev" <[email protected]>): > > Hi László, >> >> I found this site is very useful http://gremlindocs.com/ >> >> This is how I look for all paths between 2 vertices, with rids #21:7 and >> #16:10 >> >> g.v('#21:7').as('person').both('RELATED').loop('person'){it.object.id.toString() >>> != '#16:10' && it.loops < 4}.filter{it.id.toString()=='#16:10'}.path() >> >> >> This is how java code looks like >> >> OrientGraph graph = >>> DatabaseManager.getInstance().getDatabase("remote: >>> 192.168.200.128/ePersona").getConnection(); >>> Pipe pipe = >>> Gremlin.compile("_().as('person').both('RELATED').loop('person'){it.object.id.toString() >>> != '#16:10' && it.loops < >>> 4}.filter{it.id.toString()=='#16:10'}.path()[10..20]"); >>> pipe.setStarts(new >>> SingleIterator<Vertex>(graph.getVertex("#21:7"))); >>> Merger m = new Merger(); >>> Path paths = m.mergePathsResults(pipe); >>> for(Object o : pipe) { >>> ArrayList<Vertex> path = (ArrayList<Vertex>)o; >>> for(Vertex v:path){ >>> System.out.print("->" + v.getProperty("name") + "[" + >>> v.getProperty("@class") + "]"); >>> } >>> System.out.println(); >>> } >> >> >> example with weights you can find on gremlindocs site. >> >> -Andrey >> >> >> On 27 March 2014 01:44, László Rékasi <[email protected]> wrote: >> >>> Hi, >>> >>> Thank you! >>> Thought that it could not be easy :-) Meantime realized that there are >>> nodes and egdes in chain :-) but not projected result sets like in rdbms >>> world. >>> >>> Unfortunately I am not a developer, but a guy in business side with some >>> it skill, so somehow I need to make it with out of the box solution to >>> proof that it worth to spend time on it. So maybe javascript function can >>> be the answer somehow. >>> >>> @Andrey, could you please share your use case and solution with me? >>> Orientdb lacks of complete, step by step tutorial, or at least I did not >>> find too many. >>> >>> Thx! >>> L. >>> 2014.03.27. 2:08 ezt írta ("Andrey Yesyev" <[email protected]>): >>> >>> Hi there, >>>> >>>> I have the similar problems. I solved them using Gremlin-Groovy. >>>> I doubt you can do what you need using SQL. >>>> >>>> >>>> -Andrey >>>> >>>> On Tuesday, March 25, 2014 3:58:06 PM UTC-4, László Rékasi wrote: >>>>> >>>>> Hi, >>>>> >>>>> I have the following datastructure (every entity has its own class): >>>>> vertexes : vA, vB, vC, vD, vE >>>>> there is eAB between vA and vB with one to many relation >>>>> eBC between vB and vC with one to many relation >>>>> eDC between vD and vC with one to many relation from D to C (so vC is >>>>> a for resolving many to many between vB and vD, but having lots of >>>>> properties) >>>>> eED between vE and vD with one to many relation from E to D >>>>> >>>>> Now I would like to find vA and vD nodes where there is a path between >>>>> with the following conditions and expectations: >>>>> >>>>> - I need the ID and some fields from both vA and vD >>>>> - want to know the number of path between vA and vD >>>>> - want to sum() some fields in vC as weight >>>>> - want to filter on fields of all vertexes (vA.fld='X', vB.fld_b = >>>>> 'Y', etc >>>>> >>>>> Basically the situation is something like: >>>>> [person] - (having)->[user accounts] >>>>> [user account]-(post)->[message]-(to)->[recepients' account] >>>>> [recepient's account]-(belongs to)->[user] >>>>> >>>>> So want to know who sent messages in certain time to X type of user >>>>> and how many times. Wants to know the first and last date. The sender >>>>> belongs to Y domain. >>>>> person.domain = 'Y' >>>>> message.sent_date between D1 and D2 >>>>> user.type = 'hacker' >>>>> >>>>> I need it in SQL. >>>>> >>>>> Any suggestion is very appreciated! >>>>> Thank you in advance! >>>>> L. >>>>> >>>> -- >>>> >>>> --- >>>> 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/IKbefI2QA3M/unsubscribe >>>> . >>>> To unsubscribe from this group and all its topics, send an email to >>>> [email protected]. >>>> 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/IKbefI2QA3M/unsubscribe >>> . >>> To unsubscribe from this group and all its topics, send an email to >>> [email protected]. >>> 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/IKbefI2QA3M/unsubscribe >> . >> To unsubscribe from this group and all its topics, send an email to >> [email protected]. >> 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/IKbefI2QA3M/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > [email protected]. > 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 [email protected]. For more options, visit https://groups.google.com/d/optout.
