Patents by Inventor Vinod R. Shankar

Vinod R. Shankar 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: 11620136
    Abstract: Data is identified that defines a known good state for a current operating system. The identified data includes read-only sets that are not updated during operation of the computing device, and modifiable sets that can be updated during operation of the computing device. The read-only sets are captured on an opportunistic basis and the modifiable sets are captured when the computing device is to be rebooted. A first and second virtual disk are allocated as snapshots of the identified data. The first virtual disk is updated to generate an updated state. The updates to the first virtual disk are isolated from the second virtual disk. The second virtual disk is maintained as an immutable snapshot of the identified data. In response to a failed reboot with the updated state, the computing device reverts to the known good state using the snapshot of the identified data.
    Type: Grant
    Filed: May 13, 2019
    Date of Patent: April 4, 2023
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Vinod R. Shankar, Taylor Alan Hope, Karan Mehra, Emanuel Paleologu
  • Publication number: 20230089663
    Abstract: A reduced throughput maintenance mode for adaptively managing input/output (I/O) operations within a resilient group of storage nodes. A first storage node in a resilient group of storage nodes is classified as operating in a normal throughput mode, and a second storage node in the resilient group is classified as operating in a reduced throughput mode. While the second node is classified as operating in the reduced throughput mode, read and write I/O operations are queued for the resilient group. The read I/O operation is prioritized for assignment to the first node, so as to reduce I/O load on the second node while it operates in the reduced throughput mode. The write I/O operation is queued to the second node, so as to maintain synchronization of the second node with the resilient group while it operates in the reduced throughput mode.
    Type: Application
    Filed: March 15, 2021
    Publication date: March 23, 2023
    Inventors: Vinod R. SHANKAR, Scott Chao-Chueh LEE, Bryan Stephen MATTHEW
  • Patent number: 11372557
    Abstract: A data storage array is configured for m-way resiliency across a first plurality of storage nodes. The m-way resiliency causes the data storage array to direct each top-level write to at least m storage nodes within the first plurality, for committing data to a corresponding capacity region allocated on each storage node to which each write operation is directed. Based on the data storage array being configured for m-way resiliency, an extra-resilient cache is allocated across a second plurality of storage nodes comprising at least s storage nodes (where s>m), including allocating a corresponding cache region on each of the second plurality for use by the extra-resilient cache. Based on determining that a particular top-level write has not been acknowledged by at least n of the first plurality of storage nodes (where n m), the particular top-level write is redirected to the extra-resilient cache.
    Type: Grant
    Filed: November 20, 2020
    Date of Patent: June 28, 2022
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Taylor Alan Hope, Vinod R Shankar, Justin Sing Tong Cheung
  • Publication number: 20220164113
    Abstract: A data storage array is configured for m-way resiliency across a first plurality of storage nodes. The m-way resiliency causes the data storage array to direct each top-level write to at least m storage nodes within the first plurality, for committing data to a corresponding capacity region allocated on each storage node to which each write operation is directed. Based on the data storage array being configured for m-way resiliency, an extra-resilient cache is allocated across a second plurality of storage nodes comprising at least s storage nodes (where s>m), including allocating a corresponding cache region on each of the second plurality for use by the extra-resilient cache. Based on determining that a particular top-level write has not been acknowledged by at least n of the first plurality of storage nodes (where n?m), the particular top-level write is redirected to the extra-resilient cache.
    Type: Application
    Filed: November 20, 2020
    Publication date: May 26, 2022
    Inventors: Taylor Alan HOPE, Vinod R SHANKAR, Justin Sing Tong CHEUNG
  • Publication number: 20200364058
    Abstract: Data is identified that defines a known good state for a current operating system. The identified data includes read-only sets that are not updated during operation of the computing device, and modifiable sets that can be updated during operation of the computing device. The read-only sets are captured on an opportunistic basis and the modifiable sets are captured when the computing device is to be rebooted. A first and second virtual disk are allocated as snapshots of the identified data. The first virtual disk is updated to generate an updated state. The updates to the first virtual disk are isolated from the second virtual disk. The second virtual disk is maintained as an immutable snapshot of the identified data. In response to a failed reboot with the updated state, the computing device reverts to the known good state using the snapshot of the identified data.
    Type: Application
    Filed: May 13, 2019
    Publication date: November 19, 2020
    Inventors: Vinod R. SHANKAR, Taylor Alan Hope, Karan Mehra, Emanuel PALEOLOGU
  • Publication number: 20200363958
    Abstract: A first storage device configured to store data associated with a user is allocated. The data stored on the first storage device is mirrored at a second storage device. A resiliency mechanism is implemented at the first and second storage devices. The first and second storage devices are associated with a unit of allocation. When the second storage device is not available, a data structure is instantiated that is configured to track which subunits of the first and second storage devices have been modified. The data structure is updated to track which subunits of the second storage device are stale. The subunits have a smaller granularity than the unit of allocation. When the second storage device is available, data on the first storage device is resilvered to the second storage device. Only the subunits that are marked as stale in the data structure are resilvered.
    Type: Application
    Filed: May 15, 2019
    Publication date: November 19, 2020
    Inventors: Karan MEHRA, Justin Sing Tong CHEUNG, Vinod R. Shankar
  • Publication number: 20200348868
    Abstract: A virtual disk is instantiated as a representation of a storage volume. The virtual disk is configured with metadata corresponding to the storage volume. A storage stack is instantiated that is operable to provide an active I/O path to the storage volume. The storage stack is modified by adding an alternative I/O path to the virtual disk. The alternative I/O path includes a layout driver configured to manage a converted storage layout for the storage volume. The storage volume is encapsulated to the virtual disk. The active I/O path is closed and the alternative I/O path is enabled for I/O requests to the virtual disk. The storage layout of the storage device is converted without taking the storage volume offline.
    Type: Application
    Filed: April 30, 2019
    Publication date: November 5, 2020
    Inventors: Karan MEHRA, Vinod R. SHANKAR, Taylor Alan HOPE
  • Patent number: 10809927
    Abstract: A virtual disk is instantiated as a representation of a storage volume. The virtual disk is configured with metadata corresponding to the storage volume. A storage stack is instantiated that is operable to provide an active I/O path to the storage volume. The storage stack is modified by adding an alternative I/O path to the virtual disk. The alternative I/O path includes a layout driver configured to manage a converted storage layout for the storage volume. The storage volume is encapsulated to the virtual disk. The active I/O path is closed and the alternative I/O path is enabled for I/O requests to the virtual disk. The storage layout of the storage device is converted without taking the storage volume offline.
    Type: Grant
    Filed: April 30, 2019
    Date of Patent: October 20, 2020
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Karan Mehra, Vinod R. Shankar, Taylor Alan Hope
  • Patent number: 10809940
    Abstract: A first storage node configured to store data associated with a user is allocated. The data stored on the first storage node is mirrored at a second storage node. A resiliency mechanism is implemented at the first and second storage nodes. The resiliency mechanism is configured to restore data on at least one of the storage devices of the first and second storage nodes. In response to a loss of availability of either the first or second storage node and a loss of availability of one or more storage device on an available storage node, data on the unavailable storage devices of the available storage node is recovered using the resiliency mechanism of the available storage node.
    Type: Grant
    Filed: April 19, 2019
    Date of Patent: October 20, 2020
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Karan Mehra, Justin Sing Tong Cheung, Vinod R. Shankar, Grigory Borisovich Lyakhovitskiy
  • Patent number: 10732873
    Abstract: A data store is accessed that stores a collected historical record of performance metrics for input/output operations executed at a storage device that is part of a group of storage devices that are configured to provide a fault resiliency function. A performance profile is determined for the selected storage device based on selected performance metrics of the historical record. A difference between the performance profile for the storage device and a characteristic performance profile for similar storage devices is determined. When the difference exceeds a predetermined deviance threshold, selected I/O requests designated for the selected storage device are redirected to another device of the group of storage devices.
    Type: Grant
    Filed: April 18, 2019
    Date of Patent: August 4, 2020
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Scott Chao-Chueh Lee, Bryan Stephen Matthew, Vinod R. Shankar
  • Patent number: 10686721
    Abstract: A system is configured to use a de-randomizer and budget data structure to economize I/O operations for a shared storage device while still allowing access to the device to a number of different entities. Embodiments can identify a comparatively low cost next operation as compared to other I/O operations, including a cost for seek time, for a first entity to dispatch to the storage device when the first entity has sufficient budget to have the I/O operation performed on its behalf and to identify an I/O operation for a second entity to dispatch to the storage device when there is insufficient budget for the first entity.
    Type: Grant
    Filed: March 12, 2018
    Date of Patent: June 16, 2020
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Slava Kuznetsov, Vinod R. Shankar, Andrea D'Amato, Vladimir Petter
  • Patent number: 10678578
    Abstract: Systems and methods for live migration of VMs between different nodes are provided. The system and methods utilize a heat map and an access pattern to determine the fetching order of files and/or blocks from the cache of a host node for rebuilding the cache on a destination node. The systems and methods are able to persist the cache of a host node across a crash, allowing a destination node to fetch blocks and/or files from the cache on the host node after a crash instead of having to access the VM files and/or blocks from an original source. Accordingly, the systems and methods decrease migration latency of the VM and free up network bandwidth during the live migration when compared to prior systems and methods that utilize just the heat map to determine the fetching order and/or that are not able to persist the cache across a crash.
    Type: Grant
    Filed: June 30, 2016
    Date of Patent: June 9, 2020
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Vinod R. Shankar, Vladimir Petter, Vyacheslav Kuznetsov
  • Patent number: 10503419
    Abstract: Embodiments provide a method and system for enabling access to a storage device. Specifically, a node may request admittance to a cluster that has read and write access to a storage device. The node seeking access to the storage device must be first be approved by other nodes in the cluster. As part of the request, the node seeking access to the storage device sends a registration key to a storage device. Upon expiration of a registration timer, the node seeking access to the storage device receives a registration table from the storage device and determines whether its registration key is stored in the registration table. If the registration key is stored in the registration table the node has been accepted in the cluster and as a result, has been granted read and write access to the storage device.
    Type: Grant
    Filed: April 28, 2017
    Date of Patent: December 10, 2019
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Vyacheslav Kuznetsov, Vinod R. Shankar, Andrea D'Amato, David Allen Dion
  • Publication number: 20190370045
    Abstract: Techniques are disclosed for implementing a resilient object layer and namespace that are operable to provide a communication path to storage devices underlying virtualized storage services of a computing environment. The resilient object layer and namespace comprise a compression of at least two layers of a storage stack. A request is received for an operation that includes access to the virtualized storage services. Storage destination locations of the virtualized storage services associated with the request are mapped, using the resilient object layer and namespace, to a plurality of physical locations of the corresponding underlying storage devices.
    Type: Application
    Filed: May 30, 2018
    Publication date: December 5, 2019
    Inventors: Karan MEHRA, Sachin Chiman PATEL, Taylor Alan HOPE, Vinod R. SHANKAR
  • Patent number: 10452445
    Abstract: The techniques disclosed herein provide a dynamically configurable cluster of storage devices. In some configurations, the dynamically configurable cluster is associated with a fault domain. The cluster may include a plurality of computing devices that each include at least a storage device. The plurality of storage devices in the cluster may be configured to support a plurality of workloads coupled to the dynamically configurable cluster. The plurality of storage devices in the dynamically configurable cluster may be allocated to one or more of the plurality of workloads based on metadata identified resiliency requirements, performance requirements, and/or cost factors linked to the one or more of the plurality of workloads.
    Type: Grant
    Filed: August 30, 2017
    Date of Patent: October 22, 2019
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Karan Mehra, Emanuel Paleologu, Vinod R. Shankar
  • Publication number: 20190004860
    Abstract: The techniques disclosed herein provide a dynamically configurable cluster of storage devices. In some configurations, the dynamically configurable cluster is associated with a fault domain. The cluster may include a plurality of computing devices that each include at least a storage device. The plurality of storage devices in the cluster may be configured to support a plurality of workloads coupled to the dynamically configurable cluster. The plurality of storage devices in the dynamically configurable cluster may be allocated to one or more of the plurality of workloads based on metadata identified resiliency requirements, performance requirements, and/or cost factors linked to the one or more of the plurality of workloads.
    Type: Application
    Filed: August 30, 2017
    Publication date: January 3, 2019
    Inventors: Karan MEHRA, Emanuel PALEOLOGU, Vinod R. SHANKAR
  • Publication number: 20180205665
    Abstract: A system is configured to use a de-randomizer and budget data structure to economize I/O operations for a shared storage device while still allowing access to the device to a number of different entities.
    Type: Application
    Filed: March 12, 2018
    Publication date: July 19, 2018
    Inventors: Slava KUZNETSOV, Vinod R. SHANKAR, Andrea D'AMATO, Vladimir PETTER
  • Patent number: 9917790
    Abstract: A system is configured to use a de-randomizer and budget data structure to economize I/O operations for a shared storage device while still allowing access to the device to a number of different entities. Embodiments can identify a comparatively low cost next operation as compared to other I/O operations, including a cost for seek time, for a first entity to dispatch to the storage device when the first entity has sufficient budget to have the I/O operation performed on its behalf and to identify an I/O operation for a second entity to dispatch to the storage device when there is insufficient budget for the first entity.
    Type: Grant
    Filed: July 31, 2014
    Date of Patent: March 13, 2018
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Slava Kuznetsov, Vinod R. Shankar, Andrea D'Amato, Vladimir Petter
  • Publication number: 20180004560
    Abstract: Systems and methods for live migration of VMs between different nodes are provided. More specifically, the system and methods utilize a heat map and an access pattern to determine the fetching order of files and/or blocks from the cache of a host node for rebuilding the cache on a destination node. Additionally, the systems and methods are able to persist the cache of a host node across a crash, allowing a destination node to fetch blocks and/or files from the cache on the host node after a crash instead of having to access the VM files and/or blocks from an original source. Accordingly, the systems and methods decrease migration latency of the VM during live migration and free up network bandwidth during the live migration when compared to prior systems and methods that utilize just the heat map to determine the fetching order and/or that are not able to persist the cache across a crash.
    Type: Application
    Filed: June 30, 2016
    Publication date: January 4, 2018
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Vinod R. Shankar, Vladimir Petter, Vyacheslav Kuznetsov
  • Publication number: 20170228184
    Abstract: Embodiments provide a method and system for enabling access to a storage device. Specifically, a node may request admittance to a cluster that has read and write access to a storage device. The node seeking access to the storage device must be first be approved by other nodes in the cluster. As part of the request, the node seeking access to the storage device sends a registration key to a storage device. Upon expiration of a registration timer, the node seeking access to the storage device receives a registration table from the storage device and determines whether its registration key is stored in the registration table. If the registration key is stored in the registration table the node has been accepted in the cluster and as a result, has been granted read and write access to the storage device.
    Type: Application
    Filed: April 28, 2017
    Publication date: August 10, 2017
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Vyacheslav Kuznetsov, Vinod R. Shankar, Andrea D'Amato, David Allen Dion