IP Library Granted Patent US 12670282
Granted Patent B2
US 12670282 · App. 18/649,050 · Granted Jun 30, 2026

Method and system of storing ACLS in a file storage system using a reference

Inventors: Mohamed Azmil Macksood (Oslo, NO); Pedro Miguel Lima De Jesus Vieira (Amora, PT); Gjorgji Rankovski (Oslo, NO)
Assignee: Microsoft Technology Licensing, LLC
G06F21/6218
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 12670282
App. No.
18/649,050
Granted
Jun 30, 2026
Kind
B2
Abstract

The Abstract of the Disclosure is provided to allow the reader to quickly identify the nature of the technical disclosure. It is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims. In addition, in the foregoing Detailed Description, it can be seen that various features are grouped together in various examples for the purpose of streamlining the disclosure. This method of disclosure is not to be interpreted as reflecting an intention that any claim requires more features than the claim expressly recites. Rather, as the following claims reflect, inventive subject matter lies in less than all features of a single disclosed example. Thus, the following claims are hereby incorporated into the Detailed Description, with each claim standing on its own as a separately claimed subject matter.

Claims (53)

1 . An Access Control List (ACL) management system for reducing an amount of memory space required to store a plurality of files in a file storage system, the ACL management system comprising:

a processor; and

a memory in communication with the processor, the memory comprising executable instructions that, when executed by the processor alone or in combination with other elements, cause the ACL management system to perform functions of:

analyzing an ACL in a subset of the plurality of files having an ACL entry containing the ACL to determine whether the ACL meets one or more requirements to be normalized; and

upon determining that the ACL meets the one or more requirements to be normalized:

generating an ACL key for the ACL, the ACL key being an identifiable integer reference to the ACL,

storing the ACL key and the ACL in an ACL data structure,

transmitting the ACL key to the file storage system for storage in an ACL hint file, and

replacing the ACL entry to be normalized in the subset of the plurality of files with the ACL key, wherein the ACL management system retrieves the ACL for the subset of the plurality of files using the ACL hint file.

2 . The ACL management system of claim 1 , wherein the ACL key is a hash of content of the ACL.

3 . The ACL management system of claim 1 , wherein the ACL data structure is external to the file storage system.

4 . The ACL management system of claim 1 , wherein determining that the ACL meets the one or more requirements includes determining at least one of the ACL being used by at least a predetermined number of files, the ACL having a size that meets a threshold size requirement or the ACL differing from an exact ACL that is used by at least the predetermined number of files by a given variation.

5 . The ACL management system of claim 1 , wherein determining that the ACL meets the one or more requirements includes determining that the ACL is a default ACL or a variation of the default ACL.

6 . The ACL management system of claim 1 , wherein the ACL data structure is stored in a data store of the ACL management system.

7 . The ACL management system of claim 1 , wherein the instructions further cause the ACL management system to perform functions of:

receiving a request to access a file stored in the file storage system, the request including the ACL key for the file;

looking up the ACL key in the ACL data structure to locate the ACL;

evaluating the request to access the file against the ACL to determine if access to the file is allowed; and

transmitting results of the evaluation to the file storage system, a result either granting or denying the access to the file.

8 . The ACL management system of claim 1 , wherein the one or more requirements are configurable.

9 . The ACL management system of claim 1 , wherein analyzing the ACL occurs based on at least one of a time-based schedule or event-based determination.

10 . A method for reducing an amount of memory space required for storing a plurality of files in a file storage system, the method comprised of:

analyzing an access control list (ACL) in a subset of the plurality of files having an ACL entry containing the ACL in the file storage system, via an ACL management system, to determine whether the ACL meets one or more requirements to be normalized, the ACL management system being external to the file storage system; and

upon determining that the ACL meets the one or more requirements to be normalized:

generating an ACL key for the ACL, the ACL key referencing the ACL,

storing the ACL key and the ACL in an ACL data structure that is external to the file storage system,

transmitting the ACL key to the file storage system for storage in an ACL hint file, and

replacing the ACL entry to be normalized in the subset of the plurality of files with the ACL key, wherein the ACL management system retrieves the ACL for the subset of the plurality of files using the ACL hint file.

11 . The method of claim 10 , further comprising removing the ACL from the file storage system.

12 . The method of claim 10 , further comprising:

receiving a request to access a resource stored in the file storage system, the request including the ACL key for the resource;

looking up the ACL key in the ACL data structure to locate the ACL;

evaluating the request to access the resource against the ACL to determine if access to the resource is allowed; and

transmitting results of the evaluation to the file storage system, a result either granting or denying the access to the resource.

13 . The method of claim 10 , wherein the ACL key is a hash of content of the ACL.

14 . The method of claim 10 , wherein determining that the ACL meets the one or more requirements includes determining at least one of the ACL being used by at least a predetermined number of files, the ACL having a size that meets a threshold size or the ACL differing from an exact ACL that is used by at least the predetermined number of files by a given variation.

15 . The method of claim 10 , wherein the ACL data structure is a table that includes a row for each normalized ACL that includes the ACL key and its associated ACL.

16 . The method of claim 10 , wherein the one or more requirements are configurable.

17 . A file storage system for reducing an amount of memory space required to store a plurality of files, the file storage system comprising:

a processor; and

a memory in communication with the processor, the memory comprising executable instructions that, when executed by the processor alone or in combination with other elements, cause the file storage system to perform functions of:

receiving a request to store a file having an ACL entry in the file storage system;

generating an Access Control List (ACL) for the file based on the request;

transmitting the ACL to an ACL management system for analysis to determine if the ACL meets one or more requirements to be normalized:

upon determining that the ACL meets the one or more requirements to be normalized,

generating an ACL key for the ACL, the ACL key being an identifiable integer reference to the ACL,

storing the ACL key and the ACL in an ACL data structure,

transmitting the ACL key to the file storage system for storage in an ACL hint file, and

replacing the ACL entry to be normalized in the file with the ACL key, wherein the ACL management system retrieves the ACL for the file using the ACL hint file.

18 . The file storage system of claim 17 , wherein the executable instructions when executed by the processor alone or in combination with other elements cause the file storage system to perform functions of:

receiving an indication from the ACL management system that a generated ACL is a variation of the ACL stored by the ACL management system, the ACL key referencing a stored ACL;

determining a difference between the generated ACL and the stored ACL; and

storing the difference between the generated ACL and the stored ACL along with the ACL key.