Comments (2)
Re-reading the packet capture, the first TCP ZeroWindow
flag is sent by the server to the client.
This indicates to me that the server first fills up it's TCP and/or read-buffers, then parses a command, sends a reply and then waits for the client to read the data. I suspect that the client sends off all it's get-requests and then wait for replies to come in. A deadlock in other words ... and then a TCP timeout.
from ucs.
It turns out that the editor expects to send off all it's requests before reading any responses, while the server expected the protocol to be straight up request-response protocol (a la HTTP).
For small projects, the discrepancy would be hidden by filling send/receive TCP buffers and what the buffered sender could absorb.
For large projects buffers would fill up all over and eventually cause a deadlock, expressed as a TCP timeout when nothing happened.
This has been fixed by #23 where a queue of 100k get-requests has been set up, so cache-requests will be processed and sent as they are consumed by the editor.
from ucs.
Related Issues (19)
- File-system cache HOT 1
- Graceful shutdown HOT 1
- Admin interface
- Client library HOT 1
- Fuzz the parser HOT 1
- Bittorrent cache backend
- Cache size quotas HOT 1
- Benchmark utility HOT 1
- HTTP Backend
- Add namespacing HOT 5
- Too many open files HOT 4
- Be more intelligent about when to GC HOT 1
- ucs-cli
- GC: Remove files in pairs
- go run ./cmd/ucs puts cache-directory in a temporary location HOT 1
- Filesystem-cache reports having a quota of zero in /metrics HOT 1
- Replace PutObject with composed struct
- When a fresh project is simultaneously built multiple times, metrics get off
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ucs.