Skip to content
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

Fix/reschedule in n days affects manually rescheduled cards #422

Merged

Conversation

L-M-Sherlock
Copy link
Member

No description provided.

@L-M-Sherlock L-M-Sherlock added the bug Something isn't working label Jun 12, 2024
@L-M-Sherlock L-M-Sherlock linked an issue Jun 12, 2024 that may be closed by this pull request
@@ -66,6 +66,7 @@ def set_load_balance(self, did_query=None):
f"""SELECT (id/1000-{mw.col.sched.day_cutoff})/86400, count(distinct cid)
FROM revlog
WHERE ease > 0
AND (type < 3 OR factor != 0)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this change required?

If I am not wrong, this code is for calculating the number of reviews done in the past. I don't think that we should exclude the cram revlogs here. Irrespective of whether they are used to reschedule the card or not, they are actual reviews and take up study time just like other reviews do.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think cramming is out of plan. Should we consider it in load balance?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Forget about that for a moment.

Can you first tell me why are calculating the number of reviews done in the past? Load balancing works for future days and not for past days, right?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because we need to calculate the size of backlog. If the size of backlog is less than the average, some cards will be rescheduled to today.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So, do you mean that the past reviews are used to calculate the average? And then, if today's due count is less than the past average, some reviews would be brought forward (aka advanced) from the future.

If so, I agree that the cram reviews shouldn't be used to calculate the average.

By the way, the code is quite complicated. It would be helpful to add some comments explaining the purpose of some of the codes.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For example, if the size of backlog plus the number of due cards is 100, and the number of due cards tomorrow is 150, some cards due tomorrow will be rescheduled to today.

@L-M-Sherlock L-M-Sherlock merged commit ed32cf8 into main Jun 14, 2024
2 checks passed
@L-M-Sherlock L-M-Sherlock deleted the Fix/reschedule-in-n-days-affects-manually-rescheduled-cards branch June 14, 2024 03:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Feature Request] Don't redistribute cards with manually set due
2 participants