Shall we use Golang to manage the cluster? #889
-
DescriptionAs we are working on cherry-picking commits from the GPDB project, I came across the commit greenplum-db/gpdb-archive@0801058 here, which marks the beginning of using Golang as the cluster management tool instead of Python. As far as I know, the GPDB's cluster-tool team has been working on this replacement for some time, and this commit represents the initial steps. This commit is the last 170th commit—yes, we'r close to finish the most cherry-pick work. The core question is: Use case/motivationNo response Related issuesNo response Are you willing to submit a PR?
|
Beta Was this translation helpful? Give feedback.
Replies: 6 comments 6 replies
-
|
I would vote no. I've had to go in an modify the code a couple of times in an running cluster to get segment recovery to work. Being able to make required changes and not have to have a full source to rebuild from I think out weighs any benefit. Which comes to the question of what was the benefit of switching to go? This process is not something that really gets used in day to day work. |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
|
since gpdb not opensource anymore , so golang dependent components also closed. import (
"context"
"reflect"
"strings"
"testing"
"github.com/greenplum-db/gp-common-go-libs/testhelper"
"github.com/greenplum-db/gpdb/gp/agent"
"github.com/greenplum-db/gpdb/gp/idl"
"github.com/greenplum-db/gpdb/gp/testutils/exectest"
"github.com/greenplum-db/gpdb/gp/utils"
)that's key point not to pick. |
Beta Was this translation helpful? Give feedback.
-
|
I do not recommend cherry pick go language commits. One reason is that greenplum has closed source, and we cannot obtain later fixes and updates unless we rely on ourselves to implement them. |
Beta Was this translation helpful? Give feedback.
-
|
Given the feedback, we skip the commits which use Golang as cluster management tool for now. |
Beta Was this translation helpful? Give feedback.
-
|
There was going to be a move to golang for the greenplum utilities, and there had been a significant amount of work put into that effort. The issue in front of us at the time was lots of conflict with the environment in the python tools and an aging code base. We could remove some of the dependency and conflicts we had and get a more energetic set of developers if we went with Go at Pivotal. A reimplementation in Python was heavily considered but moved off the board by consensus of the developers that were working on the management utilities at the time. |
Beta Was this translation helpful? Give feedback.
Given the feedback, we skip the commits which use Golang as cluster management tool for now.