Why does dgraph get only part of my data?

Hello!

I ask you to help me to understand and fix my problem

My test enviroment is:

  1. three zero node (–replicas=3)
  2. six alpha nodes (–lru_mb=8196)

I’m using golang driver to data loading.

I’ve tried to load 100000 nodes by the following rules:

  1. set Msisdn, Imsi, Imei values
  2. create uidGetMsisdnImsiImei query by replace corresponding strings
  3. create mutationAddMsisdnImsiImei mutation by replace corresponding strings
  4. create upsert with query from point 2 and mutation from point 3
  5. open transaction
  6. execute upsert
  7. commit the transaction

But after that i didn’t get 100000 msisdn nodes, 100000 imsi nodes and 100000 imei nodes. There were just 1754 nodes of each type. I’ve deleted all data and tried to load data again. There were just 3454 nodes of each type.

I’ve done test several times and every time i’ve got different results. I don’t understand why.

You can see schema, queries and mutations below

Here is my schema:

type msisdn {
			msisdn: string
			linkedToImsi: [imsi]
			linkedToImei: [imei]
		}

		type imsi {
			imsi: string
			linkedToMsisdn: [msisdn]
			linkedToImei: [imei]
		}

		type imei {
			imei: string
			linkedToMsisdn: [msisdn]
			linkedToImsi: [imsi]
		}

		msisdn: string @index(term, trigram) .
		imsi: string @index(term, trigram) .
		imei: string @index(term, trigram) .
		linkedToMsisdn: [uid] .
		linkedToImsi: [uid] .
		linkedToImei: [uid] .

Queries for upserts:

uidGetMsisdnImsiImei = `
	query {
		msisdnSearch(func: eq(msisdn, "%MSISDN%")) {
			uidMsisdn as uid
		}
		imsiSearch(func: eq(imsi, "%IMSI%")) {
			uidImsi as uid
		}
		imeiSearch(func: eq(imei, "%IMEI%")) {
			uidImei as uid
		}
	}
	`

uidGetMsisdnImsi = `
	query {
		msisdnSearch(func: eq(msisdn, "%MSISDN%")) {
			uidMsisdn as uid
		}
		imsiSearch(func: eq(imsi, "%IMSI%")) {
			uidImsi as uid
		}
	}
	`

uidGetMsisdnImei = `
	query {
		msisdnSearch(func: eq(msisdn, "%MSISDN%")) {
			uidMsisdn as uid
		}
		imeiSearch(func: eq(imei, "%IMEI%")) {
			uidImei as uid
		}
	}
	`

uidGetImsiImei = `
	query {
		imsiSearch(func: eq(imsi, "%IMSI%")) {
			uidImsi as uid
		}
		imeiSearch(func: eq(imei, "%IMEI%")) {
			uidImei as uid
		}
	}
	`

Mutations for upserts:

mutationAddMsisdnImsiImei = `
		uid(uidMsisdn) <msisdn> "%MSISDN%" .
		uid(uidMsisdn) <linkedToImsi> uid(uidImsi) (lastseen=%TIMESTAMP%) .
		uid(uidMsisdn) <linkedToImei> uid(uidImei) (lastseen=%TIMESTAMP%) .
		uid(uidMsisdn) <dgraph.type> "msisdn" .
		uid(uidImsi) <imsi> "%IMSI%" .
		uid(uidImsi) <linkedToMsisdn> uid(uidMsisdn) (lastseen=%TIMESTAMP%) .
		uid(uidImsi) <linkedToImei> uid(uidImei) (lastseen=%TIMESTAMP%) .
		uid(uidImsi) <dgraph.type> "imsi" .
		uid(uidImei) <imei> "%IMEI%" .
		uid(uidImei) <linkedToMsisdn> uid(uidMsisdn) (lastseen=%TIMESTAMP%) .
		uid(uidImei) <linkedToImsi> uid(uidImsi) (lastseen=%TIMESTAMP%) .
		uid(uidImei) <dgraph.type> "imei" .
	`

mutationAddMsisdnImsi = `
		uid(uidMsisdn) <msisdn> "%MSISDN%" .
		uid(uidMsisdn) <linkedToImsi> uid(uidImsi) (lastseen=%TIMESTAMP%) .
		uid(uidMsisdn) <dgraph.type> "msisdn" .
		uid(uidImsi) <imsi> "%IMSI%" .
		uid(uidImsi) <linkedToMsisdn> uid(uidMsisdn) (lastseen=%TIMESTAMP%) .
		uid(uidImsi) <dgraph.type> "imsi" .
	`

mutationAddMsisdnImei = `
		uid(uidMsisdn) <msisdn> "%MSISDN%" .
		uid(uidMsisdn) <linkedToImei> uid(uidImei) (lastseen=%TIMESTAMP%) .
		uid(uidMsisdn) <dgraph.type> "msisdn" .
		uid(uidImei) <imei> "%IMEI%" .
		uid(uidImei) <linkedToMsisdn> uid(uidMsisdn) (lastseen=%TIMESTAMP%) .
		uid(uidImei) <dgraph.type> "imei" .
	`

mutationAddImsiImei = `
		uid(uidImsi) <imsi> "%IMSI%" .
		uid(uidImsi) <linkedToImei> uid(uidImei) (lastseen=%TIMESTAMP%) .
		uid(uidImsi) <dgraph.type> "imsi" .
		uid(uidImei) <imei> "%IMEI%" .
		uid(uidImei) <linkedToImsi> uid(uidImsi) (lastseen=%TIMESTAMP%) .
		uid(uidImei) <dgraph.type> "imei" .
	`

Hey @akrillis Can you please share a programme which uses golang driver and reproduces this issue?
Thanks.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.