code: func (snap *Snapshot) Release() {
  	snap.mu.Lock()
  	defer snap.mu.Unlock()
  
  	if !snap.released {
  		// Clear the finalizer.
  		runtime.SetFinalizer(snap, nil)
  
  		snap.released = true
  		snap.db.releaseSnapshot(snap.elem)
  		atomic.AddInt32(&snap.db.aliveSnaps, -1)
  		snap.db = nil
  		snap.elem = nil
  	}
  }
docs: // Release releases the snapshot. This will not release any returned
  // iterators, the iterators would still be valid until released or the
  // underlying DB is closed.
  //
  // Other methods should not be called after the snapshot has been released.