'Merge changes to the snapshot index and save it on the backend
This method merges provided changes into the index, locking, to ensure
that concurrent changes that don\'t overlap are not overwritten. No
update will occur if neither an update or keys to delete are provided.
:param index_update: a dict of keys/value pairs to update in the index
:param keys_to_del: a list of keys to purge from the index'

@cinder_utils.synchronized(SNAPSHOT_PERSISTENT_STORE_LOCK)
def _merge_soft_delete_changes(self, index_update, keys_to_del):

    if (index_update or keys_to_del):
        index = self._get_soft_delete_map()
        if index_update:
            index.update(index_update)
        if keys_to_del:
            for key in keys_to_del:
                if (key in index):
                    del index[key]
        self._client.save_backend_store(self.SNAPSHOT_PERSISTENT_STORE_KEY, index)
