VoltDB / voltdb-client-go

VoltDB Golang Client Library
MIT License
32 stars 19 forks source link

Fixed Connection Handling in Cluster Mode #47

Closed gernest closed 6 years ago

gernest commented 6 years ago

This makes Query and Exec calls ensure the request was received by the database server. They should return any errors encountered when writing to the tcp connections.

gernest commented 6 years ago

@abradley201 This is a view on how connections are distributed when running the voter benchmarks. Note that the id is assigned by the voltdb nodes.

On the errors column I am tracking the error Transaction dropped due to change in mastership. It is possible the transaction was committed Which comes back from voltdb after shutting down the master node

localhost:21212 :

id connections submitted errors exec success exec failure query success query failure
74 1 104834 2 0 0 104832 0
80 1 104817 2 0 0 104815 0
71 1 104691 1 0 0 104690 0
78 1 104580 1 0 0 104579 0
75 1 104545 1 0 0 104544 0
67 1 102966 1 0 0 102965 0
52 1 102958 2 0 0 102956 0
66 1 102880 2 0 0 102878 0
53 1 102842 2 0 0 102840 0
65 1 102807 2 0 0 102805 0
49 1 102793 1 0 0 102792 0
68 1 102793 2 0 0 102791 0
27 1 1723 0 0 0 1723 0
14 1 1708 0 0 0 1708 0
29 1 1705 0 0 0 1705 0
36 1 1704 0 0 0 1704 0
28 1 1703 0 0 0 1703 0
21 1 1700 0 0 0 1700 0
40 1 1698 0 0 0 1698 0
25 1 1693 0 0 0 1693 0
13 1 1693 0 0 0 1693 0
39 1 1692 0 0 0 1692 0
26 1 1686 0 0 0 1686 0
5 1 1685 0 0 0 1685 0
43 1 1683 0 0 0 1683 0
7 1 1678 0 0 0 1678 0
17 1 2 0 0 0 2 0
73 1 2 0 0 0 2 0
72 1 2 0 0 0 2 0
56 1 2 0 0 0 2 0
19 1 2 0 0 0 2 0
35 1 2 0 0 0 2 0
9 1 2 0 0 0 2 0
10 1 1 0 0 0 1 0
62 1 1 0 0 0 1 0
77 1 1 0 0 0 1 0
47 1 1 0 0 0 1 0
12 1 1 0 0 0 1 0
64 1 1 0 0 0 1 0
50 1 1 0 0 0 1 0
46 1 1 0 0 0 1 0
23 1 1 0 0 0 1 0
84 1 1 0 0 0 1 0
63 1 1 0 0 0 1 0
76 1 1 0 0 0 1 0
69 1 1 0 0 0 1 0
82 1 1 0 0 0 1 0
8 1 1 0 0 0 1 0
70 1 1 0 0 0 1 0
15 1 1 0 0 0 1 0
38 1 1 0 0 0 1 0
16 1 1 0 0 0 1 0
59 1 1 0 0 0 1 0
55 1 1 0 0 0 1 0
4 1 0 0 0 0 0 0
20 1 0 0 0 0 0 0
60 1 0 0 0 0 0 0
34 1 0 0 0 0 0 0
6 1 0 0 0 0 0 0
32 1 0 0 0 0 0 0
58 1 0 0 0 0 0 0
79 1 0 0 0 0 0 0
54 1 0 0 0 0 0 0
30 1 0 0 0 0 0 0
45 1 0 0 0 0 0 0
83 1 0 0 0 0 0 0
81 1 0 0 0 0 0 0
57 1 0 0 0 0 0 0
24 1 0 0 0 0 0 0
33 1 0 0 0 0 0 0
42 1 0 0 0 0 0 0
44 1 0 0 0 0 0 0
22 1 0 0 0 0 0 0
18 1 0 0 0 0 0 0
48 1 0 0 0 0 0 0
41 1 0 0 0 0 0 0
51 1 0 0 0 0 0 0
61 1 0 0 0 0 0 0
37 1 0 0 0 0 0 0
11 1 0 0 0 0 0 0
31 1 0 0 0 0 0 0

localhost:21222 :

id connections submitted errors exec success exec failure query success query failure
82 1 48699 0 0 0 48698 0
83 1 48693 0 0 0 48692 0
81 1 46698 0 0 0 46697 0
60 1 46691 0 0 0 46690 0
51 1 46684 0 0 0 46683 0
75 1 46677 0 0 0 46676 0
64 1 46665 0 0 0 46664 0
58 1 46651 0 0 0 46650 0
62 1 46645 0 0 0 46644 0
57 1 46627 0 0 0 46626 0
54 1 46610 0 0 0 46609 0
56 1 46607 0 0 0 46606 0
47 1 46600 0 0 0 46599 0
67 1 46585 0 0 0 46584 0
79 1 46581 0 0 0 46580 0
49 1 46576 0 0 0 46575 0
22 1 1700 0 0 0 1700 0
17 1 1697 0 0 0 1697 0
39 1 1692 0 0 0 1692 0
42 1 1684 0 0 0 1684 0
15 1 1681 0 0 0 1681 0
21 1 1678 0 0 0 1678 0
32 1 1674 0 0 0 1674 0
13 1 1674 0 0 0 1674 0
31 1 1672 0 0 0 1672 0
8 1 1672 0 0 0 1672 0
27 1 1666 0 0 0 1666 0
14 1 1664 0 0 0 1664 0
4 1 1662 0 0 0 1662 0
10 1 1662 0 0 0 1662 0
16 1 1662 0 0 0 1662 0
26 1 1652 0 0 0 1652 0
3 1 3 0 0 1 2 0
33 1 2 0 0 0 2 0
77 1 2 0 0 0 2 0
50 1 2 0 0 0 2 0
41 1 2 0 0 0 2 0
48 1 2 0 0 0 2 0
23 1 2 0 0 0 2 0
61 1 2 0 0 0 2 0
34 1 2 0 0 0 2 0
37 1 1 0 0 0 1 0
36 1 1 0 0 0 1 0
68 1 1 0 0 0 1 0
28 1 1 0 0 0 1 0
18 1 1 0 0 0 1 0
44 1 1 0 0 0 1 0
72 1 1 0 0 0 1 0
71 1 1 0 0 0 1 0
29 1 1 0 0 0 1 0
38 1 1 0 0 0 1 0
76 1 1 0 0 0 1 0
7 1 1 0 0 0 1 0
20 1 1 0 0 0 1 0
6 1 1 0 0 0 1 0
65 1 1 0 0 0 1 0
63 1 1 0 0 0 1 0
55 1 0 0 0 0 0 0
19 1 0 0 0 0 0 0
5 1 0 0 0 0 0 0
9 1 0 0 0 0 0 0
69 1 0 0 0 0 0 0
80 1 0 0 0 0 0 0
73 1 0 0 0 0 0 0
59 1 0 0 0 0 0 0
35 1 0 0 0 0 0 0
45 1 0 0 0 0 0 0
12 1 0 0 0 0 0 0
78 1 0 0 0 0 0 0
52 1 0 0 0 0 0 0
25 1 0 0 0 0 0 0
46 1 0 0 0 0 0 0
11 1 0 0 0 0 0 0
43 1 0 0 0 0 0 0
70 1 0 0 0 0 0 0
30 1 0 0 0 0 0 0
74 1 0 0 0 0 0 0
66 1 0 0 0 0 0 0
53 1 0 0 0 0 0 0
24 1 0 0 0 0 0 0
40 1 0 0 0 0 0 0

localhost:21232 :

id connections submitted errors exec success exec failure query success query failure
55 1 95646 2 0 0 95644 0
60 1 95627 2 0 0 95625 0
44 1 95587 2 0 0 95585 0
67 1 95554 1 0 0 95553 0
49 1 95501 1 0 0 95500 0
57 1 95471 1 0 0 95470 0
46 1 95461 1 0 0 95460 0
83 1 95446 2 0 0 95445 0
82 1 95339 1 0 0 95338 0
78 1 95317 2 0 0 95315 0
50 1 95276 2 0 0 95274 0
80 1 95271 1 0 0 95270 0
5 1 1715 0 0 0 1715 0
31 1 1708 0 0 0 1708 0
12 1 1704 0 0 0 1704 0
30 1 1703 0 0 0 1703 0
37 1 1702 0 0 0 1702 0
20 1 1695 0 0 0 1695 0
38 1 1689 0 0 0 1689 0
29 1 1689 0 0 0 1689 0
8 1 1678 0 0 0 1678 0
25 1 1669 0 0 0 1669 0
40 1 2 0 0 0 2 0
39 1 2 0 0 0 2 0
69 1 2 0 0 0 2 0
53 1 2 0 0 0 2 0
33 1 2 0 0 0 2 0
7 1 2 0 0 0 2 0
23 1 2 0 0 0 2 0
22 1 2 0 0 0 2 0
75 1 2 0 0 0 2 0
9 1 2 0 0 0 2 0
42 1 2 0 0 0 2 0
51 1 1 0 0 0 1 0
66 1 1 0 0 0 1 0
45 1 1 0 0 0 1 0
73 1 1 0 0 0 1 0
41 1 1 0 0 0 1 0
65 1 1 0 0 0 1 0
21 1 1 0 0 0 1 0
74 1 1 0 0 0 1 0
32 1 1 0 0 0 1 0
13 1 1 0 0 0 1 0
52 1 1 0 0 0 1 0
58 1 1 0 0 0 1 0
36 1 1 0 0 0 1 0
47 1 1 0 0 0 1 0
68 1 1 0 0 0 1 0
59 1 1 0 0 0 1 0
26 1 1 0 0 0 1 0
27 1 1 0 0 0 1 0
3 1 1 0 0 0 1 0
48 1 1 0 0 0 1 0
15 1 1 0 0 0 1 0
76 1 1 0 0 0 1 0
18 1 1 0 0 0 1 0
35 1 1 0 0 0 1 0
70 1 0 0 0 0 0 0
54 1 0 0 0 0 0 0
17 1 0 0 0 0 0 0
6 1 0 0 0 0 0 0
61 1 0 0 0 0 0 0
63 1 0 0 0 0 0 0
14 1 0 0 0 0 0 0
81 1 0 0 0 0 0 0
71 1 0 0 0 0 0 0
34 1 0 0 0 0 0 0
56 1 0 0 0 0 0 0
64 1 0 0 0 0 0 0
11 1 0 0 0 0 0 0
4 1 0 0 0 0 0 0
72 1 0 0 0 0 0 0
43 1 0 0 0 0 0 0
10 1 0 0 0 0 0 0
24 1 0 0 0 0 0 0
19 1 0 0 0 0 0 0
28 1 0 0 0 0 0 0
79 1 0 0 0 0 0 0
62 1 0 0 0 0 0 0
77 1 0 0 0 0 0 0
16 1 0 0 0 0 0 0