Page MenuHomeSoftware Heritage
Feed Advanced Search

Oct 4 2021

aeviso updated the diff for D6339: Add support for remote backend on existing storage tests.

rebase

Oct 4 2021, 4:30 PM
aeviso updated the diff for D6339: Add support for remote backend on existing storage tests.

rebase

Oct 4 2021, 3:57 PM
aeviso updated the diff for D6165: Add new RabbitMQ-based client/server API.

rebase

Oct 4 2021, 3:56 PM
aeviso updated the diff for D6358: Make old StatsD metrics style compliant with the rest of the module.

rebase

Oct 4 2021, 3:53 PM
aeviso updated the diff for D6353: Add StatsD support to graph submodule.

rebase

Oct 4 2021, 3:52 PM
aeviso updated the diff for D6352: Add StatsD support to provenance storage implementations.

rebase

Oct 4 2021, 3:52 PM
aeviso updated the diff for D6351: Add StatsD support to provenance backend.

rebase

Oct 4 2021, 3:51 PM
aeviso updated the summary of D6357: Split `Provenance::flush` method in two (one per layer).
Oct 4 2021, 3:49 PM
aeviso updated the diff for D6357: Split `Provenance::flush` method in two (one per layer).

rebase

Oct 4 2021, 3:49 PM
aeviso updated the diff for D6334: Add `close` method to both `ProvenanceInterface` and `ProvenanceStorageInterface`.

turn backend classes into context managers

Oct 4 2021, 3:47 PM
aeviso updated the diff for D6273: Remove remote storage based on `swh.core.api.RPCClient`.

rebase

Oct 4 2021, 3:46 PM
aeviso updated the diff for D6272: Remove remote storage based on `swh.core.api.RPCClient`.

rebase

Oct 4 2021, 3:46 PM
aeviso retitled D6273: Remove remote storage based on `swh.core.api.RPCClient` from Remove old client/server storage based on `swh.core.api.RPCClient` to Remove remote storage based on `swh.core.api.RPCClient`.
Oct 4 2021, 3:43 PM
aeviso updated the summary of D6273: Remove remote storage based on `swh.core.api.RPCClient`.
Oct 4 2021, 3:41 PM
aeviso retitled D6272: Remove remote storage based on `swh.core.api.RPCClient` from Rename remote storage backend classes to Remove remote storage based on `swh.core.api.RPCClient`.
Oct 4 2021, 3:40 PM
aeviso updated the diff for D6273: Remove remote storage based on `swh.core.api.RPCClient`.

squash with D6272

Oct 4 2021, 3:39 PM
aeviso updated the diff for D6272: Remove remote storage based on `swh.core.api.RPCClient`.

squash with D6273

Oct 4 2021, 3:38 PM

Sep 30 2021

aeviso updated the diff for D6339: Add support for remote backend on existing storage tests.

rebase

Sep 30 2021, 4:21 PM
aeviso updated the diff for D6165: Add new RabbitMQ-based client/server API.

rebase

Sep 30 2021, 4:20 PM

Sep 29 2021

aeviso updated the diff for D6339: Add support for remote backend on existing storage tests.

rebase

Sep 29 2021, 4:15 PM
aeviso updated the diff for D6165: Add new RabbitMQ-based client/server API.

rebase

Sep 29 2021, 4:14 PM
aeviso updated the diff for D6339: Add support for remote backend on existing storage tests.

rebase

Sep 29 2021, 3:43 PM
aeviso updated the diff for D6165: Add new RabbitMQ-based client/server API.

move later in the commit history

Sep 29 2021, 3:40 PM
aeviso updated the diff for D6358: Make old StatsD metrics style compliant with the rest of the module.

rebase

Sep 29 2021, 3:38 PM
aeviso updated the diff for D6353: Add StatsD support to graph submodule.

rebase

Sep 29 2021, 3:37 PM
aeviso retitled D6352: Add StatsD support to provenance storage implementations from Add StatsD support to all three storage implementations to Add StatsD support to provenance storage implementations.
Sep 29 2021, 3:37 PM
aeviso updated the diff for D6352: Add StatsD support to provenance storage implementations.

rebase

Sep 29 2021, 3:36 PM
aeviso updated the diff for D6351: Add StatsD support to provenance backend.

rebase

Sep 29 2021, 3:34 PM
aeviso updated the diff for D6357: Split `Provenance::flush` method in two (one per layer).

rebase

Sep 29 2021, 3:33 PM
aeviso updated the diff for D6273: Remove remote storage based on `swh.core.api.RPCClient`.

move earlier in the commit history

Sep 29 2021, 3:31 PM
aeviso updated the diff for D6358: Make old StatsD metrics style compliant with the rest of the module.

rebase

Sep 29 2021, 2:36 PM
aeviso updated the diff for D6353: Add StatsD support to graph submodule.

rebase

Sep 29 2021, 2:35 PM
aeviso updated the diff for D6352: Add StatsD support to provenance storage implementations.

rebase

Sep 29 2021, 2:35 PM
aeviso updated the diff for D6351: Add StatsD support to provenance backend.

rebase

Sep 29 2021, 2:34 PM
aeviso updated the diff for D6357: Split `Provenance::flush` method in two (one per layer).

rebase

Sep 29 2021, 2:33 PM
aeviso updated the summary of D6273: Remove remote storage based on `swh.core.api.RPCClient`.
Sep 29 2021, 2:32 PM
aeviso updated the diff for D6273: Remove remote storage based on `swh.core.api.RPCClient`.

rebase

Sep 29 2021, 2:31 PM
aeviso updated the diff for D6339: Add support for remote backend on existing storage tests.

rebase

Sep 29 2021, 2:31 PM
aeviso updated the diff for D6165: Add new RabbitMQ-based client/server API.

rebase

Sep 29 2021, 2:29 PM
aeviso updated the diff for D6334: Add `close` method to both `ProvenanceInterface` and `ProvenanceStorageInterface`.

Add open method and refactor storage classes initialization

Sep 29 2021, 2:28 PM

Sep 28 2021

aeviso updated the summary of D6272: Remove remote storage based on `swh.core.api.RPCClient`.
Sep 28 2021, 1:26 PM
aeviso updated the diff for D6358: Make old StatsD metrics style compliant with the rest of the module.

rebase

Sep 28 2021, 10:11 AM
aeviso updated the diff for D6353: Add StatsD support to graph submodule.

rebase

Sep 28 2021, 10:11 AM
aeviso updated the diff for D6352: Add StatsD support to provenance storage implementations.

rebase

Sep 28 2021, 10:10 AM
aeviso updated the diff for D6351: Add StatsD support to provenance backend.

rebase

Sep 28 2021, 10:10 AM
aeviso updated the diff for D6357: Split `Provenance::flush` method in two (one per layer).

rebase

Sep 28 2021, 10:09 AM

Sep 27 2021

aeviso added inline comments to D6353: Add StatsD support to graph submodule.
Sep 27 2021, 5:08 PM
aeviso added inline comments to D6358: Make old StatsD metrics style compliant with the rest of the module.
Sep 27 2021, 5:04 PM
aeviso updated the diff for D6358: Make old StatsD metrics style compliant with the rest of the module.

rebase

Sep 27 2021, 4:14 PM
aeviso updated the diff for D6353: Add StatsD support to graph submodule.

rebase

Sep 27 2021, 4:13 PM
aeviso retitled D6352: Add StatsD support to provenance storage implementations from Add StatsD support to all three storage implemetations to Add StatsD support to all three storage implementations.
Sep 27 2021, 4:13 PM
aeviso updated the diff for D6352: Add StatsD support to provenance storage implementations.

fix commit message

Sep 27 2021, 4:13 PM
aeviso requested review of D6358: Make old StatsD metrics style compliant with the rest of the module.
Sep 27 2021, 4:12 PM
aeviso updated the diff for D6351: Add StatsD support to provenance backend.

fix commit message

Sep 27 2021, 4:12 PM
aeviso retitled D6351: Add StatsD support to provenance backend from Add support for StatsD to provenance backend to Add StatsD support to provenance backend.
Sep 27 2021, 4:11 PM
aeviso requested review of D6357: Split `Provenance::flush` method in two (one per layer).
Sep 27 2021, 4:08 PM
aeviso added inline comments to D6351: Add StatsD support to provenance backend.
Sep 27 2021, 4:07 PM
aeviso added inline comments to D6353: Add StatsD support to graph submodule.
Sep 27 2021, 4:07 PM
aeviso retitled D6351: Add StatsD support to provenance backend from Split `Provenance::flush` into two methods and add StatsD support to Add support for StatsD to provenance backend.
Sep 27 2021, 4:05 PM
aeviso updated the diff for D6353: Add StatsD support to graph submodule.

rebase

Sep 27 2021, 4:03 PM
aeviso updated the diff for D6352: Add StatsD support to provenance storage implementations.

rebase

Sep 27 2021, 4:02 PM
aeviso updated the diff for D6351: Add StatsD support to provenance backend.

split

Sep 27 2021, 4:02 PM
aeviso requested review of D6353: Add StatsD support to graph submodule.
Sep 27 2021, 2:19 PM
aeviso requested review of D6352: Add StatsD support to provenance storage implementations.
Sep 27 2021, 2:18 PM
aeviso requested review of D6351: Add StatsD support to provenance backend.
Sep 27 2021, 2:18 PM

Sep 24 2021

aeviso added a comment to D6165: Add new RabbitMQ-based client/server API.
In D6165#164547, @olasd wrote:

Thanks for this massive implementation work!

I still want to do a deeper dive in this code (and give others the chance to do so), but I think that before that, and now that bugs and wrinkles have been ironed out and this code seems to be working, we need a large pass of updating the docstrings to describe the actual behavior of the code.

I expect a lot of this is present inside the hedgedoc document, so you should try to land it as documentation at the same time as this code.

When reading this diff, I would like to find the following:

  • a description of all threads and subprocesses (on the client and server side), as well as their associated workflows (who does what)
  • a description of how RabbitMQ queues and exchanges are handled (the request queues, the response queues, the way the acknowledgements are managed)
  • a description of how objects are serialised to be passed on to the queues
  • a description of what queues feed to what server processes, and how the messages are "bundled" before being sent to the database
  • a list of "tunables" (number of queues, batch sizes, timeouts, etc.) to watch out for

I would suggest documenting the "lifecycle" of the client and server threads/processes, for instance by writing a summarised list of all the methods that are called in sequence, on initialization of the classes, with how the callbacks mesh together.

When this lifecycle doc is available (centrally), I think most of the "boilerplate" documentation that's been pulled from the pika example code can go away (with a shorter reference to the full lifecycle documentation).

Sep 24 2021, 5:04 PM
aeviso updated the diff for D6273: Remove remote storage based on `swh.core.api.RPCClient`.

rebase

Sep 24 2021, 4:57 PM
aeviso added a comment to D6273: Remove remote storage based on `swh.core.api.RPCClient`.
In D6273#164555, @olasd wrote:

I would suggest squashing D6272 and this together to land them at the same time.

I think you can remove types-werkzeug from requirements-test.txt. I'm not sure you can drop the http extra from swh.core dependencies in requirements-swh.txt, as the serialization/deserialization scaffolding is still in use in the rabbitmq backend.

Sep 24 2021, 4:56 PM
aeviso added a comment to D6334: Add `close` method to both `ProvenanceInterface` and `ProvenanceStorageInterface`.
In D6334#164535, @olasd wrote:

Thanks!

I still think that the postgres and mongodb close methods on ProvenanceStorage instances should be shutting down their respective database connections.

I remember that you didn't want to do that because currently the database connection is passed to the class opened already, which is at least consistent.

However, would it make sense to instead have the storage classes take connection parameters and handle connecting to the database themselves (and therefore having their close methods close the database connections)?

Sep 24 2021, 3:44 PM
aeviso updated the diff for D6273: Remove remote storage based on `swh.core.api.RPCClient`.

rebase

Sep 24 2021, 12:27 PM
aeviso updated the diff for D6339: Add support for remote backend on existing storage tests.

rebase

Sep 24 2021, 12:26 PM
aeviso updated the diff for D6165: Add new RabbitMQ-based client/server API.

rebase

Sep 24 2021, 12:25 PM
aeviso requested review of D6339: Add support for remote backend on existing storage tests.
Sep 24 2021, 12:25 PM
aeviso updated the diff for D6165: Add new RabbitMQ-based client/server API.
  • Add new RabbitMQ-based client/server API
  • Rework ProvenanceStorageRabbitMQWorker to handle connection loss
  • Improve server/client shoutdown logic and error handling
Sep 24 2021, 12:18 PM
aeviso updated the diff for D6334: Add `close` method to both `ProvenanceInterface` and `ProvenanceStorageInterface`.

rebase

Sep 24 2021, 11:42 AM
aeviso requested review of D6334: Add `close` method to both `ProvenanceInterface` and `ProvenanceStorageInterface`.
Sep 24 2021, 11:21 AM

Sep 23 2021

aeviso updated the diff for D6273: Remove remote storage based on `swh.core.api.RPCClient`.

rebase

Sep 23 2021, 5:06 PM
aeviso updated the diff for D6165: Add new RabbitMQ-based client/server API.

rebase

Sep 23 2021, 5:06 PM
aeviso updated the diff for D6273: Remove remote storage based on `swh.core.api.RPCClient`.

rebase

Sep 23 2021, 3:40 PM
aeviso updated the diff for D6165: Add new RabbitMQ-based client/server API.
  • Add support for remote backend on existing storage tests
Sep 23 2021, 3:40 PM
aeviso added a comment to D6165: Add new RabbitMQ-based client/server API.

It could be something like these:

You can start from your Hedgedoc document, remove the description of the current state, but keep the description of the new design and the rationale

Sep 23 2021, 2:18 PM
aeviso updated the diff for D6273: Remove remote storage based on `swh.core.api.RPCClient`.

rebase

Sep 23 2021, 2:17 PM
aeviso updated the diff for D6165: Add new RabbitMQ-based client/server API.

rebase

Sep 23 2021, 2:14 PM
aeviso updated the diff for D6272: Remove remote storage based on `swh.core.api.RPCClient`.

rebase

Sep 23 2021, 1:33 PM
aeviso added a comment to D6165: Add new RabbitMQ-based client/server API.

It's actually explained in the document:

Oh, sorry, I missed the hedgedoc link. I only looked in the repo and the diff's content.

Could you document the new design in this diff too, in the docs/ folder?

Sep 23 2021, 1:16 PM

Sep 22 2021

aeviso added a comment to D6165: Add new RabbitMQ-based client/server API.

What do you mean by assigning requests randomly?

The way gunicorn assigns requests to worker processes in the existing RPC server

How do you guarantee conflict resolution that way?

What conflict resolution? Sorry I didn't really follow swh-provenance's development, and I can't find this in the documentation

Sep 22 2021, 2:21 PM
aeviso updated the summary of D6165: Add new RabbitMQ-based client/server API.
Sep 22 2021, 11:05 AM
aeviso added a comment to D6165: Add new RabbitMQ-based client/server API.

What is the reason for this change? Is it more efficient assign requests to workers based on ID rather than randomly?

Sep 22 2021, 11:04 AM
aeviso added a comment to D6272: Remove remote storage based on `swh.core.api.RPCClient`.

Why the renaming? And it's an RPC API, not REST

Sep 22 2021, 10:54 AM
aeviso added a comment to D6273: Remove remote storage based on `swh.core.api.RPCClient`.

Why?

Sep 22 2021, 10:51 AM

Sep 20 2021

aeviso requested changes to D6291: WIP - Unit tests for the mongo backend.

I'm not really convinced about adding this test, it essentially recreates situations that are already tested in the test_provenance_storage test (but there it is done for all backends at once).
Also, performing direct queries to the mongodb object breaks the abstraction layer which means any future refactoring will require reimplementing this tests.
I rather design test to be independent of the actual implementation, so that they check that the class behave as expected from a semantic point of view.

Sep 20 2021, 10:31 AM

Sep 16 2021

aeviso closed D6266: Add StatsD support to the main algorithms of the module.
Sep 16 2021, 3:40 PM
aeviso committed rDPROVd0a11a149983: Add StatsD support to the main algorithms of the module (authored by aeviso).
Add StatsD support to the main algorithms of the module
Sep 16 2021, 3:40 PM
aeviso closed D6256: Add StatsD support to `ArchiveInterface` implementations.
Sep 16 2021, 3:40 PM
aeviso committed rDPROVa8009be206dc: Add StatsD support to `ArchiveInterface` implementations (authored by aeviso).
Add StatsD support to `ArchiveInterface` implementations
Sep 16 2021, 3:40 PM

Sep 15 2021

aeviso requested review of D6273: Remove remote storage based on `swh.core.api.RPCClient`.
Sep 15 2021, 4:30 PM
aeviso retitled D6165: Add new RabbitMQ-based client/server API from [WIP] Add new RabbitMQ-based client/server API to Add new RabbitMQ-based client/server API.
Sep 15 2021, 4:26 PM
aeviso added a reviewer for D6272: Remove remote storage based on `swh.core.api.RPCClient`: olasd.
Sep 15 2021, 4:25 PM
aeviso requested review of D6272: Remove remote storage based on `swh.core.api.RPCClient`.
Sep 15 2021, 4:23 PM
aeviso updated the diff for D6165: Add new RabbitMQ-based client/server API.
  • Add new RabbitMQ-based client/server API
  • Rework ProvenanceStorageRabbitMQWorker to handle connection loss
  • Improve server/client shoutdown logic
Sep 15 2021, 4:22 PM