Reverse Edges Movable?

What I want to do

Move a reverse edge to live with its owner

What I did

tried moving it with the zero’s move tablet endpoint, got error (on zero):

While moving predicate ~tenant.supports from 1 -> 2. Error: while calling MovePredicate: rpc error: code = Unknown desc = Expecting first key to be schema key: key:"\000\000\021~tenant.supports\000\000\000\000\000\004\275\340\351" user_meta:"\020" version:126941803 stream_id:1

When you query the /state http endpoint or StreamMembership() grpc endpoint, you get back results of tablets that are reverse edges. I did not expect to see these here, but some show up (not all the reverse edges in my system, but ~15 out of several hundred at least… based on size maybe?)

I wrote a program to manage the dgraph tablet locations (talked about it here) and it just acts on the results of StreamMembership(), and selects the best group for the tablet based on what tenant it is (colocating a tenant’s predicates while still distributing all the predicates is the purpose). So my program tries to move the reverse edges that come back from StreamMembership().

So questions are:

  1. do those reverse edges belong in the return of that endpoint at all?
    • If so, why dont all of them show?
    • if not, why do a few of them show?
  2. do the reverse edge indexes live in a different place than the forward edge?
    • If so I would like to be able to control locality of them.

ps. moving tablets over grpc would be way better than having to call the http api for this… as this topic said… just saying.

Dgraph metadata

dgraph version

[Decoder]: Using assembly version of decoder
Page Size: 4096

Dgraph version : v20.11.2
Dgraph codename : tchalla-2
Dgraph SHA-256 : 0153cb8d3941ad5ad107e395b347e8d930a0b4ead6f4524521f7a525a9699167
Commit SHA-1 : 94f3a0430
Commit timestamp : 2021-02-23 13:07:17 +0530
Branch : HEAD
Go version : go1.15.5
jemalloc enabled : true

1 Like

seems like the reverse edge results from the state keep flitting in and out of the response. At the moment, there are no reverse edges in the result. Beginning to think it is just a bug that it showed up at all - still wondering if the reverse edges are stored on a separate group possibly.