From ed213c9fc14b04ec88a2a0dd4761b63d5d7c5be7 Mon Sep 17 00:00:00 2001 From: Ruihang Xia Date: Tue, 8 Aug 2023 10:48:25 +0800 Subject: [PATCH 1/2] feat: add datanode prefix to datanode's data home Signed-off-by: Ruihang Xia --- pkg/deployer/baremetal/component/datanode.go | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/pkg/deployer/baremetal/component/datanode.go b/pkg/deployer/baremetal/component/datanode.go index 1468083a..848bf6b2 100644 --- a/pkg/deployer/baremetal/component/datanode.go +++ b/pkg/deployer/baremetal/component/datanode.go @@ -54,15 +54,16 @@ func newDataNodes(config *config.Datanode, metaSrvAddr string, workDirs WorkDirs } func (d *datanode) Start(ctx context.Context, binary string) error { - dataHome := path.Join(d.workDirs.DataDir, "home") - if err := fileutils.CreateDirIfNotExists(dataHome); err != nil { - return err - } - d.dataHome = dataHome for i := 0; i < d.config.Replicas; i++ { dirName := fmt.Sprintf("datanode.%d", i) + dataHome := path.Join(d.workDirs.DataDir, dirName, "home") + if err := fileutils.CreateDirIfNotExists(dataHome); err != nil { + return err + } + d.dataHome = dataHome + datanodeLogDir := path.Join(d.workDirs.LogsDir, dirName) if err := fileutils.CreateDirIfNotExists(datanodeLogDir); err != nil { return err From 140ae9ece8e1247c0b40dbd49810498b101a025b Mon Sep 17 00:00:00 2001 From: Ruihang Xia Date: Tue, 8 Aug 2023 11:24:14 +0800 Subject: [PATCH 2/2] change dataHome to a vec Signed-off-by: Ruihang Xia --- pkg/deployer/baremetal/component/datanode.go | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/pkg/deployer/baremetal/component/datanode.go b/pkg/deployer/baremetal/component/datanode.go index 848bf6b2..eb1d0f0f 100644 --- a/pkg/deployer/baremetal/component/datanode.go +++ b/pkg/deployer/baremetal/component/datanode.go @@ -37,7 +37,7 @@ type datanode struct { wg *sync.WaitGroup logger logger.Logger - dataHome string + dataHome []string dataNodeLogDirs []string dataNodePidDirs []string dataNodeDataDirs []string @@ -62,7 +62,7 @@ func (d *datanode) Start(ctx context.Context, binary string) error { if err := fileutils.CreateDirIfNotExists(dataHome); err != nil { return err } - d.dataHome = dataHome + d.dataHome = append(d.dataHome, dataHome) datanodeLogDir := path.Join(d.workDirs.LogsDir, dirName) if err := fileutils.CreateDirIfNotExists(datanodeLogDir); err != nil { @@ -82,7 +82,7 @@ func (d *datanode) Start(ctx context.Context, binary string) error { } d.dataNodeDataDirs = append(d.dataNodeDataDirs, path.Join(d.workDirs.DataDir, dirName)) - if err := runBinary(ctx, binary, d.BuildArgs(ctx, i, walDir), datanodeLogDir, datanodePidDir, d.wg, d.logger); err != nil { + if err := runBinary(ctx, binary, d.BuildArgs(ctx, i, walDir, dataHome), datanodeLogDir, datanodePidDir, d.wg, d.logger); err != nil { return err } } @@ -112,7 +112,7 @@ func (d *datanode) BuildArgs(ctx context.Context, params ...interface{}) []strin logLevel = "info" } - nodeID_, walDir := params[0], params[1] + nodeID_, walDir, dataHome := params[0], params[1], params[2] nodeID := nodeID_.(int) args := []string{ @@ -122,7 +122,7 @@ func (d *datanode) BuildArgs(ctx context.Context, params ...interface{}) []strin fmt.Sprintf("--metasrv-addr=%s", d.metaSrvAddr), fmt.Sprintf("--rpc-addr=%s", generateDatanodeAddr(d.config.RPCAddr, nodeID)), fmt.Sprintf("--http-addr=%s", generateDatanodeAddr(d.config.HTTPAddr, nodeID)), - fmt.Sprintf("--data-home=%s", d.dataHome), + fmt.Sprintf("--data-home=%s", dataHome), fmt.Sprintf("--wal-dir=%s", walDir), } return args @@ -156,8 +156,10 @@ func (d *datanode) IsRunning(ctx context.Context) bool { } func (d *datanode) Delete(ctx context.Context) error { - if err := fileutils.DeleteDirIfExists(d.dataHome); err != nil { - return err + for _, dir := range d.dataHome { + if err := fileutils.DeleteDirIfExists(dir); err != nil { + return err + } } for _, dir := range d.dataNodeLogDirs {