Patents by Inventor Gor Nishanov
Gor Nishanov 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: 11290524Abstract: Embodiments are directed to communicating between computing nodes in a cluster of nodes. In one scenario, a computer system receives a data packet from a worker node including the worker node's current workload identifiers and health status, where the data packet includes an associated version number. The computer system determines that the version number in the received data packet is different than a previously received data packet and evaluates the worker node's current workload configuration to determine whether workload changes are to be made on the worker node. Then, upon determining that workload changes are to be made on the worker node, the computer system selects a subset of workload changes to apply to the worker node, generates an indication of the selected subset of workload changes to the worker node and sends the generated indication of workload changes to the worker node.Type: GrantFiled: August 13, 2014Date of Patent: March 29, 2022Assignee: Microsoft Technology Licensing, LLCInventors: Abhinit Kumar, Andrea D'Amato, David Allen Dion, Gor Nishanov, Lokesh Srinivas Koppolu, Nicholas Maliwacki
-
Patent number: 10747511Abstract: As a memory usage optimization, a compiler identifies coroutines whose activation frames can be allocated on a caller's stack instead of allocating the frame on the heap. For example, when the compiler determines that a coroutine C's life cannot extend beyond the life of the routine R that first calls the coroutine C, the compiler generates code to allocate the activation frame for C on the stack of R, instead of generating code to allocate C's frame from heap memory. In some cases, as another optimization, code for coroutine C is also inlined with code for the routine R that calls C. Coroutine activation frame content variations and layout variations are also described.Type: GrantFiled: June 26, 2015Date of Patent: August 18, 2020Assignee: Microsoft Technology Licensing, LLCInventors: James J. Radigan, Gor Nishanov
-
Patent number: 10177994Abstract: Embodiments are directed to organizing computing nodes in a cluster federation and to reassigning roles in a cluster federation. In one scenario, a computer system identifies computing nodes that are to be part of a cluster federation which includes a master cluster and worker clusters. The computer system assigns a director role to a master node in the master cluster which governs decisions that affect consistency within the federation, and further assigns a leader role to at least one master node which monitors and controls other master nodes in the master cluster. The computer system assigns a worker agent role to a worker node which receives workload assignments from the master cluster, and further assigns a worker role to a worker node which processes the assigned workload. The organized cluster federation provides fault tolerance by allowing roles to be dynamically reassigned to computing nodes in different master and worker clusters.Type: GrantFiled: August 13, 2014Date of Patent: January 8, 2019Assignee: Microsoft Technology Licensing, LLCInventors: Gor Nishanov, Andrea D'Amato, David Allen Dion, Amitabh Prakash Tamhane, Lokesh Srinivas Koppolu, Nicholas Maliwacki
-
Patent number: 10169097Abstract: Managing a distributed system. Embodiments may allow for a quorum to dynamically change the quorum vote. One example is illustrated in a method. The method includes determining a change to a voter's level of participation in a cluster. A quorum of voters changes the voter's voting privileges, based on the change in the voter's level of participation.Type: GrantFiled: January 23, 2012Date of Patent: January 1, 2019Assignee: Microsoft Technology Licensing, LLCInventors: Gor Nishanov, Andrea D'Amato, Amitabh Prakash Tamhane, David A. Dion
-
Publication number: 20160321045Abstract: As a memory usage optimization, a compiler identifies coroutines whose activation frames can be allocated on a caller's stack instead of allocating the frame on the heap. For example, when the compiler determines that a coroutine C's life cannot extend beyond the life of the routine R that first calls the coroutine C, the compiler generates code to allocate the activation frame for C on the stack of R, instead of generating code to allocate C's frame from heap memory. In some cases, as another optimization, code for coroutine C is also inlined with code for the routine R that calls C. Coroutine activation frame content variations and layout variations are also described.Type: ApplicationFiled: June 26, 2015Publication date: November 3, 2016Inventors: James J. Radigan, Gor Nishanov
-
Publication number: 20160050262Abstract: Embodiments are directed to communicating between computing nodes in a cluster of nodes. In one scenario, a computer system receives a data packet from a worker node including the worker node's current workload identifiers and health status, where the data packet includes an associated version number. The computer system determines that the version number in the received data packet is different than a previously received data packet and evaluates the worker node's current workload configuration to determine whether workload changes are to be made on the worker node. Then, upon determining that workload changes are to be made on the worker node, the computer system selects a subset of workload changes to apply to the worker node, generates an indication of the selected subset of workload changes to the worker node and sends the generated indication of workload changes to the worker node.Type: ApplicationFiled: August 13, 2014Publication date: February 18, 2016Inventors: Abhinit Kumar, Andrea D'Amato, David Allen Dion, Gor Nishanov, Lokesh Srinivas Koppolu, Nicholas Maliwacki
-
Publication number: 20160050123Abstract: Embodiments are directed to organizing computing nodes in a cluster federation and to reassigning roles in a cluster federation. In one scenario, a computer system identifies computing nodes that are to be part of a cluster federation which includes a master cluster and worker clusters. The computer system assigns a director role to a master node in the master cluster which governs decisions that affect consistency within the federation, and further assigns a leader role to at least one master node which monitors and controls other master nodes in the master cluster. The computer system assigns a worker agent role to a worker node which receives workload assignments from the master cluster, and further assigns a worker role to a worker node which processes the assigned workload. The organized cluster federation provides fault tolerance by allowing roles to be dynamically reassigned to computing nodes in different master and worker clusters.Type: ApplicationFiled: August 13, 2014Publication date: February 18, 2016Inventors: Gor Nishanov, Andrea D'Amato, David Allen Dion, Amitabh Prakash Tamhane, Lokesh Srinivas Koppolu, Nicholas Maliwacki
-
Publication number: 20130191453Abstract: Managing a distributed system. Embodiments may allow for a quorum to dynamically change the quorum vote. One example is illustrated in a method. The method includes determining a change to a voter's level of participation in a cluster. A quorum of voters changes the voter's voting privileges, based on the change in the voter's level of participation.Type: ApplicationFiled: January 23, 2012Publication date: July 25, 2013Applicant: MICROSOFT CORPORATIONInventors: Gor Nishanov, Andrea D'Amato, Amitabh Prakash Tamhane, David A. Dion
-
Patent number: 7840730Abstract: Described is a technology by which a storage volume is shared by cluster nodes of a server cluster. In one implementation, each node includes a redirector that provides shared access to the volume from that node. The redirector routes file system metadata requests from applications and the like through a first (e.g., SMB) communications path to the owning node, and routes file system read and write data to the storage device through a second, high-speed communications path such as direct direct block level I/O. An owning node maintains ownership of the storage device through a persistent reservation mechanism that writes a key to a registration table associated with the storage device. Non-owning nodes write a shared key. The owning node validates the shared keys against cluster membership data, and preempts (e.g., removes) any key deemed not valid. Security mechanisms for controlling access are also described.Type: GrantFiled: June 27, 2008Date of Patent: November 23, 2010Assignee: Microsoft CorporationInventors: Andrea D'Amato, Rajeev Y. Nagar, Gor Nishanov, Rajsekhar Das, Gregorio Maeso
-
Publication number: 20090327798Abstract: Described is a technology by which a storage volume is shared by cluster nodes of a server cluster. In one implementation, each node includes a redirector that provides shared access to the volume from that node. The redirector routes file system metadata requests from applications and the like through a first (e.g., SMB) communications path to the owning node, and routes file system read and write data to the storage device through a second, high-speed communications path such as direct direct block level I/O. An owning node maintains ownership of the storage device through a persistent reservation mechanism that writes a key to a registration table associated with the storage device. Non-owning nodes write a shared key. The owning node validates the shared keys against cluster membership data, and preempts (e.g., removes) any key deemed not valid. Security mechanisms for controlling access are also described.Type: ApplicationFiled: June 27, 2008Publication date: December 31, 2009Applicant: MICROSOFT CORPORATIONInventors: Andrea D'Amato, Rajeev Y. Nagar, Gor Nishanov, Rajsekhar Das, Gregorio Maeso
-
Patent number: 7467374Abstract: A system and method, useful in tracing program execution, for serializing data, such as an object data, into consistent, structured (e.g., XML) output. A serializer processes an object's data, and for each set of data, records the object's data in a structured (e.g., XML) format that reflects the object's current state. Nodes corresponding to fields and properties of the object are nested in the structure. Simple types define nodes with the current data value associated with the tag. More complex types including arrays, collections, dictionaries and exceptions are stored as individual members of a type, with any complex members further broken down into sub-nodes. Object data including custom collections, dictionaries, non-public fields and properties and properties with only get-accessor are serialized. The resulting output, such as in an XML formatted structure, is easy to read by humans, and is easily processed, such as for automated analysis purposes.Type: GrantFiled: November 5, 2003Date of Patent: December 16, 2008Assignee: Microsoft CorporationInventors: Gor Nishanov, Vitali Prokopenko
-
Patent number: 7277952Abstract: In a distributed system, a resource such as a storage device is protected by an owner node's exclusive access to it, wherein exclusive access is established via a persistent reservation on the resource. A persistent reservation is never removed, however the owner node's persistent reservation may be challenged in an arbitration process, to take it away from a failed owner node. A challenger node challenges by changing an owner's access key (that establishes the persistent reservation) to a challenge key, delaying, and determining whether the owner restored the owner's access key during the delay, because a properly operating owner replaces a challenge key with its owner access key. If the owner fails to restore its owner access key, the challenger node becomes the new resource owner by replacing the challenge key with an owner access key of the challenger node. The key may include additional information to provide extensibility.Type: GrantFiled: September 28, 2001Date of Patent: October 2, 2007Assignee: Microsoft CorporationInventors: Gor Nishanov, Peter William Wieland
-
Publication number: 20060090095Abstract: A method and system for increasing server cluster availability by requiring at a minimum only one node and a quorum replica set of replica members to form and operate a cluster. Replica members maintain cluster operational data. A cluster operates when one node possesses a majority of replica members, which ensures that any new or surviving cluster includes consistent cluster operational data via at least one replica member from the immediately prior cluster. Arbitration provides exclusive ownership by one node of the replica members, including at cluster formation, and when the owning node fails. Arbitration uses a fast mutual exclusion algorithm and a reservation mechanism to challenge for and defend the exclusive reservation of each member. A quorum replica set algorithm brings members online and offline with data consistency, including updating unreconciled replica members, and ensures consistent read and update operations.Type: ApplicationFiled: September 12, 2005Publication date: April 27, 2006Applicant: Microsoft CorporationInventors: Michael Massa, David Dion, Rajsekhar Das, Rushabh Doshi, David Lomet, Gor Nishanov, Philip Bernstein, Rod Gamache, Rohit Jain, Sunita Shrivastava
-
Publication number: 20060036896Abstract: A method and system for increasing server cluster availability by requiring at a minimum only one node and a quorum replica set of replica members to form and operate a cluster. Replica members, independent from the nodes, maintain cluster operational data. A cluster operates when one node possesses a majority of replica members, which ensures that any new or surviving cluster includes consistent cluster operational data via at least one replica member from the immediately prior cluster. Arbitration provides exclusive ownership by one node of the replica members, including at cluster formation, and when the owning node fails. Arbitration uses a fast mutual exclusion algorithm and a reservation mechanism to challenge for and defend the exclusive reservation of each member. A quorum replica set algorithm brings members online and offline with data consistency, including updating unreconciled replica members, and ensures consistent read and update operations.Type: ApplicationFiled: August 12, 2005Publication date: February 16, 2006Applicant: Microsoft CorporationInventors: Rod Gamache, Michael Massa, Sunita Shrivastava, Gor Nishanov, David Lomet, Philip Bernstein, Rohit Jain
-
Publication number: 20050097110Abstract: A system and method, useful in tracing program execution, for serializing data, such as an object data, into consistent, structured (e.g., XML) output. A serializer processes an object's data, and for each set of data, records the object's data in a structured (e.g., XML) format that reflects the object's current state. Nodes corresponding to fields and properties of the object are nested in the structure. Simple types define nodes with the current data value associated with the tag. More complex types including arrays, collections, dictionaries and exceptions are stored as individual members of a type, with any complex members further broken down into sub-nodes. Object data including custom collections, dictionaries, non-public fields and properties and properties with only get-accessor are serialized. The resulting output, such as in an XML formatted structure, is easy to read by humans, and is easily processed, such as for automated analysis purposes.Type: ApplicationFiled: November 5, 2003Publication date: May 5, 2005Applicant: MICROSOFT CORPORATIONInventors: Gor Nishanov, Vitali Prokopenko
-
Patent number: 6662219Abstract: A method and system wherein following a partitioning of a server cluster, operational subgroups arbitrate for possession of a quorum resource that determines cluster representation, wherein the arbitration is biased by a relative weight of the subgroup. The weight may be relative to the original cluster weight, or submitted as a bid that is relative to other possible subgroup weights. The biasing gives subgroups that are better capable of representing the cluster an arbitration advantage over lesser subgroups. The biasing weight of each subgroup may be determined by node count and/or by a calculation of the subgroup's resources. The arbitration may be delayed based on the relative weight, or alternatively, the arbitration may comprise a bidding process in which a subgroup's bid is based on the subgroup's relative weight.Type: GrantFiled: December 15, 1999Date of Patent: December 9, 2003Assignee: Microsoft CorporationInventors: Gor Nishanov, Glenn R. Peterson, Rod Gamache, Michael T. Massa, Sunita Shrivastava
-
Publication number: 20030065782Abstract: In a distributed system, a resource such as a storage device is protected by an owner node's exclusive access to it, wherein exclusive access is established via a persistent reservation on the resource. A persistent reservation is never removed, however the owner node's persistent reservation may be challenged in an arbitration process, to take it away from a failed owner node. A challenger node challenges by changing an owner's access key (that establishes the persistent reservation) to a challenge key, delaying, and determining whether the owner restored the owner's access key during the delay, because a properly operating owner replaces a challenge key with its owner access key. If the owner fails to restore its owner access key, the challenger node becomes the new resource owner by replacing the challenge key with an owner access key of the challenger node. The key may include additional information to provide extensibility.Type: ApplicationFiled: September 28, 2001Publication date: April 3, 2003Inventors: Gor Nishanov, Peter William Wieland