2014-05-30 02:19:03 +00:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"flag"
|
|
|
|
"fmt"
|
|
|
|
"log"
|
|
|
|
"os"
|
2014-10-26 18:34:55 +00:00
|
|
|
|
2016-06-03 01:09:14 +00:00
|
|
|
"github.com/chrislusf/seaweedfs/weed/storage"
|
2018-07-08 09:39:04 +00:00
|
|
|
"github.com/chrislusf/seaweedfs/weed/storage/types"
|
2014-05-30 02:19:03 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
var (
|
|
|
|
indexFileName = flag.String("file", "", ".idx file to analyze")
|
|
|
|
)
|
|
|
|
|
|
|
|
func main() {
|
|
|
|
flag.Parse()
|
|
|
|
indexFile, err := os.OpenFile(*indexFileName, os.O_RDONLY, 0644)
|
|
|
|
if err != nil {
|
|
|
|
log.Fatalf("Create Volume Index [ERROR] %s\n", err)
|
|
|
|
}
|
|
|
|
defer indexFile.Close()
|
|
|
|
|
2018-07-08 09:39:04 +00:00
|
|
|
storage.WalkIndexFile(indexFile, func(key types.NeedleId, offset types.Offset, size uint32) error {
|
|
|
|
fmt.Printf("key %d, offset %d, size %d, nextOffset %d\n", key, offset*8, size, int64(offset)*types.NeedlePaddingSize+int64(size))
|
2014-05-30 02:19:03 +00:00
|
|
|
return nil
|
|
|
|
})
|
|
|
|
}
|