#3901 new task

End-to-end support for new HTTP storage protocol: tracking issue

Reported by: itamarst Owned by:
Priority: normal Milestone: HTTP Storage Protocol
Component: unknown Version: n/a
Keywords: Cc:
Launchpad Bug:

Description (last modified by itamarst)

Each of these will be zero or more additional tickets:

  1. #3902: Storage nodes can be started with HTTP protocol (It is maybe possible but not worth doing to do this via storage plugin.)
  2. #3912: Storage nodes send the NURL to an introducer, in addition to the fURL for legacy Foolscap protocol. This is sent as an announcement upgrade so it supercedes existing announcement.
  3. #3783: The introducer sends NURLs to storage clients. INVARIANT: old storage clients can safely get and ignore NURLs. If this is not the case, some conditional logic needs to be introduced so old clients don't get NURLs. It seems like this will just happen automatically, and moreover the announcement is just a dictionary with random keys, so hopefully will Just Work once #3912 is done.
  4. DONE. The storage client understands NURLs, and use HTTP protocol instead of Foolscap when possible. See design doc for further discussion (QUESTION: is it actually possible to say "this furl and nurl are for the same server"? technically, maybe but not necessary given announcement upgrades).
  5. Currently the storage client caches per-server FURLs indefinitely. New clients should check with introducer if a NURL (HTTP) has replaced a FURL (Foolscap) and update appropriately.
  6. The client may only have FURL, and not have introducer. For that situation the Foolscap protocol should grow a away for clients to get new URLs (remote_get_version?)
  7. Update the documentation appropriately.

Change History (11)

comment:1 Changed at 2022-06-08T18:16:28Z by itamarst

  • Description modified (diff)

comment:2 Changed at 2022-06-08T18:21:40Z by itamarst

  • Description modified (diff)

comment:3 Changed at 2022-06-08T19:06:04Z by itamarst

  • Description modified (diff)

comment:4 Changed at 2022-06-08T19:06:28Z by itamarst

  • Description modified (diff)

comment:5 Changed at 2022-06-10T13:52:36Z by itamarst

  • Description modified (diff)

comment:6 Changed at 2022-06-10T14:01:48Z by itamarst

  • Description modified (diff)

comment:7 Changed at 2022-07-20T18:55:06Z by itamarst

Note that there are references in code to this ticket, so audit code for those before closing.

comment:8 Changed at 2022-08-08T14:57:23Z by itamarst

  • Description modified (diff)

comment:9 Changed at 2022-08-08T15:03:34Z by itamarst

  • Description modified (diff)

comment:10 Changed at 2022-08-11T18:29:39Z by itamarst

  • Description modified (diff)

comment:11 Changed at 2023-01-23T14:12:30Z by itamarst

  • Description modified (diff)
Note: See TracTickets for help on using tickets.