Failed to delete and confusion about query

Question:

  1. Insert 70000+ data node with type KylinUser
  2. Delete all these node using upsert
  3. query with func: type(KylinUser)
  4. the count(uid) result is not the expected 0

Schema(see struct tag db below):

type User struct {
	Uid       string  `json:"uid,omitempty" form:"uid" db:"uid"`
	OutID     string  `json:"outid,omitempty" form:"outid" db:"User.outid" pred:"string" index:"hash,upsert"`
	Fullname  string  `json:"fullname,omitempty" form:"fullname" db:"User.fullname" pred:"string" index:"trigram"`
	Username  string  `json:"name,omitempty" form:"name" db:"User.username" pred:"string" index:"trigram"`
	Mobile    string  `json:"mobile,omitempty" form:"mobile" db:"User.mobile" pred:"string" index:"hash"`
	Email     string  `json:"email,omitempty" form:"email" db:"User.email" pred:"string" index:"hash"`
	Gender    int     `json:"gender,omitempty" form:"gender" db:"User.gender" pred:"int" index:"int"`
	Group     []Group `json:"group,omitempty" form:"group" db:"User.group" pred:"uid" index:"list,reverse"`
	LeaderGrp []Group `json:"leadergrp,omitempty" form:"leadergrp" db:"User.leadergrp" pred:"uid" index:"list,reverse"`
	Role      *Role   `json:"role,omitempty" form:"role" db:"User.role" pred:"uid" index:"reverse"`
}

Insert data:(below is one of insert request)

{
	"query": "query Me($outid:string){\n\ta as var(func: type(KylinUser)) @filter(eq(User.outid,$outid))\n}",
	"vars": {
		"$outid": "418601349509287937"
	},
	"mutations": [
		{
			"set": [
				{
					"subject": "_:2907284594876075163",
					"predicate": "User.fullname",
					"object_value": {
						"Val": {
							"str_val": "模拟线上人员数量3414"
						}
					}
				},
				{
					"subject": "_:2907284594876075163",
					"predicate": "User.mobile",
					"object_value": {
						"Val": {
							"str_val": "18900013427"
						}
					}
				},
				{
					"subject": "_:2907284594876075163",
					"predicate": "User.outid",
					"object_value": {
						"Val": {
							"str_val": "418601349509287937"
						}
					}
				},
				{
					"subject": "_:2907284594876075163",
					"predicate": "dgraph.type",
					"object_value": {
						"Val": {
							"str_val": "KylinUser"
						}
					}
				}
			],
			"cond": "@if(eq(len(a),0))"
		},
		{
			"set": [
				{
					"subject": "_:2907284594876075163",
					"predicate": "User.fullname",
					"object_value": {
						"Val": {
							"str_val": "模拟线上人员数量3414"
						}
					}
				},
				{
					"subject": "_:2907284594876075163",
					"predicate": "User.mobile",
					"object_value": {
						"Val": {
							"str_val": "18900013427"
						}
					}
				},
				{
					"subject": "_:2907284594876075163",
					"predicate": "User.outid",
					"object_value": {
						"Val": {
							"str_val": "418601349509287937"
						}
					}
				},
				{
					"subject": "_:2907284594876075163",
					"predicate": "dgraph.type",
					"object_value": {
						"Val": {
							"str_val": "KylinUser"
						}
					}
				}
			],
			"cond": "@if(gt(len(a),0))"
		}
	]
}

Delete upsert using Ratel:

Query Result It confused me
I’ve already deleted uid → type,but it is still displayed in the query

Dgrph Version:

Dgraph version   : v21.07.0-gf181a7030
Dgraph codename  : unnamed
Dgraph SHA-256   : 19e9898770cdc0abd05c266e78f5512aed57ce5205bd02a8e92c29cb566e1bd6
Commit SHA-1     : f181a7030
Commit timestamp : 2021-08-02 20:05:23 +0530
Branch           : master
Go version       : go1.16.4
jemalloc enabled : true
Dgraph version   : v21.07.0-gf181a7030

This… was a version? Roll this yourself maybe?

Anyway if it has some of the commits in v21.12 (the latest released version) then it has a magic limit of 1000 or something like that if you do not put on your own limit. Tracks with your above screenshot because it took 725ms and deleting 70,000*10 predicates would probably take longer than that.

Try adding first: 70000 or paginate appropriately in several queries - let us know if that did the trick.

1 Like

I believe this is the right reference and docs can be found

https://dgraph.io/docs/deploy/cli-command-reference/#limit-superflag