MCPcopy Create free account
hub / github.com/cosdata/cosdata / run_rps_tests

Function run_rps_tests

tests/test-dataset-streaming.py:776–811  ·  view source on GitHub ↗

Run RPS (Requests Per Second) tests

(rps_test_vectors, collection, batch_size=100)

Source from the content-addressed store, hash-verified

774 print("No valid queries completed")
775
776def run_rps_tests(rps_test_vectors, collection, batch_size=100):
777 """Run RPS (Requests Per Second) tests"""
778 print(f"Using {len(rps_test_vectors)} different test vectors for RPS testing")
779
780 start_time_rps = time.time()
781 results = []
782
783 with ThreadPoolExecutor(max_workers=32) as executor:
784 futures = []
785 for i in range(0, len(rps_test_vectors), batch_size):
786 batch = rps_test_vectors[i : i + batch_size]
787 futures.append(executor.submit(batch_ann_search, collection, batch))
788
789 for future in as_completed(futures):
790 try:
791 future.result()
792 results.append(True)
793 except Exception as e:
794 print(f"Error in RPS test: {e}")
795 results.append(False)
796
797 end_time_rps = time.time()
798 actual_duration = end_time_rps - start_time_rps
799
800 successful_requests = sum(results) * batch_size
801 failed_requests = (len(results) * batch_size) - successful_requests
802 total_requests = len(results) * batch_size
803 rps = successful_requests / actual_duration
804
805 print("\nRPS Test Results:")
806 print(f"Total Requests: {total_requests}")
807 print(f"Successful Requests: {successful_requests}")
808 print(f"Failed Requests: {failed_requests}")
809 print(f"Test Duration: {actual_duration:.2f} seconds")
810 print(f"Requests Per Second (RPS): {rps:.2f}")
811 print(f"Success Rate: {(successful_requests / total_requests * 100):.2f}%")
812
813def batch_ann_search(collection, vectors):
814 """Perform batch ANN search using the Client class"""

Callers 1

Calls 1

appendMethod · 0.45

Tested by

no test coverage detected