From f3ca1e03727ad0cc93495cbe4099dc2cafd43b4c Mon Sep 17 00:00:00 2001 From: Noah Stapp Date: Fri, 28 Mar 2025 13:48:46 -0400 Subject: [PATCH] PYTHON-4833 - Add Collection bulk_write benchmarks (#2245) --- 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 2ceee45bf..969437f9c 100644 --- a/test/performance/async_perf_test.py +++ b/test/performance/async_perf_test.py @@ -362,6 +362,17 @@ class TestSmallDocBulkInsert(SmallDocInsertTest, AsyncPyMongoTestCase): 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.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 @@ class TestLargeDocBulkInsert(LargeDocInsertTest, AsyncPyMongoTestCase): 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.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 6e269e25b..39487eff6 100644 --- a/test/performance/perf_test.py +++ b/test/performance/perf_test.py @@ -443,6 +443,17 @@ class TestSmallDocBulkInsert(SmallDocInsertTest, unittest.TestCase): 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.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 @@ class TestLargeDocBulkInsert(LargeDocInsertTest, unittest.TestCase): 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.corpus.bulk_write(self.models, ordered=True) + + class TestLargeDocClientBulkInsert(LargeDocInsertTest, unittest.TestCase): @client_context.require_version_min(8, 0, 0, -24) def setUp(self):