IP Library Granted Patent US 12,554,474
Granted Patent B1
US 12,554,474 · App. 18/420,733 · Granted Feb 17, 2026

Probabilistic code rollout with reproducible results

Inventors: Sean Elliott Roberts (Mountain View, CA); Ran Simha Biron (Santa Clara, CA); Shishir Sharma (Mountain View, CA)
Assignee: Egnyte, Inc.
G06F8/60
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,554,474
App. No.
18/420,733
Granted
Feb 17, 2026
Kind
B1
Abstract

Systems and methods for progressively releasing features used in conjunction with a service in a computing environment are disclosed. The computing environment includes users and resources. A method includes providing access to the service to the plurality of users and providing a particular feature to be used in conjunction with the service. The method can additionally include maintaining a directory of the entities of the computing environment. The entities can include the users and/or the resources. The directory of the entities organizes the entities into groups. The example methods can also include assigning an access value associated with the particular feature to a particular group of the groups. The access value can indicates an assigned probability that the feature will be enabled with respect to a particular entity included in the particular group. The assigned probability can advantageously be greater than zero and less than one.

Claims (81)

1 . A method for progressively releasing features used in conjunction with a service in a computing environment including a plurality of users and a plurality of resources, said method comprising:

providing access to said service to said plurality of users;

providing a particular feature to be used in conjunction with said service;

maintaining a directory of at least some entities of said computing environment, said entities including said users of said plurality of users and said resources of said plurality of resources, said directory of said entities organizing said entities into groups;

assigning an access value associated with said particular feature to a particular group of said groups, said access value indicative of an assigned probability that said feature will be enabled with respect to a particular entity included in said particular group, said assigned probability being greater than zero and less than one;

responsive to said particular entity interacting with said service, accessing said directory to determine said access value assigned to said particular group;

determining, based on said access value associated with said particular feature, whether said particular feature is to be enabled with respect to said particular entity; and

based on a result of said determining step, enabling said particular feature with respect to said particular entity.

2 . The method of claim 1 , wherein:

said access value is a number; and

said step of determining whether said particular feature is to be enabled with respect to said particular entity includes performing a calculation utilizing said number as an input, a result of said calculation being a Boolean value; and further comprising

enabling said particular feature with respect to said particular entity if said Boolean value is equal to a first predetermined value; and

disabling said particular feature with respect to said particular entity if said Boolean value is equal to a second predetermined value different from said first predetermined value.

3 . The method of claim 2 , wherein said step of performing said calculation utilizing said number as said input includes:

calculating a hash value utilizing information associated with said particular group and a hash function;

performing a modulo operation on said hash value using a predetermined maximum probability value as the modulus to produce a remainder value, said maximum probability value being a predetermined maximum possible value of said access value; and

determining whether said remainder value is greater than, less than, or equal to said access value.

4 . The method of claim 3 , wherein said step of performing said calculation utilizing said integer as said input further includes:

assigning said first predetermined value to said Boolean value if said remainder value is less than said access value; and

assigning said second predetermined value to said Boolean value if said remainder value is greater than or equal to said access value.

5 . The method of claim 4 , wherein said information associated with said particular group includes a string uniquely indicative of said particular group.

6 . The method of claim 3 , wherein said step of calculating said hash value includes calculating said hash value utilizing at least a first seed string in combination with said information associated with said particular group, said first seed string being associated with said particular feature and being independent of said particular group and said particular user.

7 . The method of claim 6 , wherein said step of performing said calculation utilizing said number as said input produces a different Boolean value when utilizing a second seed string different from said first seed string.

8 . The method of claim 6 , further comprising:

determining whether to enable said particular feature with respect to a second entity included in a second group using information associated with said second group;

enabling said particular feature with respect to said particular entity; and

disabling said particular feature with respect to said second entity; and wherein

said access value corresponding to said particular entity is the same as a second access value corresponding to said second entity; and

said information associated with said particular group is different than said information associated with said second group.

9 . The method of claim 6 , further comprising:

determining whether to enable said particular feature with respect to a second entity, said second entity included in said particular group;

assigning a second access value associated with said particular feature to said second entity, said second access value indicative of a second assigned probability that said particular feature will be enabled with respect to said second entity; and wherein

said second access value is an entity-level access value assigned to said second entity in said directory of said entities, said entity-level access value being a second number;

said step of determining whether to enable said particular feature with respect to said second entity includes performing a second calculation utilizing said second number as an input, a result of said second calculation being a second Boolean value;

said step of determining whether to enable said particular feature with respect to said second entity includes enabling said particular feature with respect to said second entity if said second Boolean value is equal to a first predetermined value and disabling access to said particular feature with respect to said second entity if said second Boolean value is equal to a second predetermined value different from said first predetermined value; and

said step of determining whether to enable said particular feature with respect to said second entity includes calculating a second hash value utilizing said hash function and information associated with said second entity, said information associated with said second entity being different from said information associated with said particular group.

10 . The method of claim 1 , wherein:

said particular entity is a particular user; and

said particular group is a group including said particular user and other users.

11 . A system for progressively releasing features used in conjunction with a service in a computing environment including a plurality of users and a plurality of resources, said system comprising:

a hardware processor configured to execute code, said code including at least a set of native instructions for causing said hardware processor to perform a corresponding set of operations when executed by said hardware processor; and

memory for storing data and said code, said data and said code including

a particular feature of said software service,

a directory of at least some entities of said computing environment, said entities including said users of said plurality of users and said resources of said plurality of resources, said directory of said entities organizing said entities into groups,

a first subset of said set of native instructions configured to provide access to said service to said plurality of users,

a second subset of said set of native instructions configured to receive an access value associated with said particular feature and associate said access value with a particular group of said groups, said access value indicative of an assigned probability that said feature will be enabled with respect to a particular entity included in said particular group, said assigned probability being greater than zero and less than one;

a third subset of said set of native instructions configured to, responsive to said particular entity interacting with said service, access said directory to determine said access value assigned to said particular group,

a fourth subset of said set of native instructions configured to determine, based on said access value associated with said particular feature, whether said particular feature is to be enabled with respect to said particular entity, and

a fifth subset of said set of native instructions configured to enable said particular feature with respect to said particular entity if it is determined that said particular feature should be enabled with respect to said particular entity.

12 . The system of claim 11 , wherein:

said access value is an number;

said fourth subset of said set of native instructions is configured to perform a calculation utilizing said number as an input, a result of said calculation being a Boolean value;

said fifth subset of said set of native instructions configured to enable said particular feature with respect to said particular entity if said Boolean value is equal to a first predetermined value; and

said data and said code include a sixth subset of said set of native instructions configured to disable said particular feature with respect to said particular entity if said Boolean value is equal to a second predetermined value different from said first predetermined value.

13 . The system of claim 12 , wherein said fourth subset of said set of native instructions is configured to:

calculate a hash value utilizing information associated with said particular group and a hash function;

perform a modulo operation on said hash value using a predetermined maximum probability value as the modulus to produce a remainder value, said maximum probability value being a predetermined maximum possible value of said access value; and

determine whether said remainder value is greater than, less than, or equal to said access value.

14 . The system of claim 13 , wherein said fourth subset of said set of native instructions is configured to:

assign said first predetermined value to said Boolean value if said remainder value is less than said access value; and

assign said second predetermined value to said Boolean value if said remainder value is greater than or equal to said access value.

15 . The system of claim 14 , wherein said information associated with said particular group includes a string uniquely indicative of said particular group.

16 . The system of claim 13 , wherein said fourth subset of said set of native instructions is configured to calculate said hash value utilizing at least a first seed string in combination with said information associated with said particular group, said first seed string being associated with said particular feature and being independent of said particular group and said particular user.

17 . The system of claim 16 , wherein said fourth subset of said set of native instructions is configured to produce a different Boolean value when utilizing a second seed string different from said first seed string.

18 . The system of claim 16 , wherein:

said fourth subset of said set of native instructions is configured to determine whether to enable said particular feature with respect to a second entity included in a second group using information associated with said second group;

said fifth subset of said set of native instructions is configured to enable said particular feature with respect to said particular entity;

said sixth subset of said set of native instructions is configured to disable said particular feature with respect to said second entity;

said access value corresponding to said particular entity is the same as a second access value corresponding to said second entity; and

said information associated with said particular group is different than said information associated with said second group.

19 . The system of claim 16 , wherein:

said fourth subset of said set of native instructions is configured to determine whether to enable said particular feature with respect to a second entity;

said second subset of said set of native instructions is configured to receive a second access value associated with said particular feature and to associate said second access value with said second entity, said second access value being indicative of a second assigned probability that said particular feature will be enabled with respect to said second entity;

said second access value is an entity-level access value assigned to said second entity in said directory of said entities, said entity-level access value being a second number;

said fourth subset of said set of native instructions is configured to perform a second calculation utilizing said second number as an input, a result of said second calculation being a second Boolean value;

said fifth subset of said set of native instructions is configured to enable said particular feature with respect to said second entity if said second Boolean value is equal to a first predetermined value;

said sixth subset of said set of native instructions is configured to disable access to said particular feature with respect to said second entity if said second Boolean value is equal to a second predetermined value different from said first predetermined value; and

said fourth subset of said set of native instructions is configured to calculate a second hash value utilizing said hash function and information associated with said second entity, said information associated with said second entity being different from said information associated with said particular group.

20 . The system of claim 11 , wherein:

said particular entity is a particular user; and

said particular group is a group including said particular user and other users.

Assignments (2)
SECURITY INTEREST Recorded Mar 25, 2025
From: EGNYTE, INC.
To: TCG SENIOR FUNDING, L.L.C., AS COLLATERAL AGENT
Reel/Frame 070614/0319 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 18, 2024
From: ROBERTS, SEAN ELLIOTT; BIRON, RAN SIMHA; SHARMA, SHISHIR
To: EGNYTE, INC.
Reel/Frame 067155/0580 →
Continuity (1)
Provisional Application 63440599 · Jan 23, 2023
References Cited (2)
US 11366832B2 · Woodmansee · 2022 [cited by examiner]
US 11651251B2 · Chu · 2023 [cited by examiner]