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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjAxMTM5NjAsIm5iZiI6MTcyMDExMzY2MCwicGF0aCI6Ii8xMzg1NDc0NDkvMjUxNjk5MDg3LThiYmYyYjMwLWM3NGItNDc0Ny04NjY3LTgwMzFlZWZiNDI2Ny5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNzA0JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDcwNFQxNzIxMDBaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1lOWM1OWFhMGFmMTlkMDM1MjNlMmJkYWQyNTBjOTAyNzI4NGMyYjU3NWE0ZDc3NWFkMjlkNTcxZGY4NmZhYjZjJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.MO7mejxIP18xYzGhxzy5UdDfPOxn0P8uASbNrFBLHx4)
![스크린샷 2023-07-07 17 40 43](https://private-user-images.githubusercontent.com/138547449/251699118-399d4de4-fb9b-48a6-b177-5e46ce371ddb.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjAxMTM5NjAsIm5iZiI6MTcyMDExMzY2MCwicGF0aCI6Ii8xMzg1NDc0NDkvMjUxNjk5MTE4LTM5OWQ0ZGU0LWZiOWItNDhhNi1iMTc3LTVlNDZjZTM3MWRkYi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNzA0JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDcwNFQxNzIxMDBaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1iOGRiOTZkMmU4YWExMWI2YzJjOGYwYjVmYTBhYjNmYWUxNmJiZTcyNjg3ZjBhNjgzOTAzZjM1Mjk5YWU3ZjJmJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.WuCvb_QIqWD4b0aOOYEJr51x_y9-DnT8qXLuTVh7_bI)
https://github.com/cashwalk/prisma-issue16912-reproduction.git
npm install
DATABASE_URL="postgresql://<user>:<password>@localhost:5432/<DB>?schema=public"
clinic doctor -- node index
npm run main
.clinic/4.8.1.html
.clinic/4.9.0.html