-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.go
113 lines (100 loc) · 2.46 KB
/
main.go
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
package main
import (
"fmt"
"time"
"github.com/jrouviere/minikv/db"
)
func main() {
store, err := db.New("./data/")
if err != nil {
panic(err)
}
store.Set("deleted", "wrong")
i := 0
for k, v := range data1 {
store.Set(k, v)
i++
if i%10 == 0 {
if err := store.Flush(); err != nil {
panic(err)
}
}
}
store.Set("inmemory", "true")
store.Delete("deleted")
check(store, "Cairo")
check(store, "Osaka")
check(store, "Mumbai")
check(store, "Beijing")
check(store, "Tokyo")
check(store, "Aaa")
check(store, "Fff")
check(store, "Zzz")
check(store, "Paris")
check(store, "London")
check(store, "inmemory")
check(store, "deleted")
if err := store.Flush(); err != nil {
panic(err)
}
if err := store.MergeAll(); err != nil {
panic(err)
}
check(store, "Cairo")
check(store, "Paris")
check(store, "London")
check(store, "inmemory")
check(store, "deleted")
check(store, "Zzz")
}
func check(store *db.DB, key string) {
start := time.Now()
val := store.Get(key)
if val == "" {
fmt.Printf("%s: not found [%v]\n", key, time.Since(start))
} else {
fmt.Printf("%s: %s [%v]\n", key, val, time.Since(start))
}
}
var data1 = map[string]string{
"Tokyo": "37,468,000",
"Delhi": "28,514,000",
"Shanghai": "25,582,000",
"São Paulo": "21,650,000",
"Mexico City": "21,581,000",
"Cairo": "20,076,000",
"Mumbai": "19,980,000",
"Beijing": "19,618,000",
"Dhaka": "19,578,000",
"Osaka": "19,281,000",
"New York": "18,819,000",
"Karachi": "15,400,000",
"Buenos Aires": "14,967,000",
"Chongqing": "14,838,000",
"Istanbul": "14,751,000",
"Kolkata": "14,681,000",
"Manila": "13,482,000",
"Lagos": "13,463,000",
"Rio de Janeiro": "13,293,000",
"Tianjin": "13,215,000",
"Kinshasa": "13,171,000",
"Guangzhou": "12,638,000",
"Los Angeles": "12,458,000",
"Moscow": "12,410,000",
"Shenzhen": "11,908,000",
"Lahore": "11,738,000",
"Bangalore": "11,440,000",
"Paris": "10,901,000",
"Bogotá": "10,574,000",
"Jakarta": "10,517,000",
"Chennai": "10,456,000",
"Lima": "10,391,000",
"Bangkok": "10,156,000",
"Seoul": "9,963,000",
"Nagoya": "9,507,000",
"Hyderabad": "9,482,000",
"London": "9,046,000",
"Tehran": "8,896,000",
"Chicago": "8,864,000",
"Chengdu": "8,813,000",
}