At the time that I had joined this instance, I believe none of the posts from !30rock@dubvee.org were viewable on this instance. When I subscribed to the community, most posts then became available, but few-to-none of the comments/votes did. Everything since subscribing is entirely in sync. Check it out yourself; when sorting by Old, you see many posts from well before I had joined this instance, but they do not have comments and have just the OP’s initial one upvote: https://feddit.org/c/30rock@dubvee.org?dataType=Post&sort=Old
I have noticed similar behaviour with other communities, so I don’t think “actions” are just stuck in the “queue” or whatever. Is there anything I can do to get my instance fully in sync with a particular community? Or could this only be remedied by an administrator of one (or both) of the instances?
You’re correct in assuming that nothing is stuck in a queue.
Compared with other Fediverse platforms, a feature that Lemmy lacks is paginated outboxes. These would allow communities to list all the posts, because other instances could get them a page at a time (e.g. 20 for page 1, then the next 20 for page 2, and so on). Instead, they provide a non-paginated outbox with only the most recent 50 posts. An outbox for comments isn’t really feasible without pagination, which is probably why they don’t provide one at all. For votes, it’s even less practical, and irrespective of that, it would go against the familiar hang-up about votes being private.
So if you’re the first person to join a remote community, then 50 recent posts are brought in, but no older posts, no comments, and no votes. There’s no way to get the old votes. If your instance receives some activity that makes it realise that it’s missing something, then it will resolve it (e.g. it will often fetch an old post if it receives a reply to it, and fetch a comment if it receives a vote for it), but it will start that post or comment at score 0.
If you really wanted to be fully in-sync for comments, then you could script it to use the APIs for the remote and local instance. For the remote instance it would be something like: list the posts oldest to newest (limited by the amount you’re missing); get the ap_id for each one, then login to your instance and ask it to resolve it. Then do the same for the comments in each post. Everything it resolves would be a score 0 though, and it assumes that the author hasn’t deleted themselves in the meantime, or that their instance hasn’t disappeared. Given that, I don’t really see the point, other than trying to a completist about stuff.
Great information, I appreciate it!
Considering this is just a silly community about a TV show that ended a decade ago, I absolutely agree. But, hypothetically speaking, could it be possible to fully sync, votes and all? Given some important community where vote counts actually did matter for some reason, could admins from both instances coordinate with each other to manually query their respective databases to get historical posts, comments, upvotes, and downvotes synchronized?
Hypothetically, sure: the info exists in one place - they’d just have to arrange a way to transfer it.
Votes themselves are a simple activity, but each one can cause a surprising increase in storage requirements (every vote has a user, every user has an instance, every instance has admins, and all these entities might have avatar and banner images associated with them). Most instances are run by one person as a hobby, and paying for DB and image storage seems to be the no. 1 reason for instances folding, so there’s generally a question of how much one instance should be an exact mirror of another one.