Anki/proto/anki
Jake Probst c6cb4e4373
load balancer! (#3230)
* start of load balancer

* add configuration options; option to load balance per deck

* formatting

* clippy

* add myself to contributors

* cleanup

* cargo fmt

* copyright header on load_balancer.rs

* remove extra space

* more formatting

* python formatting

* ignore this being None

only doing this cause python has awful lambdas and can't
loop in a meaningful way without doing this

* only calculate notes on each day if we are trying to avoid siblings

* don't fuzz intervals if the load balancer is enabled

* force generator to eval so this actually happens

* load balance instead of fuzzing, rather than in addition to

* use builtin fuzz_bounds rather than reinvent something new

* print some debug info on how its load balancing

* clippy

* more accurately load balance only when we want to fuzz

* incorrectly doublechecking the presence of the load balancer

* more printfs for debugging

* avoid siblings -> disperse siblings

* load balance learning graduating intervals

* load balancer: respect min/max intervals; graduating easy should be at least +1 good

* filter out after-days under minimum interval

* this is an inclusive check

* switch load balancer to caching instead of on the fly calculation

* handle case where load balancer would balance outside of its bounds

* disable lb when unselecting it in preferences

* call load_balancer in StateContext::with_review_fuzz instead of next to

* rebuild load balancer when card queue is rebuilt

* remove now-unused configuration options

* add note option to notetype to enable/disable sibling dispersion

* add options to exclude decks from load balancing

* theres a lint checking that the link actually exists so I guess I'll add the anchor back in later?

* how did I even update this

* move load balancer to cardqueue

* remove per-deck balancing options

* improve determining whether to disperse siblings when load balancing

* don't recalculate notes on days every time

* remove debug code

* remove all configuration; load balancer enabled by default; disperse siblings if bury_reviews is set

* didn't fully remove caring about decks from load balancer sql query

* load balancer should only count cards in the same preset

* fuzz interval if its outside of load balancer's range

* also check minimum when bailing out of load balancer

* cleanup; make tests happy

* experimental weight-based load balance fuzzing

* take into account interval when weighting as it seems to help

* if theres no cards the interval weight is just 1.0

* make load balancer disableable through debug console

* remove debug prints

* typo

* remove debugging print

* explain a bit how load balancer works

* properly balance per preset

* use inclusive range rather than +1

* -1 type cast

* move type hint somewhere less ugly; fix comment typo

* Reuse existing deck list from parent function (dae)

Minor optimisation
2024-08-17 12:50:54 +07:00
..
ankidroid.proto More service generation refactoring 2023-06-22 09:46:09 +10:00
ankihub.proto Integrate AnkiHub Sign-in (#3232) 2024-08-17 10:58:23 +07:00
ankiweb.proto Change Anki's version scheme; bump to 23.09 (#2640) 2023-09-07 12:37:15 +10:00
backend.proto Add support for custom certificates (#3203) 2024-05-24 10:57:54 +01:00
card_rendering.proto Move anki.utils.html_to_text_line() to backend (#2816) 2023-11-09 09:57:23 +10:00
cards.proto Store desired retention in card data 2023-09-23 15:42:42 +10:00
collection.proto Show total review count when optimizing FSRS parameters (#3027) 2024-02-26 13:27:22 +07:00
config.proto load balancer! (#3230) 2024-08-17 12:50:54 +07:00
deck_config.proto Feature Show Reminder before answer (#3064) (#3119) 2024-04-13 08:39:50 +01:00
decks.proto Use seconds instead of minutes for preview delay 2023-12-21 11:02:29 +10:00
frontend.proto Improve presentation of importing results (#2568) 2023-08-02 20:29:44 +10:00
generic.proto Add java_multiple_files option to proto files 2022-06-27 15:16:04 +10:00
i18n.proto More service generation refactoring 2023-06-22 09:46:09 +10:00
image_occlusion.proto Maintain original IO cloze order in editing mode (#2987) 2024-02-07 13:42:47 +10:00
import_export.proto Allow im-/exporting with or without deck configs (#2804) 2023-11-13 13:54:41 +10:00
links.proto Rework error dialog 2023-11-29 10:25:32 +10:00
media.proto Add a backend method to extract static media references (#2716) 2023-10-11 14:10:02 +10:00
notes.proto Add a backend method to add notes in bulk (#2659) 2023-09-16 13:51:32 +10:00
notetypes.proto Add image occlusion to stock notetypes 2023-10-22 11:00:39 +10:00
scheduler.proto Feat/FSRS-5 (#3298) 2024-07-21 21:02:24 +07:00
search.proto Invalid sorting (#2709) 2023-10-07 06:36:15 +00:00
stats.proto Show preset and original deck in card info (#3055) 2024-03-07 07:47:55 +00:00
sync.proto Add support for custom certificates (#3203) 2024-05-24 10:57:54 +01:00
tags.proto More service generation refactoring 2023-06-22 09:46:09 +10:00