Re: Supporting multiple JDKs

2018-08-22 Thread Mick Semb Wever


What do we mean "support multiple JDKs" ?
Are we talking Run-time or Compile-time? 


> If we support multiple JDKs, at a minimum we should compile code against 
> those JDKs. 


Why? I really don't get that logic.

There's a cost-optimisation here in reducing what we have to support.

If we support compiling with multiple JDKs and running with multiple JDKs, then 
we've a matrix of things to test. And it's kinda odd i think, when we don't 
need to compile against multiple JDKs and don't distribute releases built on 
different JDKs.

The suggestion to use the AnimalSniffer ant task was a way to simply this.

That is, so we can 
 - only build with one JDK (the same we build releases with),
 - run unit tests only against that JDK,
 - run dtests against multiple JDKs.

Ensuring at compile-time that earlier JDKs are supported at run-time then is 
done using the AnimalSniffer ant task. It doesn't just simply the testing 
matrix, but provides a quick feedback loop to the developer when they 
accidentally code against a java api that's not available in the older JDK.

There's also two contexts here: Cassandra-2.2 (jdks 1.7 and 1.8) and 
Cassandra-4.0 (jdks 1.8 and 11).
I don't know if it's possible, but it would be awesome once jdk11 is released 
that it's the only jdk we use to compile Cassandra-4.0+ with.

regards,
Mick

-
To unsubscribe, e-mail: dev-unsubscr...@cassandra.apache.org
For additional commands, e-mail: dev-h...@cassandra.apache.org



Re: JIRAs in Review

2018-08-22 Thread Joseph Lynch
Just want to bump this up if any reviewers have time before the 9/1 window.
I think these are all patch available and ready for review at this point.

Useful improvements for 4.0:
>
> https://issues.apache.org/jira/browse/CASSANDRA-14303 and
> https://issues.apache.org/jira/browse/CASSANDRA-14557 - Makes the user
> interface for creating keyspaces easier to use and less error prone. For
> example "CREATE KEYSPACE foo WITH replication = {'class':
> 'NetworkTopologyStrategy'}" would just do the right thing after both
> patches.
>
> https://issues.apache.org/jira/browse/CASSANDRA-14459 - Limits the
> DynamicEndpointSnitch's use of latent replicas. This should help with slow
> queries on startup and every 10 minutes during DES reset (when the snitch's
> latency data is empty). There is also a riskier potential follow up patch
> which improves the performance of the latency tracking mechanism by ~10x
> and reduces garbage to near zero. I believe that Jason is looking at this.
>
> https://issues.apache.org/jira/browse/CASSANDRA-14297 - Improves the
> startup check functionality to make it so that operators can be more
> confident that they won't throw unavailable or timeouts during node
> restarts. The patch has merge conflicts right now but I was waiting on
> someone to confirm it's worth doing before I spend more time on it.
>


> Minor cleanup patches:
> https://issues.apache.org/jira/browse/CASSANDRA-9452 - Cleanup of some
> old configuration, probably an easy thing to commit.
>

Since then we have a few more:

https://issues.apache.org/jira/browse/CASSANDRA-14358 - Improves the
handling of network partitions, especially those caused by statefull
firewalls (e.g. AWS security groups)
https://issues.apache.org/jira/browse/CASSANDRA-14319 - Doesn't let
nodetool rebuild pass invalid datacenters

Cheers,
-Joey


Re: Supporting multiple JDKs

2018-08-22 Thread dinesh.jo...@yahoo.com.INVALID
I think we should have the ability to build & run unit tests and dtests against 
a specified JDK. If we support multiple JDKs, at a minimum we should compile 
code against those JDKs. It would be ideal if we could run unit tests and 
dtests but given the availability of CircleCI resources that could be time 
consuming.
Dinesh 

On Wednesday, August 22, 2018, 10:12:35 AM PDT, Sumanth Pasupuleti 
 wrote:  
 
 Hi,

The goal of this email is to arrive at a solution (probably resulting in a
few follow-ups) to ensure support for multiple JDKs for different versions
of Cassandra.
This comes out of Jason's comment in
https://issues.apache.org/jira/browse/CASSANDRA-14563.

Below is the proposal. Please provide your thoughts.

C* 2.2
Goal:
Need to support Java7 and Java8.
Current State:
CircleCI workflow to build, run UTs and DTests against Java8 (run by
default)
Proposed State:
* Add CircleCI workflow to build against Java7 (
https://issues.apache.org/jira/browse/CASSANDRA-14625), and optionally run
UTs and DTests against Java7
* Add a tool like AnimalSniffer into build process (proposed by Mick in
https://issues.apache.org/jira/browse/CASSANDRA-14563), so that build would
fail as part of the development process in case of JDK incompatibility.


C* 3.0 and 3.11
Goal:
Support Java8.
Current state:
CircleCI workflow to build, run UTs and DTests against Java8 (run by
default)
Proposed State:
* No change. Same as current.


C* 4.0
Goal:
Support Java8 and Java11.
Current state:
CircleCI workflow to build, run UTs and DTests against Java8 (run by
default)
Proposed State:
* Add CircleCI workflow to build against Java11, and optionally run UTs and
DTests against Java11

Looking forward to any feedback.

Thanks,
Sumanth
  

Supporting multiple JDKs

2018-08-22 Thread Sumanth Pasupuleti
Hi,

The goal of this email is to arrive at a solution (probably resulting in a
few follow-ups) to ensure support for multiple JDKs for different versions
of Cassandra.
This comes out of Jason's comment in
https://issues.apache.org/jira/browse/CASSANDRA-14563.

Below is the proposal. Please provide your thoughts.

C* 2.2
Goal:
Need to support Java7 and Java8.
Current State:
CircleCI workflow to build, run UTs and DTests against Java8 (run by
default)
Proposed State:
* Add CircleCI workflow to build against Java7 (
https://issues.apache.org/jira/browse/CASSANDRA-14625), and optionally run
UTs and DTests against Java7
* Add a tool like AnimalSniffer into build process (proposed by Mick in
https://issues.apache.org/jira/browse/CASSANDRA-14563), so that build would
fail as part of the development process in case of JDK incompatibility.


C* 3.0 and 3.11
Goal:
Support Java8.
Current state:
CircleCI workflow to build, run UTs and DTests against Java8 (run by
default)
Proposed State:
* No change. Same as current.


C* 4.0
Goal:
Support Java8 and Java11.
Current state:
CircleCI workflow to build, run UTs and DTests against Java8 (run by
default)
Proposed State:
* Add CircleCI workflow to build against Java11, and optionally run UTs and
DTests against Java11

Looking forward to any feedback.

Thanks,
Sumanth


Re: JIRAs in Review

2018-08-22 Thread Marcus Olsson
Hi,

Hopefully it's not too late to add to this list.

https://issues.apache.org/jira/browse/CASSANDRA-14096 could use some
reviewing. This issue occurs if you have multiple tables in a keyspace
and perform a full repair. Then you could end up storing alot of
MerkleTrees in memory until the repair is completed.

The applied patch is for 3.0.x, but before creating patches for 4.0 I
thought it might be best to agree on the way forward (two solution
proposals have been provided).

Best Regards
Marcus Olsson

On fre, 2018-07-20 at 15:42 +1000, kurt greaves wrote:
> Cheers Dinesh, not too worried about that one in 4.0's case though as
> it's
> a bug but it will need a committer.
> 
> As for improvements for 4.0:
> https://issues.apache.org/jira/browse/CASSANDRA-13010 - More verbose
> nodetool compactionstats. Speaks for itself.
> https://issues.apache.org/jira/browse/CASSANDRA-10023 - Metrics for
> number
> of local reads/writes. For detecting when you're choosing wrong
> coordinators. Useful for those of us without access to clients.
> https://issues.apache.org/jira/browse/CASSANDRA-10789 - nodetool
> blacklist
> command to stop bad clients. Would be great for the sysadmin toolbox.
> 
> https://issues.apache.org/jira/browse/CASSANDRA-13841 - Smarter
> nodetool
> rebuild. Kind of a bug but would be nice to get it in 4.0 *at least*.
> (I
> probably need to rebase this)
> https://issues.apache.org/jira/browse/CASSANDRA-14309 - Hint window
> persistence. Would be nice to get some thoughts on this.
> https://issues.apache.org/jira/browse/CASSANDRA-12783 - Batchlog
> refactor
> to better support MV's. Been meaning to get back to this one, but
> it's
> pretty much there except needs rebase and a bit more testing. Someone
> else
> to go over it and see if it makes sense would be useful.
> 
> May have traction? but worth keeping an eye on.
> https://issues.apache.org/jira/browse/CASSANDRA-14291 - Nodetool
> command to
> regenerate SSTable components. Mostly important for efficient
> summary/bloomfilter regeneration which doesn't exist apart from using
> upgradesstables. Other than that it's effectively upgradesstables but
> with
> a cleaner interface. Chris has started looking at this but would
> probably
> be nice to make sure it gets in before 4.0 seeing as we have no way
> to
> regenerate bloomfilter/summary without re-writing the entire SSTable
> ATM.
> 
> Other than that hoping to get
> https://issues.apache.org/jira/browse/CASSANDRA-10540 (RangeAwareCS)
> in. On
> Markus' plate ATM but I'm fairly sure its been decently reviewed.
> 
> On 19 July 2018 at 10:07, dinesh.jo...@yahoo.com.INVALID <
> dinesh.jo...@yahoo.com.invalid> wrote:
> 
> > 
> > Kurt was looking at some help with this ticket -
> > https://issues.apache.org/jira/browse/CASSANDRA-14525
> > Dinesh
> > 
> > On Tuesday, July 17, 2018, 12:35:25 PM PDT, sankalp kohli <
> > kohlisank...@gmail.com> wrote:
> > 
> >  Hi,
> > We are 7 weeks away from 4.0 freeze and there are ~150 JIRAs
> > waiting
> > for review. It is hard to know which ones should be prioritized as
> > some of
> > them could be not valid(fixes 2.0 bug), some of them will have the
> > assignee
> > who no longer is active, etc.
> > 
> > If anyone is *not* getting traction on the JIRA to get it reviewed,
> > please
> > use this thread to send your JIRA number and optionally why it is
> > important.
> > 
> > Thanks,
> > Sankalp
> > 
> > 
-
To unsubscribe, e-mail: dev-unsubscr...@cassandra.apache.org
For additional commands, e-mail: dev-h...@cassandra.apache.org