I also like the suggestion to have CI help us here too. 

> On May 7, 2024, at 9:42 AM, Bryan Beaudreault <bbeaudrea...@apache.org> wrote:
> 
> I'm nervous about creating more big long-term divergences between the
> branches. Already I sometimes get caught up on HBaseTestingUtil vs
> HBaseTestingUtility. And we all know the burden of maintaining the old
> HTable impl.
> 
> I'm not sure if this is a useful suggestion since it would require someone
> to do a good deal of work, but I wonder if we could automate backport
> testing a bit. Our yetus checks already check the patch, maybe it could
> apply the patch to branch-2. This would increase the cost of master branch
> PRs but maybe speed us up overall.
> 
>> On Tue, May 7, 2024 at 9:21 AM 张铎(Duo Zhang) <palomino...@gmail.com> wrote:
>> 
>> The problem is that, if we only compile and run tests on JDK11+, the
>> contributors may implicitly use some JDK11+ only features and
>> introduce difference when backporting to branch-2.x.
>> 
>> Maybe a possible policy is that, once a patch should go into
>> branch-2.x too, before mering the master PR, we should make sure the
>> contributor open a PR for branch-2.x too, so we can catch the
>> differences between the 2 PRs, and whether to align them.
>> 
>> WDYT?
>> 
>> Thanks.
>> 
>> Andrew Purtell <apurt...@apache.org> 于2024年5月7日周二 20:20写道:
>>> 
>>> I don’t expect 2.x to wind down for up to several more years. We will be
>>> still using it in production at my employer for a long time and I would
>>> continue my role as RM for 2.x as needed. HBase 3 is great but not GA yet
>>> and then some users will want to wait one to a couple years before
>> adopting
>>> the new major version, especially if migration is not seamless. (We even
>>> faced breaking changes in a minor upgrade from 2.4 to 2.5 that brought
>> down
>>> a cluster during a rolling upgrade, so there should be no expectation of
>> a
>>> seamless upgrade.) My plan is to continue releasing 2.x until, like with
>>> 1.x, the commits to branch-2 essentially stop, or until the PMC stops
>>> allowing release of the candidates.
>>> 
>>> Perhaps we do not need to do a total ban on use of 11 features. We should
>>> allow a case by case discussion. We can minimize their scope and even
>>> potentially offer multiversion support like we do with Unsafe access
>>> utility classes in hbase-thirdparty. There are no planned uses of new 11+
>>> APIs and features now anyhow.
>>> 
>>> 
>>> On Tue, May 7, 2024 at 7:40 AM 张铎(Duo Zhang) <palomino...@gmail.com>
>> wrote:
>>> 
>>>> For me I think Istvan's plan is also acceptable.
>>>> 
>>>> So in conclusion, we should
>>>> 
>>>> 1. Jump to JDK11/JDK17(we could start a new thread to discuss this,
>>>> maybe also on the user mailing list)
>>>> 2. Claim and also make sure 3.x does not work with JDK8
>>>> 3. Introduce a policy to only allow JDK8 features on master and
>>>> branch-3.x for a while(maybe still keep the release version as 8?)
>>>> 
>>>> Any other suggestions?
>>>> 
>>>> Thanks.
>>>> 
>>>> Istvan Toth <st...@cloudera.com.invalid> 于2024年4月30日周二 12:45写道:
>>>>> 
>>>>> Spring is a good argument for JDK17.
>>>>> 
>>>>> Duo's suggestion is a great step forward, firmly stating that JDK8
>> is not
>>>>> officially supported solves most of our expected future CVE problems.
>>>>> 
>>>>> However, I think that ripping off the bandaid, and making sure that
>>>> HBase 3
>>>>> does not work with Java 8 would be better.
>>>>> It's easier to accept such a change in a major version than in a
>> minor
>>>>> version.
>>>>> 
>>>>> IMO users that are so conservative that they are still using Java 8
>> are
>>>>> unlikely to be first movers to a new major release anyway.
>>>>> 
>>>>> I think that the following upgrade path would optimal:
>>>>> 
>>>>> - User stays on (supported) Hbase 2.x until ready to upgrade Java
>>>>> - User upgrades to Java 11/17 with the same HBase
>>>>> - User upgrades to Hbase 3.x
>>>>> 
>>>>> As noted, we will need to support 2.x for some time anyway (just
>> like 1.x
>>>>> was supported for a long time).
>>>>> 
>>>>> As for the backporting issues:
>>>>> We could make it a policy to avoid using Java 11+ features in Hbase
>> code
>>>>> until 2.x supports winds down.
>>>>> This has worked quite well for Phoenix with Java 7 / Java 8.
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> On Tue, Apr 30, 2024 at 3:59 AM 张铎(Duo Zhang) <palomino...@gmail.com
>>> 
>>>> wrote:
>>>>> 
>>>>>> AFAIK spring 6 and spring-boot 3 have jumped to java17 directly,
>> so if
>>>> we
>>>>>> want to upgrade, I also suggest that we jump to java 17 directly.
>>>>>> 
>>>>>> While upgrading to java 17 can reduce our compatibility work on
>>>> branch-3+,
>>>>>> but consider the widely usage for java 8, I think we still need to
>>>> support
>>>>>> branch-2 for several years, then this will increase the
>> compatibility
>>>> work
>>>>>> as the code between branch-3+ and branch-2.x will be more and more
>>>>>> different.
>>>>>> 
>>>>>> So for me, a workable solution is
>>>>>> 
>>>>>> 1. We first claim that branch-3+ will move minimum java support to
>> 11
>>>> or
>>>>>> 17.
>>>>>> 2. Start to move the compilation to java 11 or 17, but still keep
>>>> release
>>>>>> version 8, and still keep the pre commit pipeline to run java 8,
>> 11,
>>>> 17, to
>>>>>> minimum our compatibility work before we have the first 3.0.0
>> release.
>>>>>> 3. Cut branch-3.0 and release 3.0.0, so we have a 3.0.0 release,
>>>> actually
>>>>>> which can still run on java 8, so it will be easier for our users
>> to
>>>>>> upgrade to 3.x and reduce our pressure on maintaining branch-2,
>>>> especially
>>>>>> do not need to back port new features there.
>>>>>> 4. Start to move the release version to 11 or 17 on branch-3+, and
>>>> prepare
>>>>>> for 3.1.0 release, which will be the real 11 or 17 only release.
>>>>>> 
>>>>>> Thanks.
>>>>>> 
>>>>>> Bryan Beaudreault <bbeaudrea...@apache.org>于2024年4月30日 周二02:54写道:
>>>>>> 
>>>>>>> I am a huge +1 for dropping java8.
>>>>>>> 
>>>>>>> One reason I would suggest going to 17 is that it seems so hard
>> to
>>>> change
>>>>>>> these things given our long development cycle on major releases.
>>>> There
>>>>>> are
>>>>>>> some nice language features in 17, but more importantly is that
>> the
>>>>>> initial
>>>>>>> release of java11 was released 6 years ago and java17 released 3
>>>> years.
>>>>>>> Java21 is already released as well. So I could see java17 being
>>>> widely
>>>>>>> available enough that we could jump "in the middle" rather than
>> to
>>>> the
>>>>>>> oldest LTS.
>>>>>>> 
>>>>>>> I will say that we're already running java 21 on all of our
>>>> hbase/hadoop
>>>>>> in
>>>>>>> prod (70 clusters, 7k regionservers). I know not every
>> organization
>>>> can
>>>>>> be
>>>>>>> that aggressive, and I wouldn't suggest jumping to 21 in the
>>>> codebase.
>>>>>> Just
>>>>>>> pointing it out in terms of basic support already existing and
>> being
>>>>>>> stable.
>>>>>>> 
>>>>>>> On Mon, Apr 29, 2024 at 2:33 PM Andrew Purtell <
>>>> andrew.purt...@gmail.com
>>>>>>> 
>>>>>>> wrote:
>>>>>>> 
>>>>>>>> I also agree that mitigation of security problems in
>> dependencies
>>>> will
>>>>>> be
>>>>>>>> increasingly difficult, as we cannot expect our dependencies to
>>>>>> continue
>>>>>>> to
>>>>>>>> support Java 8. They might, but as time goes on it is less
>> likely.
>>>>>>>> 
>>>>>>>> A minimum of Java 11 makes a lot of sense. This is where the
>>>> center of
>>>>>>>> gravity of the Java ecosystem is, probably.
>>>>>>>> 
>>>>>>>> A minimum of 17 is aggressive and I don’t see the point unless
>>>> there
>>>>>> is a
>>>>>>>> feature in 17 that we would like to base an improvement on.
>>>>>>>> 
>>>>>>>>> On Apr 29, 2024, at 1:23 PM, chrajeshbab...@gmail.com wrote:
>>>>>>>>> 
>>>>>>>>> Hi!
>>>>>>>>> 
>>>>>>>>> With 3.0 on the horizon, we could look into bumping the
>> minimum
>>>>>>> required
>>>>>>>>> Java version for HBase.
>>>>>>>>> 
>>>>>>>>> The last discussion I could find was four years ago, when
>>>> dropping
>>>>>> 8.0
>>>>>>>>> support was rejected.
>>>>>>>>> 
>>>>>>>>> 
>> https://lists.apache.org/thread/ph8xry0x37cvjj89fp2jk1k48yb7gs46
>>>>>>>>> 
>>>>>>>>> Now it's four years later, and the end of OpenJDK support for
>>>> Java 8
>>>>>>> and
>>>>>>>> 11
>>>>>>>>> are much closer.
>>>>>>>>> (Oracle public support is so short that I consider that
>>>> irrelevant)
>>>>>>>>> 
>>>>>>>>> Some critical dependencies (like Jetty) have ended even
>> regular
>>>>>>> security
>>>>>>>>> support for Java 8.
>>>>>>>>> 
>>>>>>>>> By supporting Java 8 we are alse limiting ourselves to using
>> an
>>>>>> already
>>>>>>>> 10
>>>>>>>>> year old Java release, ignoring any developments in the
>> language.
>>>>>>>>> 
>>>>>>>>> My take is that with the current dogmatic emphasis on CVE
>>>> mitigation
>>>>>>> the
>>>>>>>>> benefits of bumping the required JDK version outweigh the
>>>> benefits
>>>>>> even
>>>>>>>> for
>>>>>>>>> the legacy install base, especially it's getting harder and
>>>> harder to
>>>>>>> be
>>>>>>>>> CVE free with Java 8.
>>>>>>>>> 
>>>>>>>>> Furthermore, with RedHat dropping JDK11 support this year, I
>>>> think we
>>>>>>>> could
>>>>>>>>> also consider bumping the minimum requirement straight to
>> JDK 17.
>>>>>>>>> 
>>>>>>>>> Hadoop is still on Java 8, but previously it has dropped
>> Java 7
>>>>>> support
>>>>>>>> in
>>>>>>>>> a patch release, and I wouldn't be surprised if it dropped
>> Java
>>>> 8 in
>>>>>> a
>>>>>>>>> similar manner, so I would not put too much stock in that.
>>>>>>>>> 
>>>>>>>>> What do you think ?
>>>>>>>>> 
>>>>>>>>> Thanks,
>>>>>>>>> Rajeshbabu.
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>>> 
>>>>> --
>>>>> *István Tóth* | Sr. Staff Software Engineer
>>>>> *Email*: st...@cloudera.com
>>>>> cloudera.com <https://www.cloudera.com>
>>>>> [image: Cloudera] <https://www.cloudera.com/>
>>>>> [image: Cloudera on Twitter] <https://twitter.com/cloudera> [image:
>>>>> Cloudera on Facebook] <https://www.facebook.com/cloudera> [image:
>>>> Cloudera
>>>>> on LinkedIn] <https://www.linkedin.com/company/cloudera>
>>>>> ------------------------------
>>>>> ------------------------------
>>>> 
>> 

Reply via email to