How to run mutation concurrently with python client?

What I want to do

Hi, I’m trying to use a distributed framework and async function to insert the data to dgraph concurrently, and I used pagination to split the data.

What I did

The insert code is like this:

def do_update(self, nquad: str):
        try:
            txn = self.client.txn()
            mutation = txn.create_mutation(set_nquads=nquad)
            request = txn.create_request(mutations=[mutation], commit_now=True)
            txn.do_request(request)
            txn.discard()
        except Exception as e:
            print(e)

def dgraph_code():
    do_update(nquad)
    
async def async_function():
    loop = asyncio.get_running_loop()
    for _ in range(5):
        futures.append(loop.run_in_executor(None, dgraph_code))
    await asyncio.gather(*futures)

if __name__ == '__main__':    
    loop = asyncio.get_event_loop()
    loop.run_until_complete(async_function())

I had 5 threads running at the same time, but I got the result as:

CBw4SW0InJ

The lengths of insert data are all the same, so it’s supposed to be the same running time, but it seems all lined up ( it’s supposed to be 5 seconds for each round).

Does anyone know why is it and how to fix it? Thank you very much!

Dgraph metadata

dgraph version

The version of the dgraph I am using is v21.03.2.