+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