JanusGraph 0.5.2 and BigTable
Assaf Schwartz <schw...@...>
Hi All,
I'm experiencing an issues with running JanusGraph (on top of GKE) against BigTable. This is the general setup description:
Description of the problem:
I've also validated that db-caching is turned off. Help! :) Many thanks in advance, Assaf |
|
Re: Use index for sorting
toom <to...@...>
Thank you very much, I'll try that.
toggle quoted message
Show quoted text
Toom. On Thursday, December 17, 2020 at 8:28:52 AM UTC+1 ow...@... wrote:
|
|
Re: Use index for sorting
"ow...@gmail.com" <owner...@...>
We use special strategy that rewrite order comparator for supporting missing values https://gist.github.com/mad/6bef960d51d7a0d89a8c310851023303 пятница, 4 декабря 2020 г. в 09:59:13 UTC+3, t...@...:
|
|
Aggregating edges based on the source & target vertex attributes
vishnu gajendran <ggvis...@...>
Hello,
I request your help regarding the janus graph query which I am trying to construct. Let's consider the following graph where each vertex denotes a person and the edge between any two vertex denotes collaboration between them. Vertices: p1 = graph.addVertex('person') p1.property('personId', 1) p1.property('organization', "engineering") p2 = graph.addVertex('person') p2.property('personId', 2) p2.property('organization', "sales") p3 = graph.addVertex('person') p3.property('personId', 3) p3.property('organization', "marketing") p4 = graph.addVertex('person') p4.property('personId', 4) p4.property('organization', "engineering") Edges: p1.addEdge('collaboration', p2, 'collaborationHours', 1) p1.addEdge('collaboration', p3, 'collaborationHours', 2) p2.addEdge('collaboration', p3, 'collaborationHours', 2) p3.addEdge('collaboration', p4, '
collaborationHours', 2) p4.addEdge('collaboration', p2, '
collaborationHours', 2) Expected Result is the following table: Organization1 Organization2 Total Collaboration Hours Engineering Sales 4 Engineering Marketing 2 Sales Marketing 2 Marketing Engineering 2 Here, I am trying to aggregate the "person to person" graph into "organization to organization" graph. Does JanusGraph support such aggregation queries? If yes, can you please help me with the query for the same? Thanks |
|
Re: Condition where-inV-is does not work
HadoopMarc <bi...@...>
Hi Anton, To compare objects you need the eq() predicate, not the is() step (see https://tinkerpop.apache.org/docs/current/reference/#a-note-on-predicates). Also note that JanusGraph uses RelationIdentifier objects as id's. So, give the following a try (not tested): g.V(110792).as('a').V(41099392).outE('LINK').where(inV().eq('a')) Best wishes, Marc Op woensdag 16 december 2020 om 10:03:33 UTC+1 schreef Anton Eroshenko:
|
|
Re: addE doesn't create more than 1 edge
Anton Eroshenko <erosh...@...>
Thanks for your explanation. I got the idea, that "many" side of "one-to-many" relationship should go first when adding edges.
toggle quoted message
Show quoted text
On Wednesday, December 16, 2020 at 2:03:31 AM UTC+7 Amiya wrote:
|
|
Re: Condition where-inV-is does not work
Anton Eroshenko <erosh...@...>
Thanks for reply. In real query I don't have an ID, that's why I use traversal in where clause. Tried this one, but it does not work either:
g.V(41099392).outE('LINK').where(inV().hasId(V(110792).id()))
On Wednesday, December 16, 2020 at 1:45:50 AM UTC+7 Amiya wrote:
|
|
Re: How to improve traversal query performance
Manabu Kotani <smallcany...@...>
Hi Marc,
toggle quoted message
Show quoted text
Thank you for your too much advice. I will keep learning about Gremlin query for better performance. Thanks a lot! Manabu. 2020年12月11日金曜日 22:40:21 UTC+9 HadoopMarc:
|
|
Re: addE doesn't create more than 1 edge
Amiya <amiyakr...@...>
Marc is correct about "It is not a bug: the addE() step only adds one edge per traverser". I think query by Mark will create a self link. Below query might work (not tested) g.V().hasLabel('Activity').as('a'). V().has('person', 'id', within('p1', 'p2')).addE('LINK').from('a') On Tuesday, 15 December 2020 at 20:36:56 UTC+5:30 HadoopMarc wrote:
|
|
Re: Condition where-inV-is does not work
Amiya <amiyakr...@...>
On Tuesday, 15 December 2020 at 20:45:40 UTC+5:30 Anton Eroshenko wrote:
|
|
Re: addE doesn't create more than 1 edge
HadoopMarc <bi...@...>
Hi Anton, It is not a bug: the addE() step only adds one edge per traverser. Also, using g.V() twice is an anti-pattern. Try it the other way around, something like (not tested): g.V().hasLabel('person').has('id', within('p1', 'p2')).as('a').addE('LINK').from('a') Now the addE() step runs on two traversers. HTH, Marc Op dinsdag 15 december 2020 om 12:22:56 UTC+1 schreef Anton Eroshenko:
|
|
Condition where-inV-is does not work
Anton Eroshenko <erosh...@...>
Hi, JanusGraph users. I try a simple query from TinkerPop docs with my JanusGraph installation, but it does not work as expected. How is it possible: gremlin> g.V(41099392).outE('LINK').inV() ==>v[110792] ==>v[81993864] gremlin> g.V(41099392).outE('LINK').where(inV().is(V(110792))) gremlin> The last query returns nothing... How to filter out vertices by traversal? Appreciate any help |
|
Re: Running OLAP on HBase with SparkGraphComputer fails with Error Container killed by YARN for exceeding memory limits
Evgeniy Ignatiev <yevgeniy...@...>
Oh, I recall that we once tried to debug the same issue with
JanusGraph-Hbase, had clear supernodes in the graph. No attempts
on repartitioning, including analyzing code of SparkGraphComputer
and tinkering around thought to make it work for partitioned
vertices etc. were successful - apparently using Cassandra (latest
3.x version at the time) didn't lead to OOM, but was noticeably
slower than HBase when we used it with smaller graphs. Best regards, On 15.12.2020 07:07, Roy Yu wrote:
Thanks Marc |
|
addE doesn't create more than 1 edge
Anton Eroshenko <erosh...@...>
I'm trying to link one vertex (let's say Activity) with two others (person), I expect to have two edges in result, the request below creates only one. gremlin> g.V().hasLabel('Activity') ==>v[40984624] gremlin> g.V().hasLabel('person').has('id', within('p1', 'p2')) ==>v[40996896] ==>v[41037952] gremlin> g.V().hasLabel('Activity').addE('LINK').to(g.V().hasLabel('person').has('id', within('p1', 'p2'))) ==>e[oe5mu-oefxs-b0np-oepeo][40984624-RESP->40996896] Is it a bug or I'm missing something? |
|
Re: Configuring Transaction Log feature
Sandeep Mishra <sandy...@...>
The code explains behavior. the api sets start time to null instead of Instant.now() hence different behaviour. public LogProcessorBuilder setStartTimeNow() { this.startTime = null; return this; } On Saturday, December 12, 2020 at 10:26:59 PM UTC+8 Sandeep Mishra wrote: Pawan, |
|
Re: Property with multiple data types
HadoopMarc <bi...@...>
Hi Laura, The JanusGraph storage backends can store many isolated graphs (see e.g. the storage.cql.keyspace configuration property). However, it is not possible to have edges between vertices from different graphs, so I guess this is not what you are looking for. Your question is valid, and, by coincidence, it is currently discussed on the developer's list of Apache TinkerPop: https://lists.apache.org/thread.html/rd1b6f842b806dd9bca18d91faced3db14ab6cf4e55c9d762b9657d5e%40%3Cdev.tinkerpop.apache.org%3E Best wishes, Marc Op maandag 14 december 2020 om 18:34:24 UTC+1 schreef Laura Morales: Maybe I'm completely wrong, but would I be right to say that "labels" are the equivalent of Java classes? Like, one label represents a Java class and graph properties represent a class properties? So, saying that a node has label L would be like saying that a certain Java object is of class C? (That's why there's only one label per node). I was picturing labels as arbitrary strings that are attached to a node. |
|
Re: Running OLAP on HBase with SparkGraphComputer fails with Error Container killed by YARN for exceeding memory limits
Roy Yu <7604...@...>
Thanks Marc
toggle quoted message
Show quoted text
On Friday, December 11, 2020 at 3:40:25 PM UTC+8 HadoopMarc wrote:
|
|
Re: Centric Indexes failing to support all conditions for better performance.
chrism <cmil...@...>
Thank you, looking forward to have profile() with such information added.
toggle quoted message
Show quoted text
Cheers, CM On Tuesday, December 15, 2020 at 2:26:02 AM UTC+11 Boxuan Li wrote: Hi Christopher, |
|
Re: Property with multiple data types
Laura Morales <laur...@...>
Maybe I'm completely wrong, but would I be right to say that "labels" are the equivalent of Java classes? Like, one label represents a Java class and graph properties represent a class properties? So, saying that a node has label L would be like saying that a certain Java object is of class C? (That's why there's only one label per node). I was picturing labels as arbitrary strings that are attached to a node.
Then in Java, classes are namespaced to avoid collision. If my analogy is true, what would be the equivalent of namespaces with Janus? Sent: Monday, December 14, 2020 at 2:29 PM From: "HadoopMarc" <bi...@...> To: "JanusGraph users" <janusgra...@...> Subject: Re: Property with multiple data types Hi Laura, Things are a bit different than you ask: a vertex has a single label onlya property key has a single datatype only, but it can be Object.class, see https://docs.janusgraph.org/basics/schema/#property-key-data-typeindices can have a label constraint, but these are not helpful if you want to mix the datatypes in a property for the same vertexI cannot predict well how the various janusgraph parts will behave when mixing up real integers and "string-integers" in a property key of the Object.class datatype. I guess that the gremlin traversals will have problems, while an indexing backend for MixedIndices probably can deal with it. The ref docs definitely advise to use the basic datatypes and spare yourself future headaches (so, unify the datatypes on ingestion). Best wishes, Marc Op maandag 14 december 2020 om 09:07:31 UTC+1 schreef Laura Morales: Thank you Marc, I think it does indeed! If I understand correctly, I can use labels to "namespace" my nodes, or in other words as a way to identify subgraphs. If I have a node with 2 labels instead, say label1 and label2, I can create 2 indices for the same node, right? That is an index for label1.age (Integer) and an index for label2.age (String), both indices containing the same node. In this scenario I should be allowed to add 2 types of properties to the same node, one containing an Integer and the other one containing a String. Then query by choosing a specific label. Does this work? Can I do something like this? Sent: Monday, December 14, 2020 at 8:01 AM From: "HadoopMarc" <b...@...> To: "JanusGraph users" <janu...@...> Subject: Re: Property with multiple data types Hi Laura, Good that you pay close attention to understanding indices in JanusGraph because they are essential to proper use. Does the following section of the ref docs answers your question? https://docs.janusgraph.org/index-management/index-performance/#label-constraint[https://docs.janusgraph.org/index-management/index-performance/#label-constraint] Best wishes, Marc Op zondag 13 december 2020 om 16:30:19 UTC+1 schreef Laura Morales:I'm new to Janus and LPGs. I have a question after reading the Janus documentation. As far as I understand, edges labels as well as properties (for both nodes and edges) are indexed globally. What happens when I have a sufficiently large graph, that completely unrelated and separate nodes want to use a property called with the same name but that holds different data types? For example, a property called "age" could be used by some nodes with a Integer type (eg. "age": 23), but other nodes on the other far-side of my big graph might want/need/require to use a String type (eg. "age": "twenty-seven"). Is this configuration possible with Janus? Or do I *have to* use two different names such as age_int and age_string? -- You received this message because you are subscribed to the Google Groups "JanusGraph users" group. To unsubscribe from this group and stop receiving emails from it, send an email to janusgr...@...[mailto:janusgr...@...]. To view this discussion on the web visit https://groups.google.com/d/msgid/janusgraph-users/0b84be68-3688-46fe-a104-32baef119e2an%40googlegroups.com[https://groups.google.com/d/msgid/janusgraph-users/0b84be68-3688-46fe-a104-32baef119e2an%40googlegroups.com?utm_medium=email&utm_source=footer][https://groups.google.com/d/msgid/janusgraph-users/0b84be68-3688-46fe-a104-32baef119e2an%40googlegroups.com%5Bhttps://groups.google.com/d/msgid/janusgraph-users/0b84be68-3688-46fe-a104-32baef119e2an%40googlegroups.com?utm_medium=email&utm_source=footer]]. -- You received this message because you are subscribed to the Google Groups "JanusGraph users" group. To unsubscribe from this group and stop receiving emails from it, send an email to janusgra...@...[mailto:janusgra...@...]. To view this discussion on the web visit https://groups.google.com/d/msgid/janusgraph-users/24ee1b44-3501-4d40-abef-b32aa345c959n%40googlegroups.com[https://groups.google.com/d/msgid/janusgraph-users/24ee1b44-3501-4d40-abef-b32aa345c959n%40googlegroups.com?utm_medium=email&utm_source=footer]. |
|
Re: Centric Indexes failing to support all conditions for better performance.
Boxuan Li <libox...@...>
Hi Christopher,
toggle quoted message
Show quoted text
I don't have any workaround in mind except testing and comparing query latencies. I have created https://github.com/JanusGraph/janusgraph/issues/2283 which hopefully can be addressed before the next release. That being said, there is no planned date for the next release yet. Btw as I mentioned earlier, if you use "hasNot" it almost never leverages index - no matter if it's a mixed or composite or vertex-centric index. Best regards, Boxuan chrism在 2020年12月14日星期一上午11:56:57 [UTC+8]寫道: Thank you Boxuan Li, |
|