Abstract:
Techniques for notifying clients whose locks did not persist about a loss of lock state after a failover event are disclosed herein. According to one embodiment, a storage node of a high availability cluster constructs a lock data structure based on a mirrored lock data structure for a lock on a data container. The storage node receives a data operation request permitted by the lock from a client to operate on the data container. The storage node instructs to terminate a connection with the client if the lock data structure for the lock on the data container has been recently reconstructed. Accordingly, the client revokes the connection and refrains from committing the locally cached operations to the data container stored in the storage node. The client has an option to reconnect with the cluster and regain the data container privilege controlled by the lock.
Abstract:
Techniques for notifying clients whose locks did not persist about a loss of lock state after a failover event are disclosed herein. According to one embodiment, a storage node of a high availability cluster constructs a lock data structure based on a mirrored lock data structure for a lock on a data container. The storage node receives a data operation request permitted by the lock from a client to operate on the data container. The storage node instructs to terminate a connection with the client if the lock data structure for the lock on the data container has been recently reconstructed. Accordingly, the client revokes the connection and refrains from committing the locally cached operations to the data container stored in the storage node. The client has an option to reconnect with the cluster and regain the data container privilege controlled by the lock.
Abstract:
Techniques for notifying clients whose locks did not persist about a loss of lock state after a failover event are disclosed herein. According to one embodiment, a storage node of a high availability cluster constructs a lock data structure based on a mirrored lock data structure for a lock on a data container. The storage node receives a data operation request permitted by the lock from a client to operate on the data container. The storage node instructs to terminate a connection with the client if the lock data structure for the lock on the data container has been recently reconstructed. Accordingly, the client revokes the connection and refrains from committing the locally cached operations to the data container stored in the storage node. The client has an option to reconnect with the cluster and regain the data container privilege controlled by the lock.