IP Library Granted Patent US 8,521,860
Granted Patent B2
US 8,521,860 · App. 13/074,920 · Granted Aug 27, 2013

Providing a witness service

Inventors: Prashanth Prahalad (Bellevue, WA); David M. Kruse (Kirkland, WA); Mathew George (Bellevue, WA); James T. Pinkerton (Sammamish, WA); Thomas E. Jolly (Redmond, WA)
Assignee: Microsoft Corporation
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 8,521,860
App. No.
13/074,920
Granted
Aug 27, 2013
Kind
B2
Abstract

Described are embodiments directed at providing a witness service that sends notifications with a resource state to clients. Embodiments provide a protocol that includes various messages for registering and receiving notifications regarding the state of a resource. The protocol may include a message for requesting node information from a first node in a cluster. The node information identifies nodes in the cluster that provide a witness service, which monitors a resource. The protocol includes a message that is used to register with the witness service for notifications regarding a state, or state change, of a network or cluster resource. The protocol also includes messages for sending notifications with state information of the resource.

Claims (43)

1. A computer implemented method of providing state notifications to a client, the method comprising:

receiving at a first node a request to connect to the first node to access information on the first node, wherein the first node is one of a plurality of nodes in a cluster;

sending a response from the first node, the response establishing a session for accessing information on the first node;

receiving a second request for node information regarding the plurality of nodes;

in response to the second request, sending a second response with the node information, wherein the node information identifies at least two nodes of the plurality of nodes that serve as witness nodes for monitoring a resource and further identifies a ranking for each of the at least two nodes;

receiving a registration request at the first node to register for notifications regarding at least one resource, wherein the first node serves as a first witness node and monitors the at least one resource; and

sending from the first node, a notification with the state of the at least one resource.

2. The method of claim 1 , wherein the resource is a network resource and the first node receives events from the network resource.

3. The method of claim 2 , wherein the resource is a cluster resource and the first node receives events from a cluster service running on the cluster.

4. The method of claim 1 , wherein the notification indicates a failure of the at least one resource.

5. The method of claim 1 , wherein the request to connect to the first node and the response establishing a session for accessing information on the first node are formatted according to a file access protocol.

6. The method of claim 5 , wherein the second request for node information, the second response with the node information, the registration request, and the notification are formatted according to a witness protocol that is different from the file access protocol.

7. The method of claim 6 , wherein the witness protocol uses report procedure calls (RPC) over a transmission control protocol (TCP) transport.

8. The method of claim 1 , wherein the node information identifies a plurality of nodes that serves as witness nodes.

9. The method of claim 1 , further comprising receiving an unregister request to unregister for the notifications at the first node.

10. A computer storage device comprising computer executable instructions that when executed by a processor perform a method of receiving state notifications, the method comprising:

sending a request to connect to a first file server, wherein the first file server is one of a plurality of file servers in a cluster;

receiving a response from the first file server indicating the establishment of a session for accessing file information stored on the first file server;

sending a first plurality of requests to access files on the first file server;

transmitting a second request to the first file server for witness information, wherein the witness information provides identifying information for a second file server of the plurality of file servers in the cluster, wherein the second file server provides a witness service that monitors at least one resource;

receiving a message with the witness information, wherein the witness information identifies at least two additional file servers providing the witness service and further identifies a ranking for each of the at least two additional file servers;

based on the witness information, transmitting a request to at least one of the at least two additional file servers to register for notifications with the state of the at least one resource; and

receiving a notification with the state of the at least one resource.

11. The computer storage device of claim 10 , wherein the resource is a resource of the first file server.

12. The computer storage device of claim 11 , wherein the notification indicates a failure of the first file server.

13. The computer storage device of claim 12 , further comprising, in response to the notification:

pausing any additional file access requests to the first file server;

receiving a message indicating the availability of a third file server of the plurality of file servers in the cluster; and

sending a second plurality of file access requests to the third file server.

14. The computer storage device of claim 10 , wherein the first request to connect to a first file server, the response from the first file server indicating the establishment of a session, and the first plurality of requests to access files are transmitted over a first communication channel.

15. The computer storage device of claim 14 , wherein the first request to connect to the first file server, the response from the first file server indicating the establishment of a session, and the first plurality of requests to access files are formatted according to a file access protocol.

16. The computer storage device of claim 15 , wherein the file access protocol comprises a version of the server message block (SMB) protocol.

17. The computer storage device of claim 15 , wherein the second request, the message with the witness information, the request to the second file server to register for state notifications, and the notification are transmitted using a second communication channel different from the first communication channel.

18. A computer system for providing client communication services, the system comprising:

a plurality of servers in a cluster, wherein at least a portion of the plurality of servers are configured to:

establish a session for providing access to file information stored on the server;

store witness information identifying at least two other servers in the plurality of servers that provide a witness service and further identifying an order for each of the at least two servers;

provide a list of each of the servers in the plurality of servers that provide the witness information;

monitor events regarding at least one resource;

receive a registration request to register for notifications regarding the at least one resource; and

send notifications with the state of the at least one resource.

19. The system of claim 18 , wherein the resource is a cluster resource and the server receives events from a cluster service running on the cluster.

20. The system of claim 19 , wherein the notification indicates a failure of the at least one resource.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034544/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 29, 2011
From: PRAHALAD, PRASHANTH; GEORGE, MATHEW; KRUSE, DAVID M.; PINKERTON, JAMES T.; JOLLY, THOMAS E.
To: MICROSOFT CORPORATION
Reel/Frame 026044/0540 →
Continuity (1)
Related Publication 20120254396A1 · Oct 4, 2012