Page MenuHomeSoftware Heritage

grab_next_visits: don't re-schedule visits too fast
ClosedPublic

Authored by vlorentz on Jan 21 2021, 6:07 PM.

Details

Summary

The earlier implementation would just schedule new visits for origins
forever, regardless of whether they were already scheduled or not.

Diff Detail

Repository
rDSCH Scheduling utilities
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

Build is green

Patch application report for D4912 (id=17491)

Could not rebase; Attempt merge onto 03460207a1...

Updating 0346020..ba303f9
Fast-forward
 swh/scheduler/backend.py                    | 107 ++++++++++++++++++++++------
 swh/scheduler/interface.py                  |  45 +++++++++---
 swh/scheduler/model.py                      |  33 +--------
 swh/scheduler/simulator/__init__.py         |  18 ++---
 swh/scheduler/simulator/origin_scheduler.py |   2 +-
 swh/scheduler/simulator/origins.py          |  83 ++++++++++++++++++++-
 swh/scheduler/tests/test_scheduler.py       |  93 ++++++++++++++++++++----
 swh/scheduler/tests/test_simulator.py       |   6 +-
 8 files changed, 294 insertions(+), 93 deletions(-)
Changes applied before test
commit ba303f946ecd3e15e58de0072ce71b50aa423d59
Author: Nicolas Dandrimont <nicolas@dandrimont.eu>
Date:   Thu Jan 21 17:31:43 2021 +0100

    grab_next_visits: don't re-schedule visits too fast
    
    The earlier implementation would just schedule new visits for origins
    forever, regardless of whether they were already scheduled or not.

commit 808ae6851faee9b633e773f9150d360cdb927146
Author: Nicolas Dandrimont <nicolas@dandrimont.eu>
Date:   Thu Jan 21 17:29:45 2021 +0100

    Allow overriding the timestamp of grab_next_visits
    
    This makes the simulator behavior more consistent with reality.

commit 9943195d31c51a44325cba09d07fb6e904d45a00
Author: Nicolas Dandrimont <nicolas@dandrimont.eu>
Date:   Thu Jan 21 17:27:40 2021 +0100

    Construct grab_next_visits query arguments incrementally

commit 72070b7bf628788b6872e90a3f8ac8f0c01b70d9
Author: Valentin Lorentz <vlorentz@softwareheritage.org>
Date:   Thu Jan 21 14:57:42 2021 +0100

    simulator: add simple lister simulation

commit 1f1aad459c4b0740ecbe96e9809e4b31f66bf999
Author: Valentin Lorentz <vlorentz@softwareheritage.org>
Date:   Thu Jan 21 14:54:53 2021 +0100

    Factor out ListedOrigin generation to use the OriginModel
    
    This generates consistent last_update values according to the model and
    simulated time.

commit b93aa5be2c2d5dc2130e1027698f3e1255052d8d
Author: Valentin Lorentz <vlorentz@softwareheritage.org>
Date:   Thu Jan 21 13:01:53 2021 +0100

    Make PaginatedListedOriginList a concretization of PagedResult
    
    1. consistent with swh-storage and swh-indexer-storage
    2. we can use swh.core.api.classes.stream_results on scheduler.get_listed_origins.

commit 2f47936731cf438a5195978a2af3250597b693b5
Author: Nicolas Dandrimont <nicolas@dandrimont.eu>
Date:   Wed Jan 20 17:29:16 2021 +0100

    Add scheduling policy for already visited origins with known last update
    
    This policy schedules origins by decreasing order of "visit lag" (that
    is, origins with the most lag are scheduled first).

commit acad712ad3f71f88f99e45e9b4f571ad751945dc
Author: Nicolas Dandrimont <nicolas@dandrimont.eu>
Date:   Wed Jan 20 17:25:46 2021 +0100

    Add scheduling policy for never visited origins
    
    This policy orders never visited origins by increasing date of last
    update (scheduling the "oldest" never visited origins first).

See https://jenkins.softwareheritage.org/job/DSCH/job/tests-on-diff/234/ for more details.

Build is green

Patch application report for D4912 (id=17523)

Could not rebase; Attempt merge onto b93aa5be2c...

Updating b93aa5b..f5af170
Fast-forward
 swh/scheduler/backend.py                    | 61 +++++++++++++++++----
 swh/scheduler/interface.py                  | 15 +++++-
 swh/scheduler/simulator/__init__.py         | 18 +++----
 swh/scheduler/simulator/origin_scheduler.py |  2 +-
 swh/scheduler/simulator/origins.py          | 83 +++++++++++++++++++++++++++--
 swh/scheduler/tests/test_scheduler.py       | 21 +++++++-
 6 files changed, 171 insertions(+), 29 deletions(-)
Changes applied before test
commit f5af170b5f8d6bc36b56aa007db613bcc5754804
Author: Nicolas Dandrimont <nicolas@dandrimont.eu>
Date:   Thu Jan 21 17:31:43 2021 +0100

    grab_next_visits: don't re-schedule visits too fast
    
    The earlier implementation would just schedule new visits for origins
    forever, regardless of whether they were already scheduled or not.

commit 808ae6851faee9b633e773f9150d360cdb927146
Author: Nicolas Dandrimont <nicolas@dandrimont.eu>
Date:   Thu Jan 21 17:29:45 2021 +0100

    Allow overriding the timestamp of grab_next_visits
    
    This makes the simulator behavior more consistent with reality.

commit 9943195d31c51a44325cba09d07fb6e904d45a00
Author: Nicolas Dandrimont <nicolas@dandrimont.eu>
Date:   Thu Jan 21 17:27:40 2021 +0100

    Construct grab_next_visits query arguments incrementally

commit 72070b7bf628788b6872e90a3f8ac8f0c01b70d9
Author: Valentin Lorentz <vlorentz@softwareheritage.org>
Date:   Thu Jan 21 14:57:42 2021 +0100

    simulator: add simple lister simulation

commit 1f1aad459c4b0740ecbe96e9809e4b31f66bf999
Author: Valentin Lorentz <vlorentz@softwareheritage.org>
Date:   Thu Jan 21 14:54:53 2021 +0100

    Factor out ListedOrigin generation to use the OriginModel
    
    This generates consistent last_update values according to the model and
    simulated time.

See https://jenkins.softwareheritage.org/job/DSCH/job/tests-on-diff/260/ for more details.

douardda added a subscriber: douardda.

Not very fond of this "one week => dead" embedded in there, but meh.

This revision is now accepted and ready to land.Jan 22 2021, 3:37 PM

same, but that's easy to fix when needed

Build is green

Patch application report for D4912 (id=17570)

Could not rebase; Attempt merge onto 2906b4e8a0...

Updating 2906b4e..6784a19
Fast-forward
 swh/scheduler/backend.py                    | 61 +++++++++++++++----
 swh/scheduler/interface.py                  | 15 ++++-
 swh/scheduler/simulator/__init__.py         | 18 +++---
 swh/scheduler/simulator/origin_scheduler.py |  2 +-
 swh/scheduler/simulator/origins.py          | 92 +++++++++++++++++++++++++++--
 swh/scheduler/tests/test_scheduler.py       | 21 ++++++-
 6 files changed, 179 insertions(+), 30 deletions(-)
Changes applied before test
commit 6784a19cdc38b8f97aa4f9c1da9859ece24865f1
Author: Nicolas Dandrimont <nicolas@dandrimont.eu>
Date:   Thu Jan 21 17:31:43 2021 +0100

    grab_next_visits: don't re-schedule visits too fast
    
    The earlier implementation would just schedule new visits for origins
    forever, regardless of whether they were already scheduled or not.

commit 09a8768c30dc335afccde4df046b371a274cb2f9
Author: Nicolas Dandrimont <nicolas@dandrimont.eu>
Date:   Thu Jan 21 17:29:45 2021 +0100

    Allow overriding the timestamp of grab_next_visits
    
    This makes the simulator behavior more consistent with reality.

commit a2dc72474056c2f20e255acf13ec3e662e1aad7a
Author: Nicolas Dandrimont <nicolas@dandrimont.eu>
Date:   Thu Jan 21 17:27:40 2021 +0100

    Construct grab_next_visits query arguments incrementally

commit e5709214b4917a5fe3634d040da7a061f5978f66
Author: Valentin Lorentz <vlorentz@softwareheritage.org>
Date:   Thu Jan 21 14:57:42 2021 +0100

    simulator: add simple lister simulation

commit 7af98e2bc048c6946679e7d95cf8620e4a0ee4bf
Author: Valentin Lorentz <vlorentz@softwareheritage.org>
Date:   Thu Jan 21 14:54:53 2021 +0100

    Factor out ListedOrigin generation to use the OriginModel
    
    This generates consistent last_update values according to the model and
    simulated time.

See https://jenkins.softwareheritage.org/job/DSCH/job/tests-on-diff/274/ for more details.

Build is green

Patch application report for D4912 (id=17610)

Could not rebase; Attempt merge onto 2906b4e8a0...

Updating 2906b4e..c92ead5
Fast-forward
 docs/simulator.rst                          | 15 +++++
 swh/scheduler/backend.py                    | 61 +++++++++++++++----
 swh/scheduler/interface.py                  | 15 ++++-
 swh/scheduler/simulator/__init__.py         | 18 +++---
 swh/scheduler/simulator/origin_scheduler.py |  2 +-
 swh/scheduler/simulator/origins.py          | 92 +++++++++++++++++++++++++++--
 swh/scheduler/tests/test_scheduler.py       | 21 ++++++-
 7 files changed, 194 insertions(+), 30 deletions(-)
Changes applied before test
commit c92ead5875ecfd96a164eec1803398adec6eb8a8
Author: Nicolas Dandrimont <nicolas@dandrimont.eu>
Date:   Thu Jan 21 17:31:43 2021 +0100

    grab_next_visits: don't re-schedule visits too fast
    
    The earlier implementation would just schedule new visits for origins
    forever, regardless of whether they were already scheduled or not.

commit 2b39cbcabf9960c1f660442e15f6c17654aec9e2
Author: Nicolas Dandrimont <nicolas@dandrimont.eu>
Date:   Thu Jan 21 17:29:45 2021 +0100

    Allow overriding the timestamp of grab_next_visits
    
    This makes the simulator behavior more consistent with reality.

commit 7ffbdd1b3eb579f43e8913ea11cfd916b2f3c457
Author: Nicolas Dandrimont <nicolas@dandrimont.eu>
Date:   Thu Jan 21 17:27:40 2021 +0100

    Construct grab_next_visits query arguments incrementally

commit ea068b46a89e07c60ad1233afd36afc6bb29031e
Author: Valentin Lorentz <vlorentz@softwareheritage.org>
Date:   Thu Jan 21 14:57:42 2021 +0100

    simulator: add simple lister simulation

commit 7af98e2bc048c6946679e7d95cf8620e4a0ee4bf
Author: Valentin Lorentz <vlorentz@softwareheritage.org>
Date:   Thu Jan 21 14:54:53 2021 +0100

    Factor out ListedOrigin generation to use the OriginModel
    
    This generates consistent last_update values according to the model and
    simulated time.

See https://jenkins.softwareheritage.org/job/DSCH/job/tests-on-diff/283/ for more details.