MCPcopy Create free account
hub / github.com/apple/foundationdb / insert_data

Method insert_data

tests/python_tests/python_performance.py:89–119  ·  view source on GitHub ↗
(self, db)

Source from the content-addressed store, hash-verified

87 return self.value_str
88
89 def insert_data(self, db):
90 print("Loading database")
91 del db[:]
92 num_keys = 100000 / (self.key_size + len(self.value_str))
93
94 trs = [
95 db.create_transaction()
96 for _ in range(int(math.ceil(float(self.key_count) / num_keys)))
97 ]
98 success = [False for _ in range(len(trs))]
99
100 while not all(success):
101 futures = {}
102
103 for i in range(self.key_count):
104 if not success[i / num_keys]:
105 trs[i / num_keys][self.key(i)] = self.value(self.key(i))
106
107 for i, tr in enumerate(trs):
108 if not success[i]:
109 tr.options.set_retry_limit(5)
110 futures[i] = tr.commit()
111
112 for i, f in futures.items():
113 try:
114 f.wait()
115 success[i] = True
116 except fdb.FDBError as e:
117 trs[i].on_error(e).wait()
118
119 time.sleep(60) # Give the database time to rebalance
120
121 # Tests the performance of the API functions
122 def test_performance(self, db):

Callers 1

test_performanceMethod · 0.95

Calls 9

keyMethod · 0.95
valueMethod · 0.95
rangeFunction · 0.85
sleepMethod · 0.80
commitMethod · 0.65
printFunction · 0.50
create_transactionMethod · 0.45
waitMethod · 0.45
on_errorMethod · 0.45

Tested by 1

test_performanceMethod · 0.76