+1 separate repo. I think in-tree only works if you're *not* supporting
multiple versions and each sidecar release is directly tied to a
corresponding C* release. Considering this case is also completely
achievable in a separate repo anyway with minimal overhead we may as well
start that way and see where it goes.

On 24 August 2018 at 17:33, Sam Tunnicliffe <s...@beobal.com> wrote:

> +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