[tahoe-lafs-trac-stream] [Tahoe-LAFS] #3773: Merge adding lease with renewing lease (was: Merge adding lease with renewing lease (for immutables))

Tahoe-LAFS trac at tahoe-lafs.org
Wed Aug 18 15:27:15 UTC 2021


#3773: Merge adding lease with renewing lease
--------------------------+-----------------------------------
     Reporter:  itamarst  |      Owner:  itamarst
         Type:  task      |     Status:  new
     Priority:  normal    |  Milestone:  HTTP Storage Protocol
    Component:  unknown   |    Version:  n/a
   Resolution:            |   Keywords:
Launchpad Bug:            |
--------------------------+-----------------------------------
Description changed by itamarst:

Old description:

> 1. From a client perspective, the goal is just to have a lease, whether
> it's a new lease or renewing a lease is irrelevant; renewing is
> essentially an optimization detail on server side.
> 2. Cancelling leases is not actually supported.
> 3. The way lease renewal secrets are generated is likely to change in the
> switchover from foolscap to HTTP.
> 4. Internally, the server _already_ treats renewing a lease as
> potentially adding a new one if renewal fails.
>
> As such, the distinction between adding a lease and renewing a lease is
> unnecessary (presuming item 4 is actually correct!). We would like to
> simplify HTTP protocol by removing it, and we need to make sure server
> can gracefully handle clients switching their renewal secret.
>
> Therefore, we should merge the two into a single operation:
>
> 1. Validate item 4 above, since it's critical requirement for the rest of
> this.
> 2. In Foolscap client, switch to only using renewal code path.
> 3. Make sure server creating new lease when renewal fails is well tested,
> so users don't lose data.
> 4. On server-side, leave new lease Foolscap endpoint in place for
> backwards compat.
> 5. In new GBS HTTP protocol spec, switch to a single end point for lease
> creation/renewal, and remove all references to lease cancellation secret.

New description:

 1. From a client perspective, the goal is just to have a lease, whether
 it's a new lease or renewing a lease is irrelevant; renewing is
 essentially an optimization detail on server side.
 2. Cancelling leases is not actually supported.
 3. The way lease renewal secrets are generated is likely to change in the
 switchover from foolscap to HTTP.
 4. Internally, the server _already_ treats renewing a lease as potentially
 adding a new one if renewal fails.

 As such, the distinction between adding a lease and renewing a lease is
 unnecessary (presuming item 4 is actually correct!). We would like to
 simplify HTTP protocol by removing it, and we need to make sure server can
 gracefully handle clients switching their renewal secret.

 Therefore, we should merge the two into a single operation:

 1. Validate item 4 above, since it's critical requirement for the rest of
 this.
 2. In Foolscap client, switch to only using renewal code path.
 3. Make sure server creating new lease when renewal fails is well tested,
 so users don't lose data.
 4. On server-side, leave new lease Foolscap endpoint in place for
 backwards compat.
 5. In new GBS HTTP protocol spec, switch to a single end point for lease
 creation/renewal, and remove all references to lease cancellation secret.
 6. Clients should continue to try to pass in the same renewal secret, the
 way they do now.

--

--
Ticket URL: <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3773#comment:3>
Tahoe-LAFS <https://Tahoe-LAFS.org>
secure decentralized storage


More information about the tahoe-lafs-trac-stream mailing list