+1 for a separate repo

On Fri, 24 Aug 2018 at 06:40, Michael Shuler <mich...@pbandjelly.org> wrote:

> +1 for a separate repository.
>
> Michael
>
> On 08/23/2018 07:30 PM, Murukesh Mohanan wrote:
> > FWIW, I think it's possible to merge in a separate repository into a
> > subdirectory while keeping git history, but I don't know if the other way
> > will be possible if commits span other parts of the repo as well\* (which
> > will likely happen sooner or later). So a separate repo is a choice we
> can
> > backtrack from if it proves problematic later.
> >
> >
> > \* it may be possible, but the commit messages might not make much sense
> > after that.
> >
> > On Fri, 24 Aug 2018, 09:12 Benedict Elliott Smith, <bened...@apache.org>
> > wrote:
> >
> >> +1 also for separate repo
> >>
> >>> On 24 Aug 2018, at 01:11, Jeff Jirsa <jji...@gmail.com> wrote:
> >>>
> >>> +1 for separate repo
> >>>
> >>>
> >>> --
> >>> Jeff Jirsa
> >>>
> >>>
> >>>> On Aug 23, 2018, at 1:00 PM, sankalp kohli <kohlisank...@gmail.com>
> >> wrote:
> >>>>
> >>>> Separate repo is in a majority so far. Please reply to this thread
> with
> >>>> your responses.
> >>>>
> >>>> On Tue, Aug 21, 2018 at 4:34 PM Rahul Singh <
> >> rahul.xavier.si...@gmail.com>
> >>>> wrote:
> >>>>
> >>>>> +1 for separate repo. Especially on git. Maybe make it a submodule.
> >>>>>
> >>>>> Rahul
> >>>>> On Aug 21, 2018, 3:33 PM -0500, Stefan Podkowinski <s...@apache.org
> >,
> >>>>> wrote:
> >>>>>> I'm also currently -1 on the in-tree option.
> >>>>>>
> >>>>>> Additionally to what Aleksey mentioned, I also don't see how we
> could
> >>>>>> make this work with the current build and release process. Our
> scripts
> >>>>>> [0] for creating releases (tarballs and native packages), would need
> >>>>>> significant work to add support for an independent side-car. Our ant
> >>>>>> based build process is also not a great start for adding new tasks,
> >> let
> >>>>>> alone integrating other tool chains for web components for a
> potential
> >>>>> UI.
> >>>>>>
> >>>>>> [0] https://git-wip-us.apache.org/repos/asf?p=cassandra-builds.git
> >>>>>>
> >>>>>>
> >>>>>>> On 21.08.18 19:20, Aleksey Yeshchenko wrote:
> >>>>>>> Sure, allow me to elaborate - at least a little bit. But before I
> do,
> >>>>> just let me note that this wasn’t a veto -1, just a shorthand for “I
> >> don’t
> >>>>> like this option”.
> >>>>>>>
> >>>>>>> It would be nice to have sidecar and C* version and release cycles
> >>>>> fully decoupled. I know it *can* be done when in-tree, but the way we
> >> vote
> >>>>> on releases with tags off current branches would have to change
> >> somehow.
> >>>>> Probably painfully. It would be nice to be able to easily enforce
> >> freezes,
> >>>>> like the upcoming one, on the whole C* repo, while allowing feature
> >>>>> development on the sidecar. It would be nice to not have sidecar
> >> commits in
> >>>>> emails from commits@ mailing list. It would be nice to not have C*
> CI
> >>>>> trigger necessarily on sidecar commits. Groups of people working on
> >> the two
> >>>>> repos will mostly be different too, so what’s the point in sharing
> the
> >> repo?
> >>>>>>>
> >>>>>>> Having an extra repo with its own set of branches is cheap and
> easy -
> >>>>> we already do that with dtests. I like cleanly separated things when
> >>>>> coupling is avoidable. As such I would prefer the sidecar to live in
> a
> >>>>> separate new repo, while still being part of the C* project.
> >>>>>>>
> >>>>>>> —
> >>>>>>> AY
> >>>>>>>
> >>>>>>> On 21 August 2018 at 17:06:39, sankalp kohli (
> kohlisank...@gmail.com
> >> )
> >>>>> wrote:
> >>>>>>>
> >>>>>>> Hi Aleksey,
> >>>>>>> Can you please elaborate on the reasons for your -1? This
> >>>>>>> way we can make progress towards any one approach.
> >>>>>>> Thanks,
> >>>>>>> Sankalp
> >>>>>>>
> >>>>>>> On Tue, Aug 21, 2018 at 8:39 AM Aleksey Yeshchenko <
> >> alek...@apple.com>
> >>>>>>> wrote:
> >>>>>>>
> >>>>>>>> FWIW I’m strongly -1 on in-tree approach, and would much prefer a
> >>>>> separate
> >>>>>>>> repo, dtest-style.
> >>>>>>>>
> >>>>>>>> —
> >>>>>>>> AY
> >>>>>>>>
> >>>>>>>> On 21 August 2018 at 16:36:02, Jeremiah D Jordan (
> >>>>>>>> jeremiah.jor...@gmail.com) wrote:
> >>>>>>>>
> >>>>>>>> I think the following is a very big plus of it being in tree:
> >>>>>>>>>> * Faster iteration speed in general. For example when we need to
> >>>>> add a
> >>>>>>>>>> new
> >>>>>>>>>> JMX endpoint that the sidecar needs, or change something from
> >>>>> JMX to a
> >>>>>>>>>> virtual table (e.g. for repair, or monitoring) we can do all
> >>>>> changes
> >>>>>>>>>> including tests as one commit within the main repository and
> >>>>> don't
> >>>>>>>> have
> >>>>>>>>>> to
> >>>>>>>>>> commit to main repo, sidecar repo,
> >>>>>>>>
> >>>>>>>> I also don’t see a reason why the sidecar being in tree means it
> >>>>> would not
> >>>>>>>> work in a mixed version cluster. The nodes themselves must work
> in a
> >>>>> mixed
> >>>>>>>> version cluster during a rolling upgrade, I would expect any
> >>>>> management
> >>>>>>>> side car to operate in the same manor, in tree or not.
> >>>>>>>>
> >>>>>>>> This tool will be pretty tightly coupled with the server, and as
> >>>>> someone
> >>>>>>>> with experience developing such tightly coupled tools, it is
> *much*
> >>>>> easier
> >>>>>>>> to make sure you don’t accidentally break them if they are in
> tree.
> >>>>> How
> >>>>>>>> many times has someone updated some JMX interface, updated
> nodetool,
> >>>>> and
> >>>>>>>> then moved on? Breaking all the external tools not in tree,
> without
> >>>>>>>> realizing it. The above point about being able to modify
> interfaces
> >>>>> and the
> >>>>>>>> side car in the same commit is huge in terms of making sure
> someone
> >>>>> doesn’t
> >>>>>>>> inadvertently break the side car while fixing something else.
> >>>>>>>>
> >>>>>>>> -Jeremiah
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>> On Aug 21, 2018, at 10:28 AM, Jonathan Haddad <j...@jonhaddad.com
> >
> >>>>>>>> wrote:
> >>>>>>>>>
> >>>>>>>>> Strongly agree with Blake. In my mind supporting multiple
> versions
> >>>>> is
> >>>>>>>>> mandatory. As I've stated before, we already do it with Reaper,
> I'd
> >>>>>>>>> consider it a major misstep if we couldn't support multiple with
> >>>>> the
> >>>>>>>>> project - provided admin tool. It's the same reason dtests are
> >>>>> separate
> >>>>>>>> -
> >>>>>>>>> they work with multiple versions.
> >>>>>>>>>
> >>>>>>>>> The number of repos does not affect distribution - if we want to
> >>>>> ship
> >>>>>>>>> Cassandra with the admin / repair tool (we should, imo), that can
> >>>>> be
> >>>>>>>> part
> >>>>>>>>> of the build process.
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> On Mon, Aug 20, 2018 at 9:21 PM Blake Eggleston <
> >>>>> beggles...@apple.com>
> >>>>>>>>> wrote:
> >>>>>>>>>
> >>>>>>>>>> If the sidecar is going to be on a different release cadence, or
> >>>>>>>> support
> >>>>>>>>>> interacting with mixed mode clusters, then it should definitely
> >>>>> be in
> >>>>>>>> a
> >>>>>>>>>> separate repo. I don’t even know how branching and merging would
> >>>>> work
> >>>>>>>> in a
> >>>>>>>>>> repo that supports 2 separate release targets and/or mixed mode
> >>>>>>>>>> compatibility, but I’m pretty sure it would be a mess.
> >>>>>>>>>>
> >>>>>>>>>> As a cluster management tool, mixed mode is probably going to be
> >>>>> a goal
> >>>>>>>> at
> >>>>>>>>>> some point. As a new project, it will benefit from not being
> >>>>> tied to
> >>>>>>>> the C*
> >>>>>>>>>> release cycle (which would probably delay any sidecar release
> >>>>> until
> >>>>>>>>>> whenever 4.1 is cut).
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> On August 20, 2018 at 3:22:54 PM, Joseph Lynch (
> >>>>> joe.e.ly...@gmail.com)
> >>>>>>>>
> >>>>>>>>>> wrote:
> >>>>>>>>>>
> >>>>>>>>>> I think that the pros of incubating the sidecar in tree as a
> tool
> >>>>>>>> first
> >>>>>>>>>> outweigh the alternatives at this point of time. Rough tradeoffs
> >>>>> that
> >>>>>>>> I
> >>>>>>>>>> see:
> >>>>>>>>>>
> >>>>>>>>>> Unique pros of in tree sidecar:
> >>>>>>>>>> * Faster iteration speed in general. For example when we need to
> >>>>> add a
> >>>>>>>>>> new
> >>>>>>>>>> JMX endpoint that the sidecar needs, or change something from
> >>>>> JMX to a
> >>>>>>>>>> virtual table (e.g. for repair, or monitoring) we can do all
> >>>>> changes
> >>>>>>>>>> including tests as one commit within the main repository and
> >>>>> don't
> >>>>>>>> have
> >>>>>>>>>> to
> >>>>>>>>>> commit to main repo, sidecar repo, and dtest repo (juggling
> >>>>> version
> >>>>>>>>>> compatibility along the way).
> >>>>>>>>>> * We can in the future more easily move serious background
> >>>>>>>> functionality
> >>>>>>>>>> like compaction or repair itself (not repair scheduling, actual
> >>>>>>>>>> repairing)
> >>>>>>>>>> into the sidecar with a single atomic commit, we don't have to
> >>>>> do two
> >>>>>>>>>> phase
> >>>>>>>>>> commits where we add some IPC mechanism to allow us to support
> >>>>> it in
> >>>>>>>>>> both,
> >>>>>>>>>> then turn it on in the sidecar, then turn it off in the server,
> >>>>> etc...
> >>>>>>>>>> * I think that the verification is much easier (sounds like
> >>>>> Jonathan
> >>>>>>>>>> disagreed on the other thread, I could certainly be wrong), and
> >>>>> we
> >>>>>>>> don't
> >>>>>>>>>> have to worry about testing matrices to assure that the sidecar
> >>>>> works
> >>>>>>>>>> with
> >>>>>>>>>> various versions as the version of the sidecar that is released
> >>>>> with
> >>>>>>>> that
> >>>>>>>>>> version of Cassandra is the only one we have to certify works.
> If
> >>>>>>>> people
> >>>>>>>>>> want to pull in new versions or maintain backports they can do
> >>>>> that at
> >>>>>>>>>> their discretion/testing.
> >>>>>>>>>> * We can iterate and prove value before committing to a choice.
> >>>>> Since
> >>>>>>>> it
> >>>>>>>>>> will be a separate artifact from the start we can always move
> the
> >>>>>>>>>> artifact
> >>>>>>>>>> to a separate repo later (but moving the other way is harder).
> >>>>>>>>>> * Users will get the sidecar "for free" when they install the
> >>>>> daemon,
> >>>>>>>>>> they
> >>>>>>>>>> don't need to take affirmative action to e.g. be able to restart
> >>>>> their
> >>>>>>>>>> cluster, run repair, or back their data up; it just comes out of
> >>>>> the
> >>>>>>>> box
> >>>>>>>>>> for free.
> >>>>>>>>>>
> >>>>>>>>>> Unique pros of a separate repository sidecar:
> >>>>>>>>>> * We can use a more modern build system like gradle instead of
> >>>>> ant
> >>>>>>>>>> * Merging changes is less "scary" I guess (I feel like if you're
> >>>>> not
> >>>>>>>>>> touching the daemon this is already true but I could see this
> >>>>> being
> >>>>>>>> less
> >>>>>>>>>> worrisome for some).
> >>>>>>>>>> * Releasing a separate artifact is somewhat easier from a
> >>>>> separate
> >>>>>>>> repo
> >>>>>>>>>> (especially if we have gradle which makes e.g. building debs and
> >>>>> rpms
> >>>>>>>>>> trivial).
> >>>>>>>>>> * We could backport to previous versions without getting into
> >>>>>>>> arguments
> >>>>>>>>>> about bug fixes vs features.
> >>>>>>>>>> * Committers could be different from the main repo, which ...
> >>>>> may be a
> >>>>>>>>>> useful thing
> >>>>>>>>>>
> >>>>>>>>>> Non unique pros of a sidecar (could be achieved in the main repo
> >>>>> or in
> >>>>>>>> a
> >>>>>>>>>> separate repo):
> >>>>>>>>>> * A separate build artifact .jar/.deb/.rpm that can be installed
> >>>>>>>>>> separately. It's slightly easier with a separate repo but
> >>>>> certainly
> >>>>>>>> not
> >>>>>>>>>> out
> >>>>>>>>>> of reach within a single repo (indeed the current patch already
> >>>>> creates
> >>>>>>>> a
> >>>>>>>>>> separate jar, and we could create a separate .deb reasonably
> >>>>> easily).
> >>>>>>>>>> Personally I think having a separate .deb/.rpm is premature at
> >>>>> this
> >>>>>>>> point
> >>>>>>>>>> (for companies that really want it they can build their own
> >>>>> packages
> >>>>>>>>>> using
> >>>>>>>>>> the .jars), but I think it really is a distracting issue from
> >>>>> where
> >>>>>>>> the
> >>>>>>>>>> patch should go as we can always choose to remove experimental
> >>>>> .jar
> >>>>>>>> files
> >>>>>>>>>> that the main daemon doesn't touch.
> >>>>>>>>>> * A separate process lifecycle. No matter where the sidecar
> >>>>> goes, we
> >>>>>>>> get
> >>>>>>>>>> the benefit of restarting it being less dangerous for
> >>>>> availability
> >>>>>>>> than
> >>>>>>>>>> restarting the main daemon.
> >>>>>>>>>>
> >>>>>>>>>> That all being said, these are strong opinions weakly held and I
> >>>>> would
> >>>>>>>>>> rather get something actually committed so that we can prove
> >>>>> value one
> >>>>>>>>>> way
> >>>>>>>>>> or the other and am therefore, of course, happy to put sidecar
> >>>>> patches
> >>>>>>>>>> wherever someone can review and commit it.
> >>>>>>>>>>
> >>>>>>>>>> -Joey
> >>>>>>>>>>
> >>>>>>>>>> On Mon, Aug 20, 2018 at 1:52 PM sankalp kohli <
> >>>>> kohlisank...@gmail.com>
> >>>>>>>>
> >>>>>>>>>> wrote:
> >>>>>>>>>>
> >>>>>>>>>>> Hi,
> >>>>>>>>>>> I am starting a new thread to get consensus on where the side
> >>>>> car
> >>>>>>>>>>> should be contributed.
> >>>>>>>>>>>
> >>>>>>>>>>> Please send your responses with pro/cons of each approach or
> >>>>> any
> >>>>>>>> other
> >>>>>>>>>>> approach. Please be clear which approach you will pick while
> >>>>> still
> >>>>>>>>>> giving
> >>>>>>>>>>> pros/cons of both approaches.
> >>>>>>>>>>>
> >>>>>>>>>>> Thanks.
> >>>>>>>>>>> Sankalp
> >>>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> --
> >>>>>>>>> Jon Haddad
> >>>>>>>>> http://www.rustyrazorblade.com
> >>>>>>>>> twitter: rustyrazorblade
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >> ---------------------------------------------------------------------
> >>>>>>>> To unsubscribe, e-mail: dev-unsubscr...@cassandra.apache.org
> >>>>>>>> For additional commands, e-mail: dev-h...@cassandra.apache.org
> >>>>>>>>
> >>>>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> ---------------------------------------------------------------------
> >>>>>> To unsubscribe, e-mail: dev-unsubscr...@cassandra.apache.org
> >>>>>> For additional commands, e-mail: dev-h...@cassandra.apache.org
> >>>>>>
> >>>>>
> >>>
> >>> ---------------------------------------------------------------------
> >>> To unsubscribe, e-mail: dev-unsubscr...@cassandra.apache.org
> >>> For additional commands, e-mail: dev-h...@cassandra.apache.org
> >>>
> >>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: dev-unsubscr...@cassandra.apache.org
> >> For additional commands, e-mail: dev-h...@cassandra.apache.org
> >>
> >> --
> >
> > Muru
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@cassandra.apache.org
> For additional commands, e-mail: dev-h...@cassandra.apache.org
>
>

Reply via email to