Hacker News new | ask | show | jobs
by czardoz 1080 days ago
I worked on Cinder, and on the web server. Happy to answer technical questions if any :)
5 comments

Thank you for offering to answer questions.

Is Cinder something that could help optimize real-time streaming? We had a UDP stream and then through multiple gstreamer and nvidia deepstream magic (which I believe the senior dev implemented in Python) we perform some ML inference on the stream in real-time.

However, latency is a major issue here and to get to our MVP we didn't really prioritize optimization, as is tradition.

So now I'm wondering if Cinder as something that can be used to optimize real-time data streaming is a thing or whether me asking this just shows I don't understand its use case.

Either way, thank you advance for your insight.

(Also we used Django which I am now wondering if I should have switched out for FastAPI, but that's a separate question)

What are the most impactful and likely features that you'd like to see merged into CPython?
I'd love to see lazy imports become part of the upstream at some point.
Hi,

Would you recommend using Cinder for stack made of - Django - Cython - Numpy

Thanks!

If this stack is heavily skewed towards numerical computations, Cinder might require a lot of tuning to be effective.
Can you expand on the web server? Does it implement WSGI?
It has some elements of WSGI, but has expanded into its own thing which supports asyncio (this happened before ASGI was a thing).
Who would benefit from Cinder? What kinds of workloads? The README is kinda lacking on this.
Cinder's feature set is highly optimized for IO bound web services that run under a forked-worker model.

For example: you start a main process, warm it up with a few requests, run the JIT compiler and then fork off worker processes to handle the main chunk of traffic.

As of now, it requires hand-tuning to get the best possible performance.

In terms of use cases, Cinder does the best when faced with "business logic" code (lots of inheritance, attribute lookups, method calls, etc). It can speed up numerical computations too, but you're probably better off using a library if that's the majority of the workload.