levels.go
func revertToManifest(kv *DB, mf *Manifest, idMap map[uint64]struct{}) error {
	// 1. Check all files in manifest exist.
	for id := range mf.Tables {
		if _, ok := idMap[id]; !ok {
			return fmt.Errorf("file does not exist for table %d", id)
		}
	}

	// 2. Delete files that shouldn't exist.
	for id := range idMap {
		if _, ok := mf.Tables[id]; !ok {
			kv.elog.Printf("Table file %d not referenced in MANIFEST\n", id)
			filename := table.NewFilename(id, kv.opt.Dir)
			if err := os.Remove(filename); err != nil {
				return y.Wrapf(err, "While removing table %d", id)
			}
		}
	}

	return nil
}
func revertToManifest(kv *DB, mf *Manifest, idMap map[uint64]struct{}) error {
	// 1. Check all files in manifest exist.
	for id := range mf.Tables {
		if _, ok := idMap[id]; !ok {
			return fmt.Errorf("file does not exist for table %d", id)
		}
	}

	// 2. Delete files that shouldn't exist.
	for id := range idMap {
		if _, ok := mf.Tables[id]; !ok {
			kv.elog.Printf("Table file %d not referenced in MANIFEST\n", id)
			filename := table.NewFilename(id, kv.opt.Dir)
			if err := os.Remove(filename); err != nil {
				return y.Wrapf(err, "While removing table %d", id)
			}
		}
	}

	return nil
}
func revertToManifest ( kv * DB , mf * Manifest , idMap map [ uint64 ] struct { } ) error { // 1. Check all files in manifest exist. for id := range mf . Tables { if _ , ok := idMap [ id ] ; ! ok { return fmt . Errorf ( " " , id ) } } // 2. Delete files that shouldn't exist. for id := range idMap { if _ , ok := mf . Tables [ id ] ; ! ok { kv . elog . Printf ( " \n " , id ) filename := table . NewFilename ( id , kv . opt . Dir ) if err := os . Remove ( filename ) ; err != nil { return y . Wrapf ( err , " " , id ) } } } return nil }
// revertToManifest checks that all necessary table files exist and removes all table files not
// referenced by the manifest.  idMap is a set of table file id's that were read from the directory
// listing.
revertToManifest checks that all necessary table files exist and removes all table files not referenced by the manifest . idMap is a set of table file id s that were read from the directory listing .