Skip to content

Commit 4c8dac9

Browse files
committed
Merge pull request #16 from 10gen/demo
Add demo scripts
1 parent 3603232 commit 4c8dac9

File tree

3 files changed

+133
-0
lines changed

3 files changed

+133
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
import random
2+
import string
3+
import sys
4+
import time
5+
6+
from pymongo import MongoClient
7+
8+
port = 27017
9+
if len(sys.argv) == 2:
10+
port = int(sys.argv[1])
11+
elif len(sys.argv) > 2:
12+
print("usage: rtss_demo.py <port>")
13+
14+
collections = ['coll1', 'coll2', 'coll3']
15+
dbs = ['db1', 'db2', 'db3']
16+
17+
# Operations Chart + Network In/Out
18+
def many_ops(m):
19+
coll = m[dbs[random.randint(0, len(dbs) - 1)]][collections[random.randint(0, len(collections) - 1)]]
20+
[coll.update_one({"x": 1}, {"$inc": {"x": 1}}) for _ in range(
21+
random.randint(0,100))]
22+
[coll.find_one({"x": 1}) for _ in range(random.randint(0, 100))]
23+
[coll.find_one({"x": 1}) for _ in range(random.randint(0, 100))]
24+
[coll.find_one({"x": 1}) for _ in range(random.randint(0, 100))]
25+
[coll.insert_one({"x": 1}) for _ in range(random.randint(0, 100))]
26+
[coll.delete_one({"x": 1}) for _ in range(random.randint(0, 100))]
27+
28+
# Network Connections
29+
def many_connections():
30+
new_connections = random.randint(0, 5)
31+
connections = [MongoClient(port=port) for _ in range(new_connections)]
32+
time.sleep(random.randint(0, 2))
33+
for m in connections:
34+
m.close()
35+
36+
# Memory
37+
def move_data(m):
38+
randdata = ''.join(random.choice(
39+
string.ascii_uppercase + string.digits) for _ in range(100))
40+
randkey =''.join(random.choice(
41+
string.ascii_uppercase + string.digits) for _ in range(100))
42+
if random.randint(0, 1):
43+
print('inserting')
44+
m.test.coll.insert_many(
45+
[{randkey: randdata, 'even': random.randint(0, 1)} for _ in range(1000)])
46+
else:
47+
print('deleting')
48+
m.test.coll.delete_many({'even': random.randint(0, 1)})
49+
50+
if random.randint(0, 1000) == 5:
51+
m.test.drop_collection('coll')
52+
53+
while(True):
54+
many_ops(client)
55+
many_connections()
56+
#move_data(client) keep out for now
57+
time.sleep(random.randint(0, 3))
58+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
from pymongo import MongoClient
2+
from multiprocessing import Process
3+
import random
4+
import time
5+
import sys
6+
7+
8+
port = 27017
9+
if len(sys.argv) == 2:
10+
port = int(sys.argv[1])
11+
elif len(sys.argv) > 2:
12+
print("usage: rtss_demo2.py <port>")
13+
14+
client = MongoClient(port=port)
15+
def many_ops():
16+
collections = ['coll1', 'coll2', 'coll3']
17+
dbs = ['db1', 'db2', 'db3']
18+
m = MongoClient(port=port)
19+
coll = m[dbs[random.randint(0, len(dbs) - 1)]][collections[random.randint(0, len(collections) - 1)]]
20+
[coll.find_one({"x": 1, '$where': 'function() { sleep(' + str(random.randint(0, 2000)) + '); return true; }'}) for _ in range(random.randint(0, 100))]
21+
sys.exit()
22+
23+
try:
24+
processes = []
25+
while True:
26+
p = Process(target=many_ops)
27+
p.start()
28+
processes.append(p)
29+
time.sleep(random.randint(3, 5))
30+
31+
# except KeyboardInterrupt:
32+
# for p in processes:
33+
# if p != None:
34+
# p.kill()
35+
except:
36+
sys.exit();
37+
# for p in processes:
38+
# if p != None:
39+
# p.kill()
40+
# raise
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
2+
3+
from pymongo import MongoClient
4+
from multiprocessing import Process
5+
import random
6+
import time
7+
import sys
8+
9+
def many_ops():
10+
collections = ['coll1', 'coll2', 'coll3']
11+
dbs = ['db1', 'db2', 'db3']
12+
m = MongoClient()
13+
coll = m[dbs[random.randint(0, len(dbs) - 1)]][collections[random.randint(0, len(collections) - 1)]]
14+
[coll.find_one({"x": 1, '$where': 'function() { sleep(2000); return true; }'}) for _ in range(random.randint(0, 100))]
15+
sys.exit()
16+
17+
try:
18+
processes = []
19+
for i in range(100):
20+
p = Process(target=many_ops)
21+
p.start()
22+
processes.append(p)
23+
#time.sleep(random.randint(0, 1))
24+
25+
# except KeyboardInterrupt:
26+
# for p in processes:
27+
# if p != None:
28+
# p.kill()
29+
except Exception as e:
30+
print(e)
31+
sys.exit();
32+
# for p in processes:
33+
# if p != None:
34+
# p.kill()
35+
# raise

0 commit comments

Comments
 (0)