aboutsummaryrefslogtreecommitdiff
path: root/unmaintained/volume_tailer/volume_tailer.go
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2019-04-18 19:22:13 -0700
committerChris Lu <chris.lu@gmail.com>2019-04-18 19:22:13 -0700
commitfa176fe80f77e569d03b2975a5c15cc213f37ea4 (patch)
treeb3dea937371004d3a813f4b1f680a40a632b7230 /unmaintained/volume_tailer/volume_tailer.go
parent3dce1016cb36a511e3ae0fa67c5eb5631f1ce4d6 (diff)
downloadseaweedfs-fa176fe80f77e569d03b2975a5c15cc213f37ea4.tar.xz
seaweedfs-fa176fe80f77e569d03b2975a5c15cc213f37ea4.zip
volume tailing chunks large files
Diffstat (limited to 'unmaintained/volume_tailer/volume_tailer.go')
-rw-r--r--unmaintained/volume_tailer/volume_tailer.go49
1 files changed, 47 insertions, 2 deletions
diff --git a/unmaintained/volume_tailer/volume_tailer.go b/unmaintained/volume_tailer/volume_tailer.go
index 22c3ebab4..8a662ef5e 100644
--- a/unmaintained/volume_tailer/volume_tailer.go
+++ b/unmaintained/volume_tailer/volume_tailer.go
@@ -10,6 +10,7 @@ import (
weed_server "github.com/chrislusf/seaweedfs/weed/server"
"github.com/chrislusf/seaweedfs/weed/storage"
"github.com/spf13/viper"
+ "golang.org/x/tools/godoc/util"
"io"
"log"
@@ -19,6 +20,7 @@ var (
master = flag.String("master", "localhost:9333", "master server host and port")
volumeId = flag.Int("volumeId", -1, "a volume id")
timeoutSeconds = flag.Int("timeoutSeconds", 0, "disconnect if no activity after these seconds")
+ showTextFile = flag.Bool("showTextFile", false, "display textual file content")
)
func main() {
@@ -59,7 +61,51 @@ func main() {
}
}
- println("header:", len(resp.NeedleHeader), "body:", len(resp.NeedleBody))
+ needleHeader := resp.NeedleHeader
+ needleBody := resp.NeedleBody
+
+ if len(needleHeader) == 0 {
+ continue
+ }
+
+ for !resp.IsLastChunk {
+ resp, recvErr = stream.Recv()
+ if recvErr != nil {
+ if recvErr == io.EOF {
+ break
+ } else {
+ return recvErr
+ }
+ }
+ needleBody = append(needleBody, resp.NeedleBody...)
+ }
+
+ n := new(storage.Needle)
+ n.ParseNeedleHeader(needleHeader)
+ n.ReadNeedleBodyBytes(needleBody, storage.CurrentVersion)
+
+ if n.Size == 0 {
+ println("-", n.String())
+ continue
+ } else {
+ println("+", n.String())
+ }
+
+ if *showTextFile {
+
+ data := n.Data
+ if n.IsGzipped() {
+ if data, err = operation.UnGzipData(data); err != nil {
+ continue
+ }
+ }
+ if util.IsText(data) {
+ println(string(data))
+ }
+
+ println("-", n.String(), "compressed", n.IsGzipped(), "original size", len(data))
+ }
+
}
return nil
@@ -70,5 +116,4 @@ func main() {
log.Printf("Error VolumeTail volume %d: %v", vid, err)
}
-
}