Comments (2)
The most common channel strategy is a forward one, that is, one-to-one.
I don't think this will be true. Most of the code with this pattern should be fused by the compiler. The most common actual channel implementation should be multiple many-to-one channels, which are encountered during partitioning. So I don't think it's worth optimising for this.
Fixed sized queues are probably a good idea, but we need to integrate that with Adam's work on backpressure, because it would introduce a hard limit on outstanding jobs, the violation of which would cause runtime failures. The SeqQueues may do some allocation, but once they are warmed up and driven at similar load for a while, they usually perform very well...and they do respond to changing load levels, as opposed to ArrayQueues, where you need to pre-allocate for the the worst-case load level in advance.
in the end, in a distributed system usually network traffic will be the bottleneck, not local queues, so prematurely optimising for it is probably not a good way to spend our time.
I do think NUMA aware place is valuable, though. For many jobs this will kind of happen automatically the way that my scheduler is designed, but if we know a fairly static layout a-priori, we could optimise and do slightly more static assignments from the start.
from arcon.
elements are batched now. NUMA can be looked at through another issue in the future.
from arcon.
Related Issues (20)
- Draft: Project Governance
- Fix arcon_state metrics
- Async Sources
- Explicit Keyed Streams HOT 4
- Arrow Streaming Analytics HOT 1
- Data Sharding HOT 2
- Operator Kind HOT 1
- Parquet Support
- Remove explicit key parameter on Timer
- FilterMap Operator
- Timer Timeout Missing Key Context
- KeyBy on Sources
- Reusable Streams
- ArconState/Index/Backend Rework
- crates release
- Move to arrow2 HOT 1
- Stream Kernel HOT 3
- Rolling Aggregations
- Pipeline Operators
- remove arcon_shell
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 arcon.