Gyu-Ho Lee
56b111df0c
rafthttp: use 'transport.IsClosedConnError'
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-13 11:55:22 -07:00
Gyu-Ho Lee
3d75395875
*: remove never-unused vars, minor lint fix
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-03-06 14:59:12 -08:00
sharat
2656b594bb
rafthttp: use http.Request.WithContext instead of Cancel
2017-02-02 02:30:36 +05:30
Gyu-Ho Lee
fa9a78450c
rafthttp: add 3.2.0 stream type
2017-01-13 14:23:15 -08:00
Gyu-Ho Lee
8827619f5b
rafthttp: add v3.x to supported streams
2016-09-16 20:49:00 +09:00
Vimal Kumar
64e1a327ee
rafthttp/metrics.go:fixed TODO: record write/recv failures.
2016-09-15 11:32:08 +05:30
Anthony Romano
0250f0c984
rafthttp: log stream stopped message before closing channel
...
Was causing spurious goroutine leak failures in testing.
2016-09-09 12:47:06 -07:00
Anthony Romano
da1e022890
rafthttp: remove WaitSchedule() from tests
...
Fixes #6187
2016-08-18 16:26:35 -07:00
Gyu-Ho Lee
bd450c1ba3
rafthttp: use reportCriticalError, fix typo
2016-08-15 10:40:58 -07:00
Anthony Romano
9eb6ea34bd
Merge pull request #6175 from heyitsanthony/fix-conn-race
...
rafthttp: fix race between streamReader.stop() and connection closer
2016-08-15 09:27:24 -07:00
Anthony Romano
911c8442b7
rafthttp: fix race between streamReader.stop() and connection closer
2016-08-15 01:36:09 -07:00
Gyu-Ho Lee
0503676bde
rafthttp: fix httputil.RequestCanceler
2016-08-14 14:36:51 -07:00
Nikita Vetoshkin
fd5bc21522
rafthttp: use pointers to avoid extra copies upon message encoding
2016-06-29 21:17:18 +05:00
Xiang Li
5183631f17
rafthttp: report error to correct chan
2016-06-03 09:18:02 -07:00
Xiang Li
a047aa4a81
rafthttp: rename to to peerID
2016-06-01 22:12:47 -07:00
Xiang Li
8528c8c599
*: more logging on critical state change
...
Add more logging for better debugging purpose.
2016-05-31 23:31:03 -07:00
Xiang Li
86269ab5bf
rafthttp: simplify streamReader initilization
2016-05-31 12:13:37 -07:00
Gyu-Ho Lee
bd71a60875
rafthttp: update LICENSE header
2016-05-12 20:49:28 -07:00
Xiang Li
98dbdd5fbb
*: simplify network metrics
2016-05-09 22:37:12 -07:00
Gyu-Ho Lee
641a1a66e1
*: fix govet -shadow in go tip
2016-04-15 07:39:52 -07:00
Gyu-Ho Lee
6e6d64fb9b
*: clean up unused vars, functions
...
With help from https://github.com/dominikh/go-unused .
IsNetTimeoutError seems useful, so moved to pkg/netutil.
2016-04-06 21:33:55 -07:00
Gyu-Ho Lee
a42d1dc1fe
*: drain http.Response.Body before closing
2016-03-30 09:35:47 -07:00
Anthony Romano
bd832e5b0a
*: migrate Godeps to vendor/
2016-03-22 17:10:28 -07:00
Xiang Li
5d256b7b86
rafthttp: pause peer should also pause its reader
2016-03-17 09:43:02 -07:00
Xiang Li
e4f22cd6d8
rafthtt: smart batching
...
Improved the overall performance more than 20% under heavyload
with little latency impact
heavy load
```
Requests/sec: ~23200 vs Requests/sec: ~31500
Latency distribution:
10% in 0.0883 secs.
25% in 0.1022 secs.
50% in 0.1207 secs.
75% in 0.1460 secs.
90% in 0.1647 secs.
95% in 0.1783 secs.
99% in 0.2223 secs.
vs
Latency distribution:
10% in 0.1119 secs.
25% in 0.1272 secs.
50% in 0.1469 secs.
75% in 0.1626 secs.
90% in 0.1765 secs.
95% in 0.1863 secs.
99% in 0.2276 secs.
```
Similar on light load too.
2016-02-17 13:17:12 -08:00
Xiang Li
74382f56fb
rafthttp: handle short case in if statement
2016-02-16 19:26:51 -08:00
Xiang Li
d393102e24
rafthttp: refactor
2016-02-16 19:21:53 -08:00
Xiang Li
11d3e9ac69
rafthttp: better comment for streamWriter
2016-02-16 19:21:06 -08:00
Anthony Romano
fe7cfe4d3d
rafthttp: plumb local peer URLs through transport
2016-02-05 16:44:41 -08:00
Anthony Romano
db0b505de5
rafthttp: add requester to transport if peer does not exist
...
cluster integration now supports adding members with stopped nodes, too
Fixes #3699
2016-02-03 14:16:46 -08:00
siddontang
54a45ba2f5
*: fix typo
2016-01-06 16:17:02 +08:00
Gyu-Ho Lee
6aa559f93d
rafthttp: more detailed logs when filled-up buffer
...
This adds more detailed explanation about why some messages got dropped to help
users debug. This is for https://github.com/coreos/etcd/issues/3806 .
2015-11-18 14:17:43 -08:00
Yicheng Qin
ec3c2d23a3
*: update feature maps to adopt v2.3.0
2015-11-04 14:30:35 -08:00
Yicheng Qin
65d153db73
Merge pull request #3783 from yichengq/merge-logger
...
rafthttp: use MergeLogger for rafthttp logging
2015-11-04 09:48:43 -08:00
Yicheng Qin
6040d57106
rafthttp: use MergeLogger to merge message-drop log
...
rafthttp logs repeated messages when amounts of message-drop logs
happen, and it becomes log spamming.
Use MergeLogger to merge log lines in this case.
2015-11-04 07:26:58 -08:00
Yicheng Qin
908a011604
rafthttp: mark unreachable on unexpected response
...
In rafthttp, when making request to some endpoint, it may receive
response with unexpected status code and header. This indicates the endpoint
doesn't function correctly. It should mark the endpoint unreachable.
2015-10-28 21:40:11 -07:00
Yicheng Qin
5060b2f322
rafthttp: send all MsgApp on stream msgAppV2
...
For stream msgAppV2, as long as the message is MsgApp type, it should be sent
through stream msgAppV2.
2015-10-20 08:23:36 -07:00
Yicheng Qin
f725f6a552
rafthttp: deprecate streamTypeMsgApp
...
streamTypeMsgApp is only used in etcd 2.0. etcd 2.3 should not talk to
etcd 2.0, either send or receive requests. So I deprecate streamTypeMsgApp
and its related stuffs from rafthttp package.
updating term is only used from streamTypeMsgApp, so it is removed too.
2015-10-20 08:15:54 -07:00
Xiang Li
427a154aae
rafthttp: various clean up
2015-10-18 09:49:18 -07:00
Yicheng Qin
6fc638673c
rafthttp: return err if stopped before setting cancel in dial()
...
The original workflow may fail to cancel if stop() cancels the finished
request just before dial() assigning a new cancel. This commit checks
streamReader status before setting cancel to avoid this problem.
It is tested at travis for 300 times. go 1.5 always works well, while
go 1.4 fails to stop once.
2015-08-25 08:59:12 -07:00
Yicheng Qin
fc95ec0cc6
rafthttp: always cancel in-flight request when stop streamReader
...
This problem is totally fixed at 1.5.
go1.5 adds a Request.Cancel channel, which allows for "race free"
cancellation
(8b4278ffb7
).
Our implementation relies on it to always cancel in-flight request.
2015-08-25 08:54:13 -07:00
Xiang Li
6b23a8131f
*: test gofmt with -s and fix reported issues
2015-08-21 18:52:16 -07:00
Yicheng Qin
c9cca6a93b
*: update MinClusterVersion and supportedStream map
2015-08-13 13:05:14 -07:00
Yicheng Qin
fb4b0b5cf0
rafthttp: support to init term when adding peer
...
So it doesn't need to build term-0 stream with the remote first, then update it.
2015-06-29 10:20:48 -07:00
Yicheng Qin
2f05b24d6d
rafthttp: {from, to} -> {local, remote} in stream
...
{from, to} nameings are confused when it both dials and receives
messages from the remote. Change it to {local, remote} for better
clarity.
2015-06-12 14:17:30 -07:00
Yicheng Qin
bcc1aadea9
rafthttp: fix the misformat logging line
...
before:
```
2015/06/12 20:06:19 rafthttp: dropped MsgApp from %!s(uint64=2) since
receiving buffer is full
```
after:
```
2015/06/12 13:51:38 rafthttp: dropped MsgProp from 2 since receiving
buffer is full
```
2015-06-12 14:12:49 -07:00
Yicheng Qin
0de0e4b77c
rafthttp: pretty print message drop info
2015-06-12 09:14:53 -07:00
Yicheng Qin
1dbe72bb74
rafthttp: pretty print connection error
...
1. print out the status change of connection with peer
2. only print the first error for repeated ones
2015-06-10 15:43:49 -07:00
Yicheng Qin
f1e995b070
rafthttp: use leveled logger
2015-06-09 16:15:02 -07:00
Xiang Li
28878e34ff
Merge pull request #2903 from xiang90/chord_rafthttp
...
rafhttp: clean up logging messages
2015-06-02 14:44:40 -07:00