Patents by Inventor Maneesh Sah

Maneesh Sah has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 10609130
    Abstract: Techniques for managing resources among clusters of computing devices in a computing system are described herein. In one embodiment, a method includes receiving, via a computer network, a resource reassignment message indicating that a server is reassigned from a first cluster to a second cluster and in response to the received resource reassignment message, establishing communications with the server reassigned from the first cluster to the second cluster via the computer network. The method further includes subsequent to establishing communications with the server via the computer network, assigning a compute load to the server reassigned from the first cluster to the second cluster without physically relocating the server from the first cluster to the second cluster.
    Type: Grant
    Filed: April 28, 2017
    Date of Patent: March 31, 2020
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Maneesh Sah, Rushi Surla, Arild Skjolsvold, Xinhua Ji, Jegan Devaraju
  • Publication number: 20200097195
    Abstract: A cloud service provider supports immutable data on its servers and the immutable data is movable across multiple access tiers, in which each access tier affects access performance and cost. In typical implementations, the immutable data may be blobs of unstructured data such as text or binary data, multimedia, among other data types, which are organized into containers that provide a directory for user interaction with the data. Policies are applied at the container-level which regulates user interactions with the containers and the container's blobs. A policy can, for example, prohibit modification and deletion of blobs within a container until a policy's set retention period expires. After expiration of the retention period, the container and that container's blobs may be deleted, but blob modification may still be prohibited. A user interface is configured to enable a user to move containers to other access tiers while the container maintains its policy.
    Type: Application
    Filed: September 25, 2018
    Publication date: March 26, 2020
    Inventors: Krisjan David FRITZ, Pratik BHALGAT, Dhivakar MANI, Maneesh SAH
  • Patent number: 10558565
    Abstract: Provided is a system and method for converting active data identified by a garbage collection operation into erasure coded fragments. In one example, the method may include identifying data blocks in use and interspersed among garbage data blocks not in use in cloud storage based on a garbage collection operation, extracting object data from the identified data blocks in use into a data container while leaving object data of the garbage data blocks not in use, and fragmenting a predetermined amount of extracted object data stored within the data container, the fragmenting comprising converting the predetermined amount of object data into a plurality of fragments including data fragments storing portions of the data and parity fragments for reconstructing the data, and writing the plurality of fragments in a distributed manner among a plurality of storage nodes.
    Type: Grant
    Filed: May 29, 2018
    Date of Patent: February 11, 2020
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Ioan Oltean, Rushi Srinivas Surla, Jegan Devaraju, Maneesh Sah, Julia Johnstone
  • Publication number: 20190394162
    Abstract: A service enables a command that refers to a file system object using a hierarchical namespace identifier to be executed against the file system object in a flat namespace. The service selectively distributes the command to one of a plurality of name resolution nodes based on a directory name included in the hierarchical namespace identifier. The identified node resolves the directory name to a flat namespace identifier that is used to execute the command against the flat namespace. After communicating with at least one storage node to resolve a directory name, each name resolution node stores a mapping of the directory name to the corresponding flat namespace identifier in a cache, so that subsequent resolutions of that directory name may be performed more efficiently. Cache entries may be invalidated when an operation occurs that impacts the relevant mapping and/or based on system considerations such as cache expiry.
    Type: Application
    Filed: June 22, 2018
    Publication date: December 26, 2019
    Inventors: Georgi M. Chalakov, Shane Kumar Mainali, Thomas Leo Marquardt, Zichen Sun, Maneesh Sah, Esfandiar Manii, Saurabh Pant, Dana Yulian Kaban, Saher B. Ahwal, Jun Chen, DA Zhou, Amit Pratap Singh, Junhua Gu, Shaoyu Zhang, Wei Chen, Jingchao Zhang, Quan Zhang, Arild Einar Skjoldsvold
  • Publication number: 20190392053
    Abstract: Methods, systems, and apparatuses are provided for a storage system that implements a hierarchical namespace service. A storage system includes a plurality of physical nodes and a plurality of sets of virtual nodes. Each set of virtual nodes is managed by a corresponding physical node. Each virtual node is configured to manage a respective set of directory blocks. Each directory block is a respective partition of a storage namespace and is managed by a corresponding single virtual node. Each virtual node maintains a directory block map. The directory block map maps file system object names in a hierarchical namespace to entity block identifiers in the flat namespace for entity blocks (files and folders) stored in directories corresponding to the managed set of directory blocks. Load balancing may be performed by moving virtual nodes between physical nodes, and by splitting directory blocks.
    Type: Application
    Filed: June 22, 2018
    Publication date: December 26, 2019
    Inventors: Georgi M. Chalakov, Shane Kumar Mainali, Thomas Leo Marquardt, Zichen Sun, Maneesh Sah, Esfandiar Manii, Saurabh Pant, Dana Yulian Kaban, Saher B. Ahwal, Jun Chen, Da Zhou, Amit Pratap Singh, Junhua Gu, Shaoyu Zhang, Wei Chen, Jingchao Zhang, Quan Zhang
  • Publication number: 20190394284
    Abstract: Techniques for implementing zone redundant computing services in distributed computing systems are described herein. In one embodiment, a computing device is configured to query a database in a first availability zone for a list of computing services corresponding to a user account and provided by servers in a second availability zone different than the first availability zone. The computing device can then selects one or more computing services provided by the servers in the second availability zone from the queried list of computing services and transmit an instruction to the servers in the second availability zone for performing the requested data operation.
    Type: Application
    Filed: June 21, 2018
    Publication date: December 26, 2019
    Inventors: Abhishek Singh Baghel, Girish Saini, Rushi Srinivas Surla, Ameya Bhagat, Ping-Yao Tseng, FNU Arunachaleshwar, Marcus Swenson, Andrew Edwards, Maneesh Sah, Aaron Ogus, Madhav Pandya
  • Publication number: 20190370353
    Abstract: Provides is a system and method for tracking changes in object storage and pushing notifications of the changes to client systems. In one example, the method may include detecting a change within a cloud storage based on an unstructured storage object stored in the cloud storage, identifying contextual attributes of the change from an updated state of a log file that stores information about the unstructured storage object, generating a notification that indicates the detected change and the identified contextual attributes of the detected change, and transmitting the generated notification message to one or more recipients associated with the unstructured storage object.
    Type: Application
    Filed: May 29, 2018
    Publication date: December 5, 2019
    Inventors: Sandesh DODDAMETI, Jegan DEVARAJU, Himanshu GUPTA, Maneesh SAH
  • Publication number: 20190370365
    Abstract: Methods, systems, and programs provide for executing distributed transactions in a cloud storage system with a hierarchical namespace. One method includes receiving a request with operations to be executed atomically. Further, nodes are identified for executing the operations, each node having a respective clock and having at least part of a transactions table for controlling updates to entities. Each clock is one of a loosely-synchronized, a strictly-synchronized clock, a logical, or a physical clock. Additionally, the nodes process the operations, which includes setting a commit timestamp (CS) to a value of the clock in the node if the node is a first node in the processing. One node coordinates the transactions, and may be one of the nodes executing transactions. If the clock in the node is less than a current value of the CS, the node waits for the clock to reach the current value of the CS and the CS is updated.
    Type: Application
    Filed: June 26, 2018
    Publication date: December 5, 2019
    Inventors: Georgi Chalakov, Shane Kumar Mainali, Thomas Leo Marquardt, Zichen Sun, Maneesh Sah, Wei Chen, Dana Yulian Kaban, Saher B. Ahwal, Shaoyu Zhang, Jingchao Zhang, Quan Zhang, Jun Chen, Esfandiar Manii, Saurabh Pant, Da Zhou, Amit Pratap Singh, Junhua Gu
  • Publication number: 20190370362
    Abstract: Methods, systems, and computer programs are presented for providing multi-protocol access to a cloud storage system. One method includes an operation for providing a first application programming interface (API), by a cloud storage system that stores data in blobs organized within containers, and a second API, where the APIs provide operations for a flat namespace (FN) and a hierarchical namespace (HN) for accessing data. FN is for accessing data based on account, container, and blob and the HN is for accessing data based on account, directory, and file. When a command is received for FN, the command is performed utilizing containers and blob identifiers. When the command is received for HN, the hierarchical namespace service is accessed to translate directories and files included to one or more blob identifiers. Further, a response is sent to the user device.
    Type: Application
    Filed: June 26, 2018
    Publication date: December 5, 2019
    Inventors: Shane Kumar Mainali, Thomas Leo Marquardt, Zichen Sun, Georgi Chalakov, Maneesh Sah, Esfandiar Manii, Saurabh Pant, Dana Yulian Kaban, Saher B. Ahwal, Jun Chen, Da Zhou, Amit Pratap Singh, Junhua Gu, Shaoyu Zhang, Wei Chen
  • Publication number: 20190370360
    Abstract: Methods, systems, and computer programs are presented for providing file system functions on a cloud storage system based on blob storage. A cloud storage system comprises storage clusters, and each storage cluster comprises a plurality of storage nodes (each including a partition layer that stores data in blobs organized within containers, and a stream layer for streaming blob data), a hierarchical namespace service for implementing file system functions on the data stored in the blobs and, a front end layer for processing user requests to access and manage data stored on the blobs. The file system functions include flat namespace functions and hierarchical namespace functions. Further, the front end layer accesses the partition layer to access the blobs based on addresses of blobs and accesses the hierarchical namespace service to identify the blobs.
    Type: Application
    Filed: June 26, 2018
    Publication date: December 5, 2019
    Inventors: Shane Kumar Mainali, Thomas Leo Marquardt, Zichen Sun, Georgi Chalakov, Maneesh Sah, Esfandiar Manii, Saurabh Pant, Dana Yulian Kaban, Saher B. Ahwal, Jun Chen, Da Zhou, Amit Pratap Singh, Junhua Gu, Shaoyu Zhang, Wei Chen
  • Publication number: 20190370170
    Abstract: Provided is a system and method for converting active data identified by a garbage collection operation into erasure coded fragments. In one example, the method may include identifying data blocks in use and interspersed among garbage data blocks not in use in cloud storage based on a garbage collection operation, extracting object data from the identified data blocks in use into a data container while leaving object data of the garbage data blocks not in use, and fragmenting a predetermined amount of extracted object data stored within the data container, the fragmenting comprising converting the predetermined amount of object data into a plurality of fragments including data fragments storing portions of the data and parity fragments for reconstructing the data, and writing the plurality of fragments in a distributed manner among a plurality of storage nodes.
    Type: Application
    Filed: May 29, 2018
    Publication date: December 5, 2019
    Inventors: Ioan OLTEAN, Rushi Srinivas SURLA, Jegan DEVARAJU, Maneesh SAH, Julia JOHNSTONE
  • Publication number: 20190364105
    Abstract: Live migration of partitions can be achieved using server-to-server communications to coordinate and control partition migration and rebuild a persistent state of the partition on a destination server while the partition is served on the source server. The live migration approach breaks the heavy dependency on the partition master by eliminating most of the server-to-master communications, delegating coordination and control of the migration to the source and destination servers. After the migration is initiated by the partition master, the source server sends in-memory cache entries indicating the persistent state of the partition to the destination server. Once transferred, the two servers can cooperate to complete the handover, which loads the partition on the destination server using the cache entries received from the source server. Once the source server offloads the partition, it can redirect traffic for the partition to the destination server by triggering an update to the partition map.
    Type: Application
    Filed: May 24, 2018
    Publication date: November 28, 2019
    Inventors: Yongfu LOU, Arild Einar SKJOLSVOLD, Qiuhan WANG, Donglin WEI, Maneesh SAH, Jegan DEVARAJU
  • Publication number: 20190354713
    Abstract: A system receives a request to store data at a first layer of servers in a cluster, configured to authenticate and authorize the request. The system compresses the data upon authenticating and authorizing the request and encrypts the compressed data at the first layer of servers when encryption is enabled. The system sends the request and the encrypted data to a second layer of servers in the cluster, configured to store data structures used to manage data storage in a third layer of servers in the cluster, and to distribute the request and the encrypted data to the third layer of servers using the data structures. The system stores the encrypted data in the third layer of servers. Encrypting the data at the first layer of servers reduces latency associated with transferring the data between the first, second, and third layers of servers.
    Type: Application
    Filed: August 1, 2019
    Publication date: November 21, 2019
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Rushi Srinivas SURLA, Shane Kumar MAINALI, Andrew EDWARDS, Maneesh SAH, Weiping ZHANG
  • Publication number: 20190347272
    Abstract: Methods, systems, apparatuses, and computer program products are provided that enable immediate access to data associated with a source blob. The foregoing is achieved by creating a copy-on-read blob based on the source blob and a link blob based on the copy-on-read blob for each virtual machine to be deployed. When creating the copy-on-read blob, the source blob is not copied. Instead, data from the source blob is copied to the copy-on-read blob upon request by a virtual machine. Subsequent requests for that data are retrieved from the copy-on-read blob. Each link blob stores write data provided by its corresponding virtual machine. When a virtual machine requests data, its corresponding link blob is checked for the data. If the data is not stored therein, the copy-on-read blob is checked for the data. If the copy-on-read blob does not store the data, the data is retrieved from the source blob.
    Type: Application
    Filed: June 12, 2019
    Publication date: November 14, 2019
    Inventors: Krishnan Varadarajan, Shane Mainali, Maneesh Sah, Manan Shah, Andrew Edwards, Ivan Brugiolo, Ju Wang, Ovais Khan, Sivakumar Kalva, Venkates P. Balakrishnan
  • Publication number: 20190340185
    Abstract: Data is replicated between primary and secondary storage systems using a data pulling process or a log shipping process. If data is to be replicated through the log shipping process, a transaction and its associated data get stored in a transaction log in the secondary storage system. Subsequently, when the transaction gets executed, actual data gets persisted from the transaction log to a data log in the secondary storage system. If the data is to be replicated through the data pulling process, the transaction is stored in the transaction log. However, the associated data for the transaction is retrieved from the first primary storage system and stored directly in the data log in the secondary system.
    Type: Application
    Filed: March 21, 2019
    Publication date: November 7, 2019
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Pradeep Seela, Pei Zhang, Yongfu Lou, Jegan Devaraju, Krishnan Varadarajan, Yi-Fan Tsai, Maneesh Sah, Kristopher T. Lange, Shane K. Mainali
  • Publication number: 20190339886
    Abstract: A distributed storage system includes multiple partitions. A block received for storage is striped across the partitions if it meets predetermined criteria. Multiple tables are maintained for indexing the blocks and the subblocks of blocks that are partitioned. The tables for the subblocks and the tables for the corresponding blocks of the subblocks are updated to include metadata for the subblocks for retrieving the subblocks in response to a request for a corresponding stored block.
    Type: Application
    Filed: February 19, 2019
    Publication date: November 7, 2019
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Jegan DEVARAJU, Pradeep Seela, Yi-Fan Tsai, Yongfu Lou, Kristopher T. Lange, Pei Zhang, Maneesh Sah, Shane K. Mainali
  • Publication number: 20190339873
    Abstract: A cloud storage system includes a processor and a non-transitory computer-readable medium to store blob table management instructions for execution by the processor. The blob table management instructions are configured to manage a plurality of storage requests for a blob stored in a storage stamp as snapshots in a blob table and selectively create a user snapshot of at least one of the snapshots in the blob table. When automatic snapshots are enabled, the blob table management instructions are configured to receive a first request to overwrite the blob. If the first request does not further specify a key of the one of the snapshots in the blob table, the blob table management instructions are configured to add a new snapshot to the blob table and maintain storage of a prior snapshot of the blob for a maximum period.
    Type: Application
    Filed: November 28, 2018
    Publication date: November 7, 2019
    Inventors: Shane Kumar MAINALI, Quan ZHANG, Kaviyarasan RAJENDRAN, Sundar P. SUBRAMANI, Andrew EDWARDS, Maneesh SAH, Krisjan David FRITZ, Michael HAUSS, Jianhua YAN, Michael ROBERSON
  • Patent number: 10387673
    Abstract: A system receives a request to store data at a first layer of servers in a cluster, configured to authenticate and authorize the request. The system compresses the data upon authenticating and authorizing the request and encrypts the compressed data at the first layer of servers when encryption is enabled. The system sends the request and the encrypted data to a second layer of servers in the cluster, configured to store data structures used to manage data storage in a third layer of servers in the cluster, and to distribute the request and the encrypted data to the third layer of servers using the data structures. The system stores the encrypted data in the third layer of servers. Encrypting the data at the first layer of servers reduces latency associated with transferring the data between the first, second, and third layers of servers.
    Type: Grant
    Filed: June 30, 2017
    Date of Patent: August 20, 2019
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Rushi Srinivas Surla, Shane Kumar Mainali, Andrew Edwards, Maneesh Sah, Weiping Zhang
  • Patent number: 10366104
    Abstract: Methods, systems, apparatuses, and computer program products are provided that enable immediate access to data associated with a source blob. The foregoing is achieved by creating a copy-on-read blob based on the source blob and a link blob based on the copy-on-read blob for each virtual machine to be deployed. When creating the copy-on-read blob, the source blob is not copied. Instead, data from the source blob is copied to the copy-on-read blob upon request by a virtual machine. Subsequent requests for that data are retrieved from the copy-on-read blob. Each link blob stores write data provided by its corresponding virtual machine. When a virtual machine requests data, its corresponding link blob is checked for the data. If the data is not stored therein, the copy-on-read blob is checked for the data. If the copy-on-read blob does not store the data, the data is retrieved from the source blob.
    Type: Grant
    Filed: June 21, 2017
    Date of Patent: July 30, 2019
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Krishnan Varadarajan, Shane Mainali, Maneesh Sah, Manan Shah, Andrew Edwards, Ivan Brugiolo, Ju Wang, Ovais Khan, Sivakumar Kalva, Venkates P. Balakrishnan
  • Publication number: 20190007206
    Abstract: A system receives data of one or more types from one or more sources having distinct identities for storing the data in a distributed storage system. The system stores metadata associated with storing the data in data structures in the distributed storage system. The system selects a portion of the data and a portion of the metadata associated with storing the data in the distributed storage system. The system compresses the selected portions of the data and the metadata, encrypts the compressed data and metadata using a single key or using a separate key for each data type, and stores the encrypted compressed data and metadata in the distributed storage system. The system also encrypts unencrypted metadata and associated data during defragmentation procedure.
    Type: Application
    Filed: June 30, 2017
    Publication date: January 3, 2019
    Inventors: Rushi Srinivas SURLA, Shane Kumar Mainali, Andrew Edwards, Maneesh Sah, Weiping Zhang