graphql-compose-dataloader
graphql-compose-dataloader copied to clipboard
Dataloader slows performance considerably.
Are there any setup mistakes that I could be making that would result in Dataloader causing a massive performance hit for queries?
For the below query I am seeing average response times of 350ms without Dataloader and a huge increase to 5.9s - 11s with Dataloader:
query{
userChats {
_id
participants {
user {
_id
username
}
}
buckets(last: 1) {
edges {
node {
_id
messages {
author {
name // the author field 'refs' the user collection
}
text
contentType
systemMsg
album {
user {
_id
name
}
images {
medium {
url
}
}
}
website {
user {
_id
name
}
caption
images {
medium {
url
}
}
}
post {
user {
name
}
caption
images {
medium {
url
}
}
}
list {
_id
_teaser {
large {
_sourceImage
}
}
}
}
}
}
}
}
}
I am setting up Dataloader by wrapping each TC composeWithDataLoader() and I'm not setting any options for cacheExpiration or removeProjection.
When I enable debug I see the following for the above query
New db request (findMany)
New db request (findOne)
New db request (connection)
New db request (findOne)
New db request (findOne)
New db request (findOne)
New db request (findOne)
New db request (findOne)
New db request (findOne)
New db request (findOne)
New db request (findOne)
New db request (findOne)
New db request (findOne)
New db request (findOne)
Any thoughts on what I might be doing wrong here or where to continue debugging?
I would expect that this kind of query would represent HUGE performance gains via dataloader given that we are loading the same user records over and over for each chat message.
I'm having the exact same problem. I'm wrapping composeWithDataLoader() around my composeWithMongoose() (composeWithDataLoader(composeWithMongoose(HumanAssignment))) and it considerably slows down my request
Hello, is there any update here? Thanks!
I also encountered this problem