New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support changefeeds in the web UI #2643
Comments
I would like to avoid us having to implement a server-side component over something like Socket.IO to allow following changefeeds -- if we can do it over an HTTP connection straight from the driver in the web UI, that would be amazing. |
Currently changefeeds are disabled over HTTP because some internal asserts cause a crash when the HTTP connection times out while a changefeed is open (we have to block to unsubscribe from the changefeed, and the timer function doesn't like that). This would be relatively easy to fix. |
HTTP request will also eventually timeout, so I'm not sure we can keep a feed for more than a few minutes too. |
This is assigned to @neumino right now, but he can't really start prototyping until someone on the server re-enables changefeeds and fixes the old crashing bug. I or @Tryneus could do that (or Graham could with a little help -- it would be a good way to get a surface-level introduction to coroutines, blocking a coroutine, |
Assigning to myself, but I might not get to it immediately, so feel free to steal it. |
@mlucy @danielmewes I'm stealing this issue. |
👍 |
@AtnNn -- could you write up a quick summary on how the UI will work? Me and @mglukhovsky care about it a lot and I have a bunch of opinions. In particular:
Do you have an idea of how you'd like to do this? |
Currently my favourite idea is to have change feeds displayed like cursors, but with the newest row at the top and updated automatically, with a pause button. I don't think it should be different if the feed is on a range. Updating documents with a quick background flash sounds like a great idea for regular queries. There could be a configuration option that enables it. The data explorer could show the results of I will get to know the data explorer code more intimately this week. I will have a more complete proposal next week. |
Hmm, interesting. It's kind of hard to envision in the mind's eye what it's going to be like/which approach is better until we play with it, so I'm really looking forward to that! |
Here's my plan.
@neumino Do you have any opinion or advice? It will take a lot more time before I get to know the code as well as you do. |
@AtnNn -- The class Breaking
The third bullet point is a good idea. I'm currently passing Overall, it seems like a good idea to me, the current classes are pretty heavy (sorry :)). |
Ah also, if you want to quickly implement feeds without refactoring things, one way to do it is:
|
Thanks @neumino. I did at first implement something akin to |
One more thing @AtnNn, the data explorer used to support multiple queries, but we removed this at some point (I actually don't exactly remember when or why -- it was for UX reason, but also for some technical concerns related to the HTTP connections). |
I have already removed the generated callbacks and the |
Merged into next and v1.16.x as 752c755. |
Super awesome 👏 |
There are a few reasons to do it:
We should figure out how to do this effectively before we ship 1.14.
/cc @neumino @mglukhovsky
The text was updated successfully, but these errors were encountered: