Removing a vertex is not removing recently added properties in different transaction


Priyanka Jindal
 

I am using janus client with hbase as storage backend.
In my case, I am using index ind1 to fetch vertices from the graph. Upon fetching I am adding some properties (e.g one such property is p1) to the vertices and committing the transaction.
In the next transaction, I am fetching the vertices using index ind2 where one key in the index is the property (p1) added in the last transaction. I get the vertices and remove them. Vertices are reported to be removed successfully. But sometimes they are still present with only the properties (p1) added in the previous transaction. Although other properties/edges have been removed. This is happening very intermittently. 
It would be really helpful if someone has an idea about this and can explain me.


hadoopmarc@...
 

The behavior you describe sounds like the behavior one experiences for transactions occurring in parallel. So let us investigate some further:
  • do you use CompositeIndex or MixedIndex?
  • is it certain that the two transaction do not overlap in time (as "next" suggests)?
  • do the two transactions occur in the same janusgraph instance?
  • is hbase configured as a single host or as a cluster?

Marc


Priyanka Jindal
 

Please find my answers inline:

  • do you use CompositeIndex or MixedIndex?
- i am suing composite index
  • is it certain that the two transaction do not overlap in time (as "next" suggests)?
- They do not overlap in time.
  • do the two transactions occur in the same janusgraph instance?
- Yes they do
  • is hbase configured as a single host or as a cluster?
- Its a cluster.

If i add some delay b/w two operations then vertices are getting removed correctly.


hadoopmarc@...
 

Hi Priyanka,

The case you describe sounds suspect and might be a JanusGraph issue. Your last remark ("If i add some delay b/w two operations then vertices are getting removed correctly.") gives an important clue as to what is going on.

A few additional questions:
  • Do have the JanusGraph database cache disabled? (This is the default setting for JanusGraph-0.5+)?
  • See the tunability section of https://hbase.apache.org/acid-semantics.html. Did you enable any HBase client settings that impact the HBase visibility guarantees (https://hbase.apache.org/book.html#arch.timelineconsistent.reads )? Note that you may have a CLASSPATH that picks up hbase-site.xml configs from your cluster.
If this turns out to be a JanusGraph issue, is it possible for you do the graph operations in a single transaction (workaround)?

Best wishes,   Marc