Comments (1)
I've been working directly with @PjEdwards on this issue, so I will just summarize the results of our investigation here.
The server returns 503 ("server busy") when there are more than 100 inflight requests per node. The idea is that the client will throttle back when it sees this so that the workload on the clients and server can be roughly balanced.
In the particular tests that were run, each client request to the SN node (for a hyperslab selection) generated 100's of SN requests to DN nodes (each touched chunk resulted in a additional SN to DN request) so it was likely to hit this limit with a modest number of client requests.
Regarding CPU usage, in my testing I saw high cpu utilization per node which indicates that the limits on inflight requests look about right. You can run: $ docker stats $(docker ps --format={{.Names}}) to see the container CPU utilization.
To improve throughput there are a few options. Best approach will depend on the particulars of the client and hardware set:
- Reduce request rate when the 503 errors reach a certain threshold. Going past a small percentage of 503 errors will result in a large amount of wasted effort on the server
- Move to a larger instance and run HSDS with more nodes
- Run multiple HSDS servers behind a load balancer
- Run multiple servers in a Kubernetes cluster
Also, for AWS deployments I'll be adding support for using AWS Lambda rather than using the DN nodes (for read requests). Lambda allows higher amount of parallelism (up to a 1000 requests) than would be practical with just SN and DN nodes. Stay tuned!
from hsds.
Related Issues (20)
- Support broadcasting
- Reset data to fill value when decreasing then increasing extent of dataset
- Save padding/offset of fields in compound types HOT 3
- point selections can fail after shape update
- Support FLETCHER32 filter
- Compound Type Subsetting HOT 4
- Support N-Bit and scale offset filters
- POST_Links does not return link information when following links recursively HOT 5
- Docker Image CI fails intermittently due to bad username/password
- Uninitialized variable length sequences are returned as scalars instead of empty arrays HOT 2
- Uploading 30 GB file takes too long to upload HOT 7
- not enough room in chunk cache - return 503 HOT 21
- Windows encoding error when writing sequence of variable length UTF-8 characters HOT 2
- Scripts use deprecated docker-compose v1
- Vlen sequence of variable-length UTF-8 strings cannot be written HOT 7
- Creation timestamps lack resolution on Windows HOT 2
- MAX_WAIT_TIME for rescan should be a config option HOT 1
- 409 Conflict during testCreateDomainNodeIds
- Example Requests and Authentication HOT 4
- typo, should be password_file HOT 2
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 hsds.