US2024028324A1PendingUtilityA1
Software update distribution within a multi-tenant architecture
Est. expiryJun 28, 2041(~14.9 yrs left)· nominal 20-yr term from priority
G06F 8/65G06F 8/71G06F 11/3419G06F 11/3006G06F 11/0709G06F 11/0751G06F 2201/865
61
PatentIndex Score
0
Cited by
0
References
0
Claims
Abstract
A multi-tenant system provides software-updating functionality that selectively updates tenant systems according to a number of different factors. In some embodiments, the factors include evaluation of “health metrics” that quantify how well tenant systems are functioning after an update of software components to the latest version, policies specified by either the tenants or the multi-tenant system (or both), and/or “kill switches” specified by the multi-tenant system that prevent updating, as some examples.
Claims
exact text as granted — not AI-modified1 . (canceled)
2 . A computer-implemented method comprising:
receiving, by a server device associated with a multi-tenant system and from a plurality of client devices, a plurality of poll messages requesting an updated version of an integration component; for each client device of the plurality of client devices:
determining, based at least in part on comparing a current time to a time of a last update of the integration component at the client device or a time of an estimated next release of the integration component, an amount of time for the client device to delay before sending another poll message; and
sending, based at least in part on the amount of time for the client device to delay before sending another poll message, a message comprising an indication of a next time for the client device to poll for the updated version of the integration component; and
selectively providing, to one or more client devices of the plurality of client devices and based at least in part on the amount of time for the client device to delay, the updated version of the integration component.
3 . The computer-implemented method of claim 2 , wherein selectively providing the updated version of the integration component to the one or more client devices comprises:
determining, for each client device of the plurality of client devices and based at least in part on the amount of time for the client device to delay before sending another poll message, whether to provide the updated version of the integration component to the client device; and identifying, based at least in part on the determination of whether to provide the updated version of the integration component to the client device, the one or more client devices to selectively provide the updated version of the integration component.
4 . The computer-implemented method of claim 2 , further comprising:
receiving, from a device associated with a first tenant of the multi-tenant system, a kill switch instruction, wherein selectively providing the updated version of the integration component to the one or more client devices comprises:
excluding, from the one or more client devices, client devices associated with the first tenant; and
including, in the one or more client devices, client device associated with a tenant of the multi-tenant system different from the first tenant.
5 . The computer-implemented method of claim 2 , further comprising:
causing, based at least in part on determining that the updated version of the integration component functions improperly, the one or more client devices to uninstall the updated version of the integration component and to reinstall a prior version of the integration component.
6 . The computer-implemented method of claim 2 , further comprising:
obtaining, from a subset of the one or more client devices and after the updated version of the integration component is provided to the one or more client devices, health metrics associated with the subset of the one or more client devices; determining, based at least in part on the health metrics, whether the updated version of the integration component functions improperly for the subset of the one or more client devices; and refraining, based at least in part on determining that the updated version of the integration component functions improperly for the subset of the one or more client devices, from providing the updated version of the integration component to one or more other client devices different from the one or more client devices.
7 . The computer-implemented method of claim 6 , wherein the health metrics comprise one or more of: a quantity of successful logins to the multi-tenant system via the updated version of the integration component, indicators of successful operations, indicators of failed operations, a quantity of calls to the multi-tenant system, or an amount of time to perform operations.
8 . The computer-implemented method of claim 2 , wherein the message comprising the indication of the next time for the client device to poll for the updated version of the integration component comprises a request for the client device to adjust a polling rate of the client device.
9 . The computer-implemented method of claim 8 , wherein the request for the client device to adjust the polling rate of the client device comprises a request to adjust to a first polling rate for a period of time, and after an expiration of the period of time to adjust to a second polling rate different from the first polling rate.
10 . A server device associated with a multi-tenant system, the server device comprising:
one or more processors; and memory storing instructions that, when executed by the one or more processors individually or collectively, cause the server device to:
receive, from a plurality of client devices, a plurality of poll messages requesting an updated version of an integration component;
for each client device of the plurality of client devices:
determine, based at least in part on comparing a current time to a time of a last update of the integration component at the client device or a time of an estimated next release of the integration component, an amount of time for the client device to delay before sending another poll message; and
send, based at least in part on the amount of time for the client device to delay before sending another poll message, an indication of a next time for the client device to poll for the updated version of the integration component; and
selectively provide, to one or more client devices of the plurality of client devices and based at least in part on the amount of time for the client device to delay, the updated version of the integration component.
11 . The server device of claim 10 , wherein, to selectively provide the updated version of the integration component to the one or more client devices, the instructions, when executed by the one or more processors individually or collectively, cause the server device to:
determine, for each client device of the plurality of client devices and based at least in part on the amount of time for the client device to delay before sending another poll message, whether to provide the updated version of the integration component to the client device; and identify, based at least in part on the determination of whether to provide the updated version of the integration component to the client device, the one or more client devices to selectively provide the updated version of the integration component.
12 . The server device of claim 10 , wherein the instructions, when executed by the one or more processors individually or collectively, further cause the server device to receive, from a device associated with a first tenant of the multi-tenant system, a kill switch instruction, and
wherein, to selectively provide the updated version of the integration component to the one or more client devices, the instructions, when executed by the one or more processors individually or collectively, cause the server device to:
exclude, from the one or more client devices, client devices associated with the first tenant; and
include, in the one or more client devices, client device associated with a tenant of the multi-tenant system different from the first tenant.
13 . The server device of claim 10 , wherein the instructions, when executed by the one or more processors individually or collectively, further cause the server device to:
cause, based at least in part on a determination that the updated version of the integration component functions improperly, the one or more client devices to uninstall the updated version of the integration component and to reinstall a prior version of the integration component.
14 . The server device of claim 10 , wherein the instructions, when executed by the one or more processors individually or collectively, further cause the server device to:
obtain, from a subset of the one or more client devices and after the updated version of the integration component is provided to the one or more client devices, health metrics associated with the subset of the one or more client devices; determine, based at least in part on the health metrics, whether the updated version of the integration component functions improperly for the subset of the one or more client devices; and refrain, based at least in part on a determination that the updated version of the integration component functions improperly for the subset of the one or more client devices, from providing the updated version of the integration component to one or more other client devices different from the one or more client devices.
15 . The server device of claim 14 , wherein the health metrics comprise one or more of: a quantity of successful logins to the multi-tenant system via the updated version of the integration component, indicators of successful operations, indicators of failed operations, a quantity of calls to the multi-tenant system, or an amount of time to perform operations.
16 . The server device of claim 10 , wherein the message comprising the indication of the next time for the client device to poll for the updated version of the integration component comprises a request for the client device to adjust a polling rate of the client device to a first polling rate for a period of time, and after an expiration of the period of time to adjust to the polling rate to a second polling rate different from the first polling rate.
17 . A non-transitory, computer-readable medium storing instructions that, when executed by one or more processors individually or collectively, cause a server device associated with a multi-tenant system to:
receive, from a plurality of client devices, a plurality of poll messages requesting an updated version of an integration component; for each client device of the plurality of client devices:
determine, based at least in part on comparing a current time to a time of a last update of the integration component at the client device or a time of an estimated next release of the integration component, an amount of time for the client device to delay before sending another poll message; and
send, based at least in part on the amount of time for the client device to delay before sending another poll message, an indication of a next time for the client device to poll for the updated version of the integration component; and
selectively provide, to one or more client devices of the plurality of client devices and based at least in part on the amount of time for the client device to delay, the updated version of the integration component.
18 . The non-transitory, computer-readable medium of claim 17 , wherein, to selectively provide the updated version of the integration component to the one or more client devices, the instructions, when executed by the one or more processors individually or collectively, cause the server device to:
determine, for each client device of the plurality of client devices and based at least in part on the amount of time for the client device to delay before sending another poll message, whether to provide the updated version of the integration component to the client device; and identify, based at least in part on the determination of whether to provide the updated version of the integration component to the client device, the one or more client devices to selectively provide the updated version of the integration component.
19 . The non-transitory, computer-readable medium of claim 17 , wherein the instructions, when executed by the one or more processors individually or collectively, further cause the server device to receive, from a device associated with a first tenant of the multi-tenant system, a kill switch instruction, and
wherein, to selectively provide the updated version of the integration component to the one or more client devices, the instructions, when executed by the one or more processors individually or collectively, cause the server device to:
exclude, from the one or more client devices, client devices associated with the first tenant; and
include, in the one or more client devices, client device associated with a tenant of the multi-tenant system different from the first tenant.
20 . The non-transitory, computer-readable medium of claim 17 , wherein the instructions, when executed by the one or more processors individually or collectively, further cause the server device to:
obtain, from a subset of the one or more client devices and after the updated version of the integration component is provided to the one or more client devices, health metrics associated with the subset of the one or more client devices; determine, based at least in part on the health metrics, whether the updated version of the integration component functions improperly for the subset of the one or more client devices; and refrain, based at least in part on a determination that the updated version of the integration component functions improperly for the subset of the one or more client devices, from providing the updated version of the integration component to one or more other client devices different from the one or more client devices.
21 . The non-transitory, computer-readable medium of claim 17 , wherein the message comprising the indication of the next time for the client device to poll for the updated version of the integration component comprises a request for the client device to adjust a polling rate of the client device to a first polling rate for a period of time, and after an expiration of the period of time to adjust to the polling rate to a second polling rate different from the first polling rate.Join the waitlist — get patent alerts
Track US2024028324A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.