Summary:
Api to allow releasing locks for a session/host when either
a) The session ends, or
b) The tserver loses its lease/restarts.
The TServer should detect when a session ends, and may call
the API to release all locks held by a particular session.
Once YSQL lease is implemented, the master may realize that
a TServer has lost it's lease, or
may discover that the TServer has had a restart when a TServer
shows up with a new instance_seqno. A new incarnation-id may
be generated, and then a background task clears out the locks
held by previous incarnations.
Other changes:
- Try to make Unlock/Lock apis take a callback instead
Jira: DB-13773
Test Plan: yb_build.sh --cxx-test object_lock-test
Reviewers: zdrudi, bkolagani
Reviewed By: zdrudi
Subscribers: ybase
Differential Revision: https://phorge.dev.yugabyte.com/D39749