@@ -35,19 +35,17 @@ mod query_benchmarks {
35
35
use aw_models:: Event ;
36
36
use aw_models:: TimeInterval ;
37
37
38
+ static BUCKETNAME : & str = "testbucket" ;
38
39
static TIME_INTERVAL : & str = "1980-01-01T00:00:00Z/2080-01-02T00:00:00Z" ;
39
- static BUCKET_ID : & str = "testid" ;
40
40
41
- fn setup_datastore_empty ( ) -> Datastore {
41
+ fn setup_datastore ( ) -> Datastore {
42
42
return Datastore :: new_in_memory ( false ) ;
43
43
}
44
44
45
- fn setup_datastore_with_bucket ( ) -> Datastore {
46
- let ds = setup_datastore_empty ( ) ;
47
- // Create bucket
45
+ fn create_bucket ( ds : & Datastore , bucketname : String ) {
48
46
let bucket = Bucket {
49
47
bid : None ,
50
- id : BUCKET_ID . to_string ( ) ,
48
+ id : bucketname ,
51
49
_type : "testtype" . to_string ( ) ,
52
50
client : "testclient" . to_string ( ) ,
53
51
hostname : "testhost" . to_string ( ) ,
@@ -58,35 +56,29 @@ mod query_benchmarks {
58
56
last_updated : None ,
59
57
} ;
60
58
ds. create_bucket ( & bucket) . unwrap ( ) ;
61
- return ds;
62
59
}
63
60
64
- fn setup_datastore_populated ( ) -> Datastore {
65
- let ds = setup_datastore_with_bucket ( ) ;
66
-
61
+ fn insert_events ( ds : & Datastore , bucketname : & str , num_events : i64 ) {
67
62
let mut possible_data = Vec :: < Map < String , Value > > :: new ( ) ;
68
63
for i in 0 ..20 {
69
64
possible_data. push ( json_map ! { "number" : i} ) ;
70
65
}
71
- //
72
66
let mut event_list = Vec :: new ( ) ;
73
- for i in 0 ..3000 {
67
+ for i in 0 ..num_events {
74
68
let e = Event {
75
69
id : None ,
76
70
timestamp : chrono:: Utc :: now ( ) + Duration :: seconds ( i) ,
77
- duration : Duration :: seconds ( 1 ) ,
71
+ duration : Duration :: seconds ( 10 ) ,
78
72
data : possible_data[ i as usize % 20 ] . clone ( ) ,
79
73
} ;
80
74
event_list. push ( e) ;
81
75
}
82
- ds. insert_events ( & BUCKET_ID , & event_list) . unwrap ( ) ;
83
-
84
- return ds;
76
+ ds. insert_events ( bucketname, & event_list) . unwrap ( ) ;
85
77
}
86
78
87
79
#[ bench]
88
80
fn bench_assign ( b : & mut Bencher ) {
89
- let ds = setup_datastore_empty ( ) ;
81
+ let ds = setup_datastore ( ) ;
90
82
let interval = TimeInterval :: new_from_string ( TIME_INTERVAL ) . unwrap ( ) ;
91
83
b. iter ( || {
92
84
let code = String :: from ( "return a=1;" ) ;
@@ -99,14 +91,17 @@ mod query_benchmarks {
99
91
100
92
#[ bench]
101
93
fn bench_many_events ( b : & mut Bencher ) {
102
- let ds = setup_datastore_populated ( ) ;
94
+ let ds = setup_datastore ( ) ;
95
+ create_bucket ( & ds, BUCKETNAME . to_string ( ) ) ;
96
+ insert_events ( & ds, & BUCKETNAME , 5000 ) ;
97
+
103
98
let interval = TimeInterval :: new_from_string ( TIME_INTERVAL ) . unwrap ( ) ;
104
99
b. iter ( || {
105
100
let code = String :: from (
106
101
"
107
- events = query_bucket(\" testid \" );
102
+ events = query_bucket(\" testbucket \" );
108
103
return events;
109
- " ,
104
+ " ,
110
105
) ;
111
106
aw_query:: query ( & code, & interval, & ds) . unwrap ( ) ;
112
107
} ) ;
0 commit comments