docs: def set_keyspace(self, keyspace):
          """
          Change the keyspace which will be used for subsequent requests to this
          CassandraClusterPool, and return a Deferred that will fire once it can
          be verified that connections can successfully use that keyspace.
  
          If something goes wrong trying to change a connection to that keyspace,
          the Deferred will errback, and the keyspace to be used for future
          requests will not be changed.
  
          Requests made between the time this method is called and the time that
          the returned Deferred is fired may be made in either the previous
          keyspace or the new keyspace. If you may need to make use of multiple
          keyspaces at the same time in the same app, consider using the
          specialized CassandraKeyspaceConnection interface provided by the
          keyspaceConnection method.
          """
  
          # push a real set_keyspace on some (any) connection; the idea is that
          # if it succeeds there, it is likely to succeed everywhere, and vice
          # versa.  don't bother waiting for all connections to change- some of
          # them may be doing long blocking tasks and by the time they're done,
          # the keyspace might be changed again anyway
          d = self.pushRequest(ManagedThriftRequest('set_keyspace', keyspace))
  
          def store_keyspace(_):
              self.keyspace = keyspace
          d.addCallback(store_keyspace)
          return d