Skip to content

Commit ff2bde2

Browse files
authored
add undo compressor log support (#659)
1 parent aa2c46e commit ff2bde2

File tree

5 files changed

+25
-123
lines changed

5 files changed

+25
-123
lines changed

pkg/compressor/compressor_factory.go

Lines changed: 0 additions & 39 deletions
This file was deleted.

pkg/compressor/compressor_type.go

Lines changed: 19 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -17,61 +17,37 @@
1717

1818
package compressor
1919

20-
type CompressorType int8
20+
type CompressorType string
2121

2222
const (
23-
CompressorNone CompressorType = iota
24-
CompressorGzip
25-
CompressorZip
26-
CompressorSevenz
27-
CompressorBzip2
28-
CompressorLz4
29-
CompressorDeflate
30-
CompressorZstd
23+
// "None" means no compressor is used
24+
CompressorNone CompressorType = "None"
25+
CompressorGzip CompressorType = "Gzip"
26+
CompressorZip CompressorType = "Zip"
27+
CompressorSevenz CompressorType = "Sevenz"
28+
CompressorBzip2 CompressorType = "Bzip2"
29+
CompressorLz4 CompressorType = "Lz4"
30+
CompressorDeflate CompressorType = "Deflate"
31+
CompressorZstd CompressorType = "Zstd"
3132
)
3233

33-
func (c CompressorType) String() string {
34+
func (c CompressorType) GetCompressor() Compressor {
3435
switch c {
3536
case CompressorNone:
36-
return "CompressorNone"
37+
return &NoneCompressor{}
3738
case CompressorGzip:
38-
return "CompressorGzip"
39+
return &Gzip{}
3940
case CompressorZip:
40-
return "CompressorZip"
41-
case CompressorSevenz:
42-
return "CompressorSevenz"
41+
return &Zip{}
4342
case CompressorBzip2:
44-
return "CompressorBzip2"
43+
return &Bzip2{}
4544
case CompressorLz4:
46-
return "CompressorLz4"
45+
return &Lz4{}
4746
case CompressorZstd:
48-
return "CompressorZstd"
47+
return &Zstd{}
4948
case CompressorDeflate:
50-
return "CompressorDeflate"
49+
return &DeflateCompress{}
5150
default:
52-
return ""
53-
}
54-
}
55-
56-
var compressor map[string]CompressorType
57-
58-
func GetByName(name string) CompressorType {
59-
if compressor == nil {
60-
compressor = map[string]CompressorType{
61-
CompressorNone.String(): CompressorNone,
62-
CompressorGzip.String(): CompressorGzip,
63-
CompressorZip.String(): CompressorZip,
64-
CompressorSevenz.String(): CompressorSevenz,
65-
CompressorBzip2.String(): CompressorBzip2,
66-
CompressorLz4.String(): CompressorLz4,
67-
CompressorZstd.String(): CompressorZstd,
68-
CompressorDeflate.String(): CompressorDeflate,
69-
}
70-
}
71-
72-
if v, ok := compressor[name]; ok {
73-
return v
74-
} else {
75-
return CompressorNone
51+
return &NoneCompressor{}
7652
}
7753
}

pkg/compressor/compressor_type_test.go

Lines changed: 0 additions & 35 deletions
This file was deleted.

pkg/datasource/sql/undo/base/undo.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -223,8 +223,7 @@ func (m *BaseUndoLogManager) FlushUndoLog(tranCtx *types.TransactionContext, con
223223

224224
parseContext := make(map[string]string, 0)
225225
parseContext[serializerKey] = "json"
226-
// Todo use config
227-
parseContext[compressorTypeKey] = compressor.CompressorNone.String()
226+
parseContext[compressorTypeKey] = undo.UndoConfig.CompressConfig.Type
228227
undoLogContent := m.encodeUndoLogCtx(parseContext)
229228
rollbackInfo, err := m.serializeBranchUndoLog(&branchUndoLog, parseContext[serializerKey])
230229
if err != nil {
@@ -379,7 +378,7 @@ func (m *BaseUndoLogManager) insertUndoLogWithGlobalFinished(ctx context.Context
379378
// todo use config to replace
380379
parseContext := make(map[string]string, 0)
381380
parseContext[serializerKey] = "json"
382-
parseContext[compressorTypeKey] = compressor.CompressorNone.String()
381+
parseContext[compressorTypeKey] = undo.UndoConfig.CompressConfig.Type
383382
undoLogContent := m.encodeUndoLogCtx(parseContext)
384383

385384
logParse, err := parser.GetCache().Load(parseContext[serializerKey])
@@ -495,7 +494,7 @@ func (m *BaseUndoLogManager) getRollbackInfo(rollbackInfo []byte, undoContext ma
495494
res := rollbackInfo
496495
// get compress type
497496
if v, ok := undoContext[compressorTypeKey]; ok {
498-
res, err = compressor.GetByName(v).GetCompressor().Decompress(rollbackInfo)
497+
res, err = compressor.CompressorType(v).GetCompressor().Decompress(rollbackInfo)
499498
if err != nil {
500499
log.Errorf("[getRollbackInfo] decompress fail, err: %+v", err)
501500
return nil, err

pkg/datasource/sql/undo/config.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ package undo
1919

2020
import (
2121
"flag"
22+
23+
"github.com/seata/seata-go/pkg/compressor"
2224
)
2325

2426
var (
@@ -52,7 +54,6 @@ func (u *Config) RegisterFlagsWithPrefix(prefix string, f *flag.FlagSet) {
5254
}
5355

5456
func (c *CompressConfig) RegisterFlagsWithPrefix(prefix string, f *flag.FlagSet) {
55-
f.BoolVar(&c.Enable, prefix+".enable", true, "Whether compression is required.")
56-
f.StringVar(&c.Type, prefix+".type", "zip", "Compression type")
57+
f.StringVar(&c.Type, prefix+".type", string(compressor.CompressorNone), "Compression type")
5758
f.StringVar(&c.Threshold, prefix+".threshold", "64k", "Compression threshold")
5859
}

0 commit comments

Comments
 (0)