Commit Graph

804 Commits

Author SHA1 Message Date
Aliaksandr Valialkin c9c8d72607 Issue #78: immediately flush chunked data to client 2016-04-15 23:14:38 +03:00
Aliaksandr Valialkin b6da470e12 Issue #78: Mention Iris with fasthttp support in 'web frameworks and routers' chapter in the README 2016-04-15 18:41:59 +03:00
Aliaksandr Valialkin 05949704db Issue #78: Added an example for RequestCtx.SetBodyStreamWriter 2016-04-15 18:05:57 +03:00
Aliaksandr Valialkin 5fdbeef505 Server optimization: reduce the number of SetReadDeadline/SetWriteDeadline calls for keep-alive connections, since they don't scale properly. See https://github.com/golang/go/issues/15133 for details 2016-04-15 13:47:44 +03:00
Aliaksandr Valialkin 33163198b1 sped up slow tests under 'go test -race' 2016-04-15 13:47:42 +03:00
Aliaksandr Valialkin cb7c08f920 Updated performance numbers in README 2016-04-06 15:19:50 +03:00
Aliaksandr Valialkin 8d147e45af Issue #76: fixed data races in TimeoutHandler and RequestCtx.TimeoutError*. Updated tests for catching similar data races in the future 2016-04-06 15:08:34 +03:00
Aliaksandr Valialkin e9544cbb6f client: get rid of slow math/rand for sleep jitter generation 2016-04-04 15:02:33 +03:00
Aliaksandr Valialkin adac101acf Merge branch 'master' of https://github.com/valyala/fasthttp 2016-04-04 12:05:44 +03:00
Aliaksandr Valialkin ebc297b394 Refer to quicktemplate from 'optimization hints' chapter 2016-04-04 12:05:33 +03:00
Aliaksandr Valialkin 3f0e1bb92f PipelineClient: take into account queued requests waiting to be sent to the server in PendingRequests() 2016-04-03 11:19:52 +03:00
Aliaksandr Valialkin 9c292dcd3e PipelineClient: do not send timed out requests to the server 2016-04-03 11:11:27 +03:00
Aliaksandr Valialkin 316adc4782 PipelineClient.Do: try substituting the oldest request in the pending queue by the current one on queue overflow 2016-04-03 10:58:55 +03:00
Aliaksandr Valialkin 8ae2d3e53c PipelineClinet: added MaxBatchDelay option 2016-04-02 23:18:34 +03:00
Aliaksandr Valialkin ca21b21eba Return ErrPipelineOverflow from PipelineClient.Do if the pending requests' queue is overflown. This should prevent from caller's goroutines leak on stalled pipeline client 2016-04-01 18:21:35 +03:00
Aliaksandr Valialkin 22c9594090 Added PipelineClient for issuing pipelined requests to the server 2016-04-01 18:06:59 +03:00
Aliaksandr Valialkin a0377f758e workerpool: test cleaner 2016-03-31 14:56:39 +03:00
Aliaksandr Valialkin 9f20a62336 added workerpool tests 2016-03-31 14:41:27 +03:00
Aliaksandr Valialkin 4fa2d5db39 workerpool: bugfix: do not return workerChan to ready pool on panic 2016-03-31 12:37:46 +03:00
Aliaksandr Valialkin e64702d6f0 workerpool: removed a hack for recycling worker stacks, since Go runtime must be able to shrink big stacks when they aren't needed 2016-03-31 10:31:53 +03:00
Aliaksandr Valialkin 65540104b3 server: verify request's 'Connection: close' after request handler returns 2016-03-31 10:17:29 +03:00
Aliaksandr Valialkin 7d29fb3b3d server: added DisableKeepalive option for disabling keep-alive connections 2016-03-31 10:05:31 +03:00
Aliaksandr Valialkin 9946a8145e bytesconv: reduce memory allocations on parse errors by using static errors 2016-03-30 20:49:09 +03:00
Aliaksandr Valialkin 57cbe65ddc scalability improvement: use per-server peripconn pool 2016-03-30 20:34:07 +03:00
Aliaksandr Valialkin 72352d7661 workerpool: limit the number of connections each worker may serve. This should reduce the total amount of memory occupied by worker stacks in the long term 2016-03-30 19:35:46 +03:00
Aliaksandr Valialkin 3298603593 client: added MaxIdleConnDuration for limiting the duration of idle keep-alive connections established by clients 2016-03-30 19:23:17 +03:00
Aliaksandr Valialkin 064ef6ef44 added client end-to-end benchmark for 10K concurrent connections 2016-03-30 19:22:05 +03:00
Aliaksandr Valialkin 1f148c6c09 workerpool: properly clean scratch buffer for workerChans 2016-03-30 19:04:20 +03:00
Aliaksandr Valialkin 1d6b6a6608 workerpool: properly count workers 2016-03-30 18:45:57 +03:00
Aliaksandr Valialkin 92c779039c workerpool: clean workerChan slices in order to reduce the amount of work for GC 2016-03-30 18:11:40 +03:00
Aliaksandr Valialkin 8094a6e20f workerpool: reduced the time to hold the lock when cleaning unused worker goroutines 2016-03-30 16:40:16 +03:00
Aliaksandr Valialkin 12ba989984 Issue #69: Added RequestHeader.Add and ResponseHeader.Add for adding multiple headers with the same key 2016-03-29 17:11:43 +03:00
Aliaksandr Valialkin e9207dac9e Added Args.Add() 2016-03-29 16:49:42 +03:00
Aliaksandr Valialkin 6658e31fd0 Eliminated bufKV member from Args struct. This shaves off 16 bytes from RequestCtx struct 2016-03-29 16:37:29 +03:00
Aliaksandr Valialkin eca172369c Pass string key to hasArg instead of byte slice key 2016-03-29 16:31:38 +03:00
Aliaksandr Valialkin 0c67179812 Added delAllArgsBytes helper 2016-03-29 16:30:07 +03:00
Aliaksandr Valialkin 0d43464f64 Renamed unsafeBytes2Str to b2s 2016-03-29 16:26:21 +03:00
Aliaksandr Valialkin 8b26017325 Renamed setArg to setArgBytes 2016-03-29 16:19:22 +03:00
Aliaksandr Valialkin 1498d8174e Issue #73: added 'HttpOnly' and 'secure' flags support to Cookie 2016-03-29 16:12:59 +03:00
Aliaksandr Valialkin 169b5eac74 server: sleep for a while after reaching the concurrency limit, so other concurrently running servers could accept and process incoming connections 2016-03-29 12:00:21 +03:00
Aliaksandr Valialkin dbea792cf7 Scalability improvement: use distinct workerChan pool per each workerPool 2016-03-29 11:45:09 +03:00
Aliaksandr Valialkin 023e3807b8 workerPool optimization: determine the current time outside lock 2016-03-29 11:05:14 +03:00
Aliaksandr Valialkin d444ab9169 Server: write error response when concurrency limit or per-ip conn limit is exceeded before closing the connection. This should improve server diagnostics 2016-03-28 18:42:40 +03:00
Aliaksandr Valialkin bfa17b7ae9 do not copy Request and Cookie objects in tests 2016-03-28 17:17:05 +03:00
Aliaksandr Valialkin 0d8bc2c01a updated benchmark results 2016-03-24 14:13:32 +02:00
Aliaksandr Valialkin c469d18819 Issue #72: properly handle 'Connection: keep-alive, Upgrade' header 2016-03-22 19:47:59 +02:00
Aliaksandr Valialkin 9ad70994bb code cleanup: removed duplicate code in fs.go 2016-03-21 18:42:34 +02:00
Aliaksandr Valialkin 2b172da539 re-use appendArg inside setArg v20160316 2016-03-15 11:27:03 +02:00
Aliaksandr Valialkin e8d5a6429c Merge pull request #65 from vishr/master
Fixed Echo link
2016-03-15 11:18:14 +02:00
Vishal Rana 25078ee024 Fixed Echo link
Signed-off-by: Vishal Rana <vr@labstack.com>
2016-03-11 09:05:59 -08:00