Description
ns_server is implementing the ns_server side of the "session CAS / control token" piece. See the work in-flight here: http://review.couchbase.org/#/c/67721. (It's not quite ready for merge.)
ns_server's understanding was that a control token / CAS of zero meant that the command was not to be subject to session CAS validation – and in particular a CAS value of zero is used for the potentially long running compact_vbucket command.
However, in memcached a session CAS of 0 is treated as a special value that increments the CAS counter regardless of the actual CAS value.
What this means is that ns_server may want to reset a control token / CAS value while a compact vbucket command is running and it may have to wait for a potentially extended period to issue an important control command.
It would be good if we can come up with a way to allow commands such as compact_vbucket to be able to be executed not subject to session CAS validation.