1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
# frozen_string_literal: true
require_relative '../base'
module Mongo
module DriverBench
module MultiDoc
module BulkInsert
# Abstract superclass for all bulk insert benchmarks.
#
# @api private
class Base < Mongo::DriverBench::MultiDoc::Base
attr_reader :repetitions, :bulk_dataset
def setup
super
@bulk_dataset = dataset * repetitions
end
# How much the benchmark's dataset size ought to be scaled (for
# scoring purposes).
def scale
@repetitions
end
def before_task
collection.drop
collection.create
end
def do_task
collection.insert_many(bulk_dataset, ordered: true)
end
end
end
end
end
end
|