From f0a446971c7272315400f3cf9d24ed07d57a7009 Mon Sep 17 00:00:00 2001 From: Noah Stapp Date: Fri, 28 Mar 2025 11:13:25 -0400 Subject: [PATCH 1/2] PYTHON-4833 - Add Collection bulk_write benchmarks --- test/performance/async_perf_test.py | 22 ++++++++++++++++++++++ test/performance/perf_test.py | 22 ++++++++++++++++++++++ 2 files changed, 44 insertions(+) diff --git a/test/performance/async_perf_test.py b/test/performance/async_perf_test.py index 2ceee45bf9..f93bc70ec7 100644 --- a/test/performance/async_perf_test.py +++ b/test/performance/async_perf_test.py @@ -362,6 +362,17 @@ async def do_task(self): await self.corpus.insert_many(self.documents, ordered=True) +class TestSmallDocCollectionBulkInsert(SmallDocInsertTest, AsyncPyMongoTestCase): + async def asyncSetUp(self): + await super().asyncSetUp() + self.models = [] + for doc in self.documents: + self.models.append(InsertOne(namespace="perftest.corpus", document=doc)) + + async def do_task(self): + await self.client.corpus.bulk_write(self.models, ordered=True) + + class TestSmallDocClientBulkInsert(SmallDocInsertTest, AsyncPyMongoTestCase): @async_client_context.require_version_min(8, 0, 0, -24) async def asyncSetUp(self): @@ -412,6 +423,17 @@ async def do_task(self): await self.corpus.insert_many(self.documents, ordered=True) +class TestLargeDocCollectionBulkInsert(LargeDocInsertTest, AsyncPyMongoTestCase): + async def asyncSetUp(self): + await super().asyncSetUp() + self.models = [] + for doc in self.documents: + self.models.append(InsertOne(namespace="perftest.corpus", document=doc)) + + async def do_task(self): + await self.client.corpus.bulk_write(self.models, ordered=True) + + class TestLargeDocClientBulkInsert(LargeDocInsertTest, AsyncPyMongoTestCase): @async_client_context.require_version_min(8, 0, 0, -24) async def asyncSetUp(self): diff --git a/test/performance/perf_test.py b/test/performance/perf_test.py index 6e269e25b0..3a0f43563e 100644 --- a/test/performance/perf_test.py +++ b/test/performance/perf_test.py @@ -443,6 +443,17 @@ def do_task(self): self.corpus.insert_many(self.documents, ordered=True) +class TestSmallDocCollectionBulkInsert(SmallDocInsertTest, unittest.TestCase): + def setUp(self): + super().setUp() + self.models = [] + for doc in self.documents: + self.models.append(InsertOne(namespace="perftest.corpus", document=doc)) + + def do_task(self): + self.client.corpus.bulk_write(self.models, ordered=True) + + class TestSmallDocClientBulkInsert(SmallDocInsertTest, unittest.TestCase): @client_context.require_version_min(8, 0, 0, -24) def setUp(self): @@ -493,6 +504,17 @@ def do_task(self): self.corpus.insert_many(self.documents, ordered=True) +class TestLargeDocCollectionBulkInsert(LargeDocInsertTest, unittest.TestCase): + def setUp(self): + super().setUp() + self.models = [] + for doc in self.documents: + self.models.append(InsertOne(namespace="perftest.corpus", document=doc)) + + def do_task(self): + self.client.corpus.bulk_write(self.models, ordered=True) + + class TestLargeDocClientBulkInsert(LargeDocInsertTest, unittest.TestCase): @client_context.require_version_min(8, 0, 0, -24) def setUp(self): From f58c8e2710a93ebfd71bd5d0ed76942d73dc9198 Mon Sep 17 00:00:00 2001 From: Noah Stapp Date: Fri, 28 Mar 2025 11:50:31 -0400 Subject: [PATCH 2/2] Fix tests --- test/performance/async_perf_test.py | 4 ++-- test/performance/perf_test.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/test/performance/async_perf_test.py b/test/performance/async_perf_test.py index f93bc70ec7..969437f9c9 100644 --- a/test/performance/async_perf_test.py +++ b/test/performance/async_perf_test.py @@ -370,7 +370,7 @@ async def asyncSetUp(self): self.models.append(InsertOne(namespace="perftest.corpus", document=doc)) async def do_task(self): - await self.client.corpus.bulk_write(self.models, ordered=True) + await self.corpus.bulk_write(self.models, ordered=True) class TestSmallDocClientBulkInsert(SmallDocInsertTest, AsyncPyMongoTestCase): @@ -431,7 +431,7 @@ async def asyncSetUp(self): self.models.append(InsertOne(namespace="perftest.corpus", document=doc)) async def do_task(self): - await self.client.corpus.bulk_write(self.models, ordered=True) + await self.corpus.bulk_write(self.models, ordered=True) class TestLargeDocClientBulkInsert(LargeDocInsertTest, AsyncPyMongoTestCase): diff --git a/test/performance/perf_test.py b/test/performance/perf_test.py index 3a0f43563e..39487eff6d 100644 --- a/test/performance/perf_test.py +++ b/test/performance/perf_test.py @@ -451,7 +451,7 @@ def setUp(self): self.models.append(InsertOne(namespace="perftest.corpus", document=doc)) def do_task(self): - self.client.corpus.bulk_write(self.models, ordered=True) + self.corpus.bulk_write(self.models, ordered=True) class TestSmallDocClientBulkInsert(SmallDocInsertTest, unittest.TestCase): @@ -512,7 +512,7 @@ def setUp(self): self.models.append(InsertOne(namespace="perftest.corpus", document=doc)) def do_task(self): - self.client.corpus.bulk_write(self.models, ordered=True) + self.corpus.bulk_write(self.models, ordered=True) class TestLargeDocClientBulkInsert(LargeDocInsertTest, unittest.TestCase):