public Snapshot CreateNewSnapshot(VersionSet versionSet)
		{
			var snapshot = new Snapshot
				               {
					               Sequence = versionSet.LastSequence
				               };

			snapshots.TryAdd(snapshot, null);

			return snapshot;
		}
		public void ReleaseSnapshot(Snapshot snapshot)
		{
			state.Snapshooter.Delete(snapshot);
		}
		public void Delete(Snapshot snapshot)
		{
			object _;
			snapshots.TryRemove(snapshot, out _);
		}