In our case everything ia working fine, too. Our instances stopped crashing when running the daily cronjob which deletes about 100k docs/day.
âWe did not notice any major bugsâ does not sound too assuring are there some kinds of small bugs?
Haha true, so, there were some bugs indeed after we went to PROD, but we solved them, and they were not MAJOR just some small edge-cases. Currently itâs stable.
Ok, so it sounds like there are no known bugs with the new version. Nice.
I have been using redis-oplog in production for months with hundreds of concurrent users. We had one small issue which was fixed immediately by @diaconutheodor. All in all Iâm very happy and can recommend redis-oplog!
Iâve been thinking⌠few things that I think could be very synergistic with this package, and perhaps practical since we are connecting our apps to Redis:
- Creating/exposing Redis APIs for Meteor developers use, and to make it work over regular pub/sub. Redis is blazing fast, and can persist, so might as well embrace it all the way
- Creating some kind of load balancing solution around Redis, in the spirit of meteorhacks:cluster.
- Creating a âpatchingâ API for redis-oplog in case MongoDB updates happen outside of the Meteor application. Maybe some kind of protected REST API.
Combined, they would take this package from a solution to scale oplog to a solution to scale Meteor, all built around the magic of Redis.
And one more: the idea of Redis going unavailable and stopping updates is a bit unpleasant. In the beginning, it would be nice if there was some kind of mechanism for developers to manage these scenarios or to force it to re-run all the queries.
Iâm very likely going to start integrating this into my production app in a few weeks. One question came to mind (sorry if itâs been answered): you remove oplog
from your app logically, but what happens to Meteorâs backup âpoll and diffâ mechanisms? Do they still run with redis-oplog
? If the âpoll and diffâ caused performance problems before adding oplog
will it still when using redis-oplog
? Is there a way to disable âpoll and diffâ?
Hello @evolross
A new release will be coming soon making it even more stable. (1.2.1 I plan on finishing it this month)
Regarding your question, there is no fallback with redis-oplog. If redis dies, bye bye reactivity, if redis comes back alive again (we have a 30s infinite retry of connection) reactivity will be back up again. However, when redis resumes, we have to requery all observableCollections and apply changes:
However, you can still rely on poll-and-diff if you want: https://github.com/cult-of-coders/redis-oplog/blob/master/docs/finetuning.md#fallback-to-polling
You can even have mongodb oplog, redis-oplog and poll-and-diff at the same time by not overriding publish function, but I wouldnât recommend that though.
@thea (and @diaconutheodor)
redis-oplog is becoming a critical piece for the community, especially production apps. I recall there was planning (months ago!) for a blog about it on the main Meteor blog site (@diaconutheodor and I talked about it privately too and I offered to help review it).
Any updates on that?
Case in point: we now have thousands of concurrent users internationally, with servers in US, Europe and Middle East (planned), redis-oplog is planned to be the glue for that
Thanks for the reminder Ramez, planning o. Giving that draft feedback by
end of the day.
@diaconutheodor Would it be worth raising a PR on https://github.com/englue/meteor-publish-composite to see if @reywood can bring the adaptation you made for optimistic UI into the main publish-composite package? That would save you from maintaining a separate package and users having to change over to it.
There have been some recent updates to the package by @reywood, so we can benefit from those when using Redis Oplog without any extra maintenance headache on your part.
I tried and hated that cluster package. It had ingenious elements, but was very hacky. Load balancing should either be hardware-based or with the web server itself (e.g. nginx pro or tengine).
Unless I misunderstood what you meant.
@Longmate in the meantime I know found another solution without changing the publish-composite package. So I will deprecate my package and make it compatible.
Hi @thea, are we end of day yet?
Just joking, I am sure you already reviewed the draft. Would love to see that blog post.
Does anyone know if we can use Redis version 4 with this package ?
@diaconutheodor?
Itâs available on compose.io
Thanks
Why not redis cloud by redis labs⌠free plan should work great since thereâs nothing actually being stored in redis.
@ixdi
I donât see any changes inside the pub/sub so yep, it should work. Let me know if you encounter issues.
@thea I have sent you the document for review, I have asked for another invitation for medium.com guest post, but did not receive any answer.
@copleykj that could work, but I suggest keeping your redis in the local network, for trully fast responses.