-
Notifications
You must be signed in to change notification settings - Fork 1
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
RequestManager for partial replication #5
Conversation
Notes from video call:
|
Informed by this comment, I'm thinking that this PR needs a few different responsibilities:
@arj03 What do you think of this? These responsibilities smell like they belong elsewhere:
But where? Maybe |
That is a great overview, helped me clarify some thoughts. I think the responsibility of those 2 points should be in this module. |
Okay, I'll start with that, but I'll keep thinking about responsibility modularization.
Would this mean that we need to use |
Yes |
3fe91fc
to
7e20666
Compare
@arj03 I updated this PR:
Table updated:
|
I looked over the changes, this is looking good. As for the table and changes, I think its a very good idea as you have done, to try and make this initially about doing partial the correct way. Then we can start testing that and get some numbers of how it behaves and take the edge cases of doing partial replication with a non-meta-feed nodes. |
Table updated:
|
@arj03 I have a bug that's related to ssb-ebt but I don't want to put it on that branch because it's not a blocker for that PR, it's more of a "general problem" with the whole approach. Indexed feed replication isn't working for me anymore, and I drilled down into the details and apparently the "feeds-lookup" in ssb-meta-feeds (which loads up state for |
Table updated:
|
@arj03 This branch should be ready for review except for tombstoning. |
@arj03 Hmm, I just realized that maybe this module should have a |
Good thinking, makes sense. |
I want to use replicationScheduler's Tests seem to be failing even on the last commit where it passed, indicating that maybe something changed in our dependencies which may be causing test failure. |
@arj03 Maybe I could use your help here because I think it's somehow related to ssb-db2 and epidemic-broadcast-trees. It's the strangest thing. If you go to The clocks show that the peers have not received each other's data, even though they are mutually following each other. I put debug logs in ssb-ebt and enabled logging in epidemic-broadcast-trees, and it seems that notes are sent to other peers, but ssb-ebt On On |
I even tried pinning the version of ssb-db2 to 2.2.0 (
|
It does actually look like that. AAOL 3.1.2 seems to work for me, while AAOL 3.1.3 does not. It fails 3 tests. |
Ouch, could it be that the database glitch in production is real because of AAOL 3.1.3? Good time to do that refactor on stream.js. |
It appears that manyverse is using 3.1.2 so just don't upgrade AAOL until we figure out what the problem is. |
Yup! Tests pass again in |
@arj03 I added a test for this in the latest commit, so now this PR should have addressed all the cases. There is still the concern on how to improve performance by avoiding the 500ms timeout, but we can tweak performance in the future as we go, doesn't need to be a dealbreaker for this PR, in my opinion. |
Ok, will have a look :) |
I do remember reviewing most of this stuff, so I'm just trying to get back and making sure that we have everything. A question regarding the syntax of partialReplication. Is there a way to say you want to replicate all subfeeds? |
To add some more context: the above would able pubs to replicate all subfeeds and it would mean I could use this module in groupies. It is not a blocker on this PR, just something that would be good to have. I think that is my only overall comment. We tested this to figure out performance and I can you you fixed the things we found there so seems like this is ready for merge :) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wup
Just a sec, I'm making a test case to answer your question. Basically, yes this is supported in one way or another. It's a bit quirky (do we need a "replication language" soon?) but the support exists. |
@arj03 See latest commit. Once CI tests pass, I'll merge and make a new major version. 🎉 |
😁 Glad to know it exists. Great work on this PR, it is quite a task getting these concurrently things to line up correctly. |
Wow, what a huge PR this was! |
getSubset
queriesHow do we configure sliced replication?Support sliced replication in partial replication mode #6ebt.registerFormat
in index.js or somewhere, based on the configTemplate
data structure for easily querying stufftraverse
metafeed/tombstone
quickly discovered after ametafeed/add
reconfigure()
should trigger some recalculation on the new templatesstart()
method and autostart config@arj03 This branch is truly a work in progress, but I figured you might have some comments on the direction I'm taking here. So far this just sets up the repo with placeholders to receive partial replication logic. If you have any comments, I'm keen to hear.