Comments (1)
After adding some logs, I probably found the cause. Currently, a region only notifies the worker it belongs to after flushing memtables.
Suppose we have 3 workers A, B, and C. All workers are writing:
- Workers A and B are flushing more than 1/2 of the write buffer
- Worker C checks
WriteBufferManagerImpl::should_flush_engine()
. We already flush more than 1/2 of the write buffer so worker C won't flush - Worker C checks
WriteBufferManagerImpl::should_stall()
and stalls requests - Workers A, B, and C continue writing and stall more requests
- Workers A and B finish flushing but they can't notify Worker C to handle stalled requests
- All clients waiting for worker C will be blocked forever
To fix this issue, I think we could notify all workers after a flush job is finished.
from greptimedb.
Related Issues (20)
- error: casting references to a bigger memory layout than the backing allocation is undefined behavior, even if the reference is unused HOT 2
- Alter database option HOT 10
- Alter column option HOT 5
- Auto inference standalone/distributed mode from configuration
- Introduce sqlancer to find logic bugs HOT 1
- Implement an RDS kvbackend HOT 15
- Push down analyze verbose to region
- Dry-run API for event ingestion
- compile proto error:kind: NotFound, error: "Could not find `protoc` HOT 9
- error: failed to run custom build command for `greptime-proto v0.1.0 ' HOT 2
- Workflow run 'GreptimeDB Development Build' failed HOT 1
- Supports OTEL logs ingestion
- Metric for file cache size may become negative HOT 1
- Workflow run 'Nightly CI' failed HOT 1
- gRPC supports create table hints
- Supports multiple buckets in a single cluster
- Workflow run 'Release' failed HOT 4
- Add the slow operation logging
- Improve HTTP error return HOT 1
- Admin fn may hang the runtime
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 greptimedb.