Please please please ping the list and ask if anyone has big commits ready to 
merge before actually committing any huge automated refactors - people who may 
be sitting on big patches will thank you if they don’t have to rebase against 
huge IntelliJ refactors . 

-- 
Jeff Jirsa


> On Mar 21, 2018, at 5:49 PM, Jeremiah D Jordan <jeremiah.jor...@gmail.com> 
> wrote:
> 
> +1 if you are willing to take it on.  As the person who performed the 
> Table->Keyspace rename of 2.0, I say good luck!  From hindsight of doing 
> that, as others suggested, I would come at this in multiple tickets.
> I would suggest a simple class rename with intellij refactoring tools or 
> something as the first ticket.  This is going to touch the most files at 
> once, but will be mechanical, and for the most part if it compiles it was 
> right :).
> After you have done that you can take on other renaming of things with a 
> smaller scope.
> Also as others have said the main things to be wary of are the naming of 
> things in JMX metrics.  Ideally we would keep around deprecated aliases of 
> the old JMX names for a release before removing them.  The other thing is to 
> watch out for class names in byte man scripts in dtest.
> 
> -Jeremiah
> 
>> On Mar 21, 2018, at 4:48 AM, Sylvain Lebresne <lebre...@gmail.com> wrote:
>> 
>> I really don't think anyone has been recently against such renaming, and in
>> fact, a _lot_ of renaming *has* already happen over time. The problem, as
>> you carefully noted, is that it's such a big task that there is still a lot
>> to do. Anyway, I've yet to see a patch renaming things to match the CQL
>> naming scheme be rejected, so I'd personally encourage such submission. But
>> maybe with a few caveats (already mentioned largely, so repeating here to
>> signify my personal agreement with them):
>> - renaming with large surface area can be painful for ongoing patches or
>> even future merge. That's not a reason for not doing them, but that's imo a
>> good enough reason to do things incrementally/in as-small-as-reasonable
>> steps. Making sure a renaming commit only does renaming and doesn't change
>> the logic is also pretty nice when you rebase such things.
>> - breaking hundreds of tests is obviously not ok :)
>> - pure code renaming is one reasonably simple aspect, but quite a few
>> renaming may have user visible impact. Particularly around JMX where many
>> things are name based on their class, and to a lesser extend some of our
>> tools still use "old" naming. We can't and shouldn't ignore those impact:
>> such user visible changes should imo be documented, and we should make sure
>> we have a reasonably painless (and thus incremental) upgrade path. My hunch
>> is the latter isn't as simple as it seems.
>> 
>> 
>> --
>> Sylvain
>> 
>> 
>>> On Wed, Mar 21, 2018 at 9:06 AM kurt greaves <k...@instaclustr.com> wrote:
>>> 
>>> As someone who came to the codebase post CQL but prior to thrift being
>>> removed, +1 to refactor. The current mixing of terminology is a complete
>>> nightmare. This would also give a good opportunity document a lot of code
>>> that simply isn't documented (or incorrect). I'd say it's worth doing it in
>>> multiple steps though, such as refactor of a single class at a time, then
>>> followed by refactor of variable names. We've already done one pretty big
>>> refactor (InetAddressAndPort) for 4.0, I don't see how a few more could
>>> make it any worse (lol).
>>> 
>>> Row vs partition vs key vs PK is killing me
>>> 
>>>> On 20 March 2018 at 22:04, Jon Haddad <j...@jonhaddad.com> wrote:
>>>> 
>>>> Whenever I hop around in the codebase, one thing that always manages to
>>>> slow me down is needing to understand the context of the variable names
>>>> that I’m looking at.  We’ve now removed thrift the transport, but the
>>>> variables, classes and comments still remain.  Personally, I’d like to go
>>>> in and pay off as much technical debt as possible by refactoring the code
>>>> to be as close to CQL as possible.  Rows should be rows, not partitions,
>>>> I’d love to see the term column family removed forever in favor of always
>>>> using tables.  That said, it’s a big task.  I did a quick refactor in a
>>>> branch, simply changing the ColumnFamilyStore class to TableStore, and
>>>> pushed it up to GitHub. [1]
>>>> 
>>>> Didn’t click on the link?  That’s ok.  The TL;DR is that it’s almost 2K
>>>> LOC changed across 275 files.  I’ll note that my branch doesn’t change
>>> any
>>>> of the almost 1000 search results of “columnfamilystore” found in the
>>>> codebase and hundreds of tests failed on my branch in CircleCI, so that
>>> 2K
>>>> LOC change would probably be quite a bit bigger.  There is, of course, a
>>>> lot more than just renaming this one class, there’s thousands of variable
>>>> names using any manner of “cf”, “cfs”, “columnfamily”, names plus
>>> comments
>>>> and who knows what else.  There’s lots of references in probably every
>>> file
>>>> that would have to get updated.
>>>> 
>>>> What are people’s thoughts on this?  We should be honest with ourselves
>>>> and know this isn’t going to get any easier over time.  It’s only going
>>> to
>>>> get more confusing for new people to the project, and having to figure
>>> out
>>>> “what kind of row am i even looking at” is a waste of time.  There’s
>>>> obviously a much bigger impact than just renaming a bunch of files,
>>> there’s
>>>> any number of patches and branches that would become outdated, plus
>>> anyone
>>>> pulling in Cassandra as a dependency would be affected.  I don’t really
>>>> have a solution for the disruption other than “leave it in place”, but in
>>>> my mind that’s not a great (or even good) solution.
>>>> 
>>>> Anyways, enough out of me.  My concern for ergonomics and naming might be
>>>> significantly higher than the rest of the folks working in the code, and
>>> I
>>>> wanted to put a feeler out there before I decided to dig into this in a
>>>> more serious manner.
>>>> 
>>>> Jon
>>>> 
>>>> [1]
>>>> 
>>> https://github.com/apache/cassandra/compare/trunk...rustyrazorblade:refactor_column_family_store?expand=1
>>>> <
>>>> 
>>> https://github.com/apache/cassandra/compare/trunk...rustyrazorblade:refactor_column_family_store?expand=1
>>>>> 
>>> 
> 
> 
> ---------------------------------------------------------------------
> 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

Reply via email to