Comments (1)
The way flame works by design is to avoid global coordination. The parent node manages its own flame children to avoid any orchestration layer as well as guarantees that the child is spawned as close as possible to the parent node (same datacenter worst case, same physical server best case). If you want to to have a single global FLAME child instance for a pool, you’d need to add the orchestration layer yourself.
For example, you could hardcode one of your machines to be the “primary” and start the flame pool only for that machine ID, then other nodes RPC the primary to perform the flame calls (see :erpc), or in the case of Nx.Serving, it should Just Work because Nx does its own distributed progress group. Or you could come up with other strategies to elect the leader and start the pool on demand (all with their own tradeoffs). Also if you are going multi-region, then you’d pay the cost to send data back and forth to the FLAME instances and added coordination brings a bunch of failure mode considerations.
I won't rule out distributed pool features for the future, but it's not something planned anytime soon and comes with its own set of tradeoffs and a ton of complexity. Thanks!
from flame.
Related Issues (19)
- Use :peer node for local backend
- Add telemetry events HOT 1
- Add kubernetes backend HOT 16
- encode pool name in %Parent{}
- Flame name conflict HOT 3
- Allow specifying fly machine resources more specifically HOT 1
- Flush failsafe timer
- FLAME.Pool crashes when two calls are performed in parallel and no existing runners are active
- fly machines don't always have env vars set in time HOT 1
- can't test async: (DBConnection.OwnershipError) cannot find ownership process HOT 1
- Fly FLAME children seem to just timeout for no reason. HOT 4
- {:remote_shutdown, _} is not always forwarded HOT 1
- Preventing Restarts HOT 13
- FlyBackend supports mounting volume HOT 1
- Hot start a new node when a percentage of max_concurrency is reached HOT 1
- Example code for Elixir/fly.io/ffmpeg HOT 2
- Allow spec'ing backends from pool config or call site HOT 3
- Fly FLAME failing with timeout HOT 1
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 flame.