for reproduction of this problem prisma/prisma#16912 (comment)
executed the upsert operation in parallel
script(index.ts)
async function main() {
const prisma = new PrismaClient();
await prisma.$connect();
await prisma.user.deleteMany();
const promises: Promise<void>[] = []
for (let i = 1; i <= 100; i++){
promises.push(runThread(prisma, i))
}
await Promise.all(promises);
await prisma.$disconnect();
}
async function runThread(prisma: PrismaClient, index: number) {
while (true) {
const data = { id : randomInt(250000) };
await prisma.user.upsert({
where: { id: data.id },
create: data,
update: data,
});
}
}
Please check the memory usage of the RSS below.
![스크린샷 2023-07-07 17 40 33](https://private-user-images.githubusercontent.com/138547449/251699087-8bbf2b30-c74b-4747-8667-8031eefb4267.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTkwMTQyMTksIm5iZiI6MTcxOTAxMzkxOSwicGF0aCI6Ii8xMzg1NDc0NDkvMjUxNjk5MDg3LThiYmYyYjMwLWM3NGItNDc0Ny04NjY3LTgwMzFlZWZiNDI2Ny5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNjIxJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDYyMVQyMzUxNTlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT01YzA1N2Y5MTc4OGU4YTU5ZGU2ZWEzZmIxNDQ1YmI5M2YzNTA5ZGIxMmYyMDIzZTAzM2NiM2M0ZjkxNzMxN2M4JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.Gp-mv-8amXlH9LzuvEhJR9i4T3w5nu-gvp_qMmqpWKI)
![스크린샷 2023-07-07 17 40 43](https://private-user-images.githubusercontent.com/138547449/251699118-399d4de4-fb9b-48a6-b177-5e46ce371ddb.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTkwMTQyMTksIm5iZiI6MTcxOTAxMzkxOSwicGF0aCI6Ii8xMzg1NDc0NDkvMjUxNjk5MTE4LTM5OWQ0ZGU0LWZiOWItNDhhNi1iMTc3LTVlNDZjZTM3MWRkYi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNjIxJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDYyMVQyMzUxNTlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1mZWQyZDU5MjBhM2NjOTU3M2I3ZTU4OTc5OGUwODZmZjA0NTM3MmIxMDk4ZDI4ZWY5MWIwYTY1ZmNjNmI0MDM0JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.diZdUk3QA-J-6fHB-tKdoWhVoObm5Hcyak2eqJE2aOc)
https://github.com/cashwalk/prisma-issue16912-reproduction.git
npm install
DATABASE_URL="postgresql:https://<user>:<password>@localhost:5432/<DB>?schema=public"
clinic doctor -- node index
npm run main
.clinic/4.8.1.html
.clinic/4.9.0.html