Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Production fixes #669

Closed
wants to merge 85 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
85 commits
Select commit Hold shift + click to select a range
6c4e7af
Seed changes for Cassandra 3.x [aagrwal]
vinaykumarchella Jun 28, 2017
5e8f943
Merge pull request #565 from vinaykumarchella/3.11
arunagrawal-84 Jun 28, 2017
b65c6fa
javadoc changes
arunagrawal84 Jun 28, 2017
6795759
javadoc changes
arunagrawal84 Jun 28, 2017
7a83be3
javadoc issue
arunagrawal84 Jun 28, 2017
b37f282
Merge pull request #566 from arunagrawal84/3.11
arunagrawal-84 Jun 28, 2017
ada35ca
fix javadoc
arunagrawal84 Jun 28, 2017
e080c5e
fix javadoc issue
arunagrawal84 Jun 28, 2017
205ca99
Merge pull request #567 from arunagrawal84/3.11
arunagrawal-84 Jun 28, 2017
22c5d6f
Move to gradle and gretty
arunagrawal84 Jun 29, 2017
3ef569c
Merge pull request #568 from arunagrawal84/3.11
arunagrawal-84 Jun 29, 2017
06d6c7c
BackupStatusMgr (#2) (#570)
arunagrawal-84 Jul 14, 2017
485299b
Enable cron expression on flush (#572)
arunagrawal-84 Jul 16, 2017
dc3cbc1
Bug fix: resource leak (too many open files) in Cassandra Monitor (#574)
arunagrawal-84 Jul 19, 2017
f03bbec
Remove guava dependency in NewTokenRetriever.
arunagrawal84 Jul 19, 2017
a144033
remove typo
arunagrawal84 Jul 19, 2017
996bc15
Create hints folder for Cassandra 3.x
arunagrawal84 Jul 20, 2017
adffa5d
comments for InstanceIdentity
arunagrawal84 Jul 20, 2017
c092060
Merge pull request #576 from arunagrawal84/3.11
arunagrawal-84 Jul 21, 2017
d04b545
Allow configuration of the size of large partitions that get logged b…
arunagrawal-84 Aug 9, 2017
d483e66
Make sudo usage to start C* configurable.
vinaykumarchella Aug 20, 2017
bc9f239
Merge pull request #583 from vinaykumarchella/3.11
vinaykumarchella Aug 20, 2017
7ced8f6
Adding C* logs directory location to configuration
vinaykumarchella Aug 23, 2017
24875ed
Merge pull request #585 from vinaykumarchella/3.11
vinaykumarchella Aug 23, 2017
a4f4af9
Fixing LogsDir and sudo stop issues
vinaykumarchella Aug 23, 2017
d6a21bb
Merge pull request #587 from vinaykumarchella/3.11
vinaykumarchella Aug 23, 2017
1254e3f
Configuring JVM options for Cassandra using jvm.options
arunagrawal-84 Sep 7, 2017
2731424
Code refactor for backups/restore
arunagrawal-84 Sep 8, 2017
8c36788
update javadoc
arunagrawal84 Sep 8, 2017
0906ac8
Merge pull request #594 from arunagrawal84/3.11
arunagrawal-84 Sep 8, 2017
f570dfe
Remove usage of s3 endpoint. AWS library can auto-detect end-points b…
arunagrawal84 Sep 9, 2017
61f42f3
Add back tuning of jvm.options. This was removed as part of backup re…
arunagrawal84 Sep 13, 2017
ee1a6c2
Merge pull request #595 from arunagrawal84/3.11
arunagrawal-84 Sep 13, 2017
b7ee660
Introduction to the concept of InstanceState. As the first cut, it wi…
arunagrawal-84 Sep 25, 2017
fcccf13
Adding backup status to instance state
arunagrawal84 Sep 27, 2017
959c444
Merge pull request #600 from arunagrawal84/3.11
arunagrawal-84 Oct 1, 2017
2e0525a
Remove duplicated code among restore techniques.
arunagrawal84 Oct 1, 2017
6e8f2a2
Merge pull request #603 from arunagrawal84/3.11
arunagrawal-84 Oct 2, 2017
c6c675c
Restore code refactoring
arunagrawal84 Oct 2, 2017
e0a7326
Merge pull request #605 from arunagrawal84/3.11
arunagrawal-84 Oct 9, 2017
5df4c8a
Restore Refactoring
arunagrawal84 Oct 13, 2017
e71e752
Merge pull request #609 from arunagrawal84/3.11
arunagrawal-84 Oct 17, 2017
548da6b
Fix potential nondeterminism
dtrebbien Oct 19, 2017
387f17b
Make addObserver() final
dtrebbien Oct 19, 2017
a35fede
SLF4J-related fixes against the 3.11 branch (#614)
dtrebbien Oct 29, 2017
de09893
Use S3 Put API instead of multi-part upload for small objects (#620)
arunagrawal-84 Nov 2, 2017
c1fe893
SNS notification service
arunagrawal-84 Nov 13, 2017
9fc8c32
Set broadcast_rpc_address to private ip for COPY functionality to work.
arunagrawal84 Nov 17, 2017
b482ce2
Merge pull request #625 from arunagrawal84/3.11
arunagrawal-84 Nov 20, 2017
ae09e7d
Switch to CopyOnWriteArrayList
dtrebbien Nov 21, 2017
76efb49
Merge pull request #616 from dtrebbien/fix-potential-nondeterminism-3.11
arunagrawal-84 Nov 27, 2017
3176475
Fix bug in backups where files were left on disk
arunagrawal84 Nov 30, 2017
2fb0644
Merge pull request #628 from arunagrawal84/3.11
arunagrawal-84 Nov 30, 2017
4ec8108
Implement Priam auto-remediation of dead Cassandra
jolynch Dec 5, 2017
f16e776
Add test of Cassandra auto-remediation
jolynch Dec 5, 2017
f7f86b6
Only ratelimit when we're restarting cassandra
jolynch Dec 5, 2017
9948b75
Docstring typo and adding changelog
jolynch Dec 6, 2017
528b22a
Merge pull request #630 from jolynch/autostart_cassandra_311
jolynch Dec 6, 2017
3fb6188
update to gradle 4.4
arunagrawal84 Dec 15, 2017
0332977
Merge pull request #634 from arunagrawal84/3.11
arunagrawal-84 Dec 15, 2017
d25d2bf
Do not set shouldCassandraBeAlive from the Health Monitor
jolynch Dec 15, 2017
ce19561
Merge pull request #637 from jolynch/jolynch_autostart_bugfix_311
jolynch Dec 15, 2017
768fb8c
Changelog for 3.11.16
jolynch Dec 15, 2017
46f2286
exluding module with duplicate slf4j binding
zmarois Dec 15, 2017
3ad76cd
Letting backup status location be variable
zmarois Dec 15, 2017
17ef78c
Merge pull request #639 from zmarois/3.11variablebackupstatus
arunagrawal-84 Dec 15, 2017
f318468
Merge pull request #632 from zmarois/3.11slf4jbindings
arunagrawal-84 Dec 15, 2017
2caf9c4
Shutting down quartz
zmarois Dec 1, 2017
7a5c5d6
Merge pull request #643 from zmarois/3.11gracefulquartz
arunagrawal-84 Dec 20, 2017
133337b
Running both sdb clients in the same region
zmarois Nov 10, 2017
d701c6f
Defaulting to us-east-1 for SDB region. Making configurable
zmarois Jan 5, 2018
3c7a072
Merge pull request #647 from zmarois/3.11standardSDBLocation
arunagrawal-84 Jan 6, 2018
2d4ea3b
Enabling auth on jmx port
zmarois Nov 10, 2017
ea804b2
Isolating instance metadata calls
zmarois Jan 7, 2018
8d0a73d
Update README.md
vinaykumarchella Jan 10, 2018
8b359eb
Just use timers to manage auto-remediation instead of the rateLimiter
jolynch Jan 30, 2018
c9aa44f
Merge pull request #658 from jolynch/jolynch_just_use_timers_311
jolynch Feb 1, 2018
88fec6e
Changelog for 3.11.17
jolynch Feb 1, 2018
c8cf4b9
Eliminate assumption that existence of an element in a data structure…
tulumvinh Feb 13, 2018
e3588a0
Merge pull request #660 from tulumvinh/3.11
tulumvinh Feb 13, 2018
28715a6
Merge pull request #652 from zmarois/3.11isolate-instance-metadata
arunagrawal-84 Feb 26, 2018
5113133
Merge pull request #651 from zmarois/3.11jmxauth
arunagrawal-84 Feb 26, 2018
0f3a46a
update dependency
arunagrawal84 Feb 26, 2018
f291f28
Merge pull request #662 from arunagrawal84/3.11
arunagrawal-84 Feb 28, 2018
588e54b
Fixing issues in deployment, including #666, #667 and #668
Glamdring Mar 19, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,44 @@
# Changelog

## 2018/02/01: 3.11.17

### New Features
* (#639) bakup.status is now a variable
* (#647) SDB clients standardized

### Bugs
* (#658) Autostart functionality now uses timers instead of ratelimiters so that
the first autostart does not start until an interval after the first start.
* (#632) Duplicate slf4j bindings excluded
* (#643) Gracefully shut down quartz

## 2017/12/14: 3.11.16

### Bugs
* Gradle 4.4 Support
* Autostart functionality now only sets shouldCassandraBeAlive flag from
the start api to prevent a race against the stop API in the monitoring
thread.

## 2017/12/06: 3.11.15

### Bugs
* None

### New Features
* Priam will now automatically restart Cassandra if it fails. If you use
Priam to stop Cassandra (via the API) it will not automatically restart
Cassandra until a subsequent start via the API. You can control this
via the ``priam.remediate.dead.cassandra.rate`` configuration option. If
negative it disables auto-remediation, if zero it immediately auto-remediates
on any failure, and if a positive integer the auto-remediation waits for
that number of seconds between restarts. The default is 360 seconds
(one hour).

### Breaking Changes
* None

## Previous changelog
1.1
- Support for cassandra 1.1
- Support to publish cassandra metrics (TODO)
Expand Down
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

[![Build Status](https://travis-ci.org/Netflix/Priam.svg?branch=3.x)](https://travis-ci.org/Netflix/Priam)

### Priam 3.11 branch supports Cassandra 3.11.x and 3.11+

Priam is a process/tool that runs alongside Apache Cassandra to automate the following:
- Backup and recovery (Complete and incremental)
- Token management
Expand Down
41 changes: 21 additions & 20 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,41 +1,44 @@
plugins {
id 'nebula.netflixoss' version '3.6.4'
id 'nebula.provided-base' version '3.0.3'
id 'nebula.netflixoss' version '5.0.0'
}

ext.githubProjectName = 'Priam'
ext.githubProjectName = 'Priam-parent'

subprojects {
allprojects {
apply plugin: 'nebula.netflixoss'
apply plugin: 'java'
apply plugin: 'nebula.provided-base'

group = 'com.netflix.priam'

repositories {
jcenter()
}

configurations {
all*.exclude group: 'ch.qos.logback', module: 'logback-classic'
all*.exclude group: 'ch.qos.logback', module: 'logback-core'
}

dependencies {
compile 'org.apache.commons:commons-lang3:3.5'
compile 'commons-logging:commons-logging:1.2'
compile 'org.apache.commons:commons-collections4:4.1'
compile 'commons-io:commons-io:2.5'
compile 'commons-io:commons-io:2.6'
compile 'commons-cli:commons-cli:1.4'
compile 'commons-httpclient:commons-httpclient:3.1'
compile 'com.sun.jersey.contribs:jersey-multipart:1.19.3'
compile 'com.sun.jersey:jersey-json:1.19.3'
compile 'com.sun.jersey.contribs:jersey-multipart:1.19.4'
compile 'com.sun.jersey:jersey-json:1.19.4'
compile 'com.sun.jersey:jersey-bundle:1.19.4'
compile 'com.sun.jersey.contribs:jersey-guice:1.19.4'
compile 'com.google.guava:guava:21.0'
compile 'com.google.code.findbugs:jsr305:3.0.2'
compile 'com.amazonaws:aws-java-sdk:1.11.126'
compile 'com.amazonaws:aws-java-sdk:1.11.264'
compile 'com.google.inject:guice:4.1.0'
compile 'com.sun.jersey:jersey-bundle:1.19.3'
compile 'com.sun.jersey.contribs:jersey-guice:1.19.3'
compile 'com.google.inject.extensions:guice-servlet:4.1.0'
compile 'org.quartz-scheduler:quartz:2.2.3'
compile 'com.googlecode.json-simple:json-simple:1.1.1'
compile 'org.xerial.snappy:snappy-java:1.1.2.6'
compile 'org.yaml:snakeyaml:1.18'
compile 'org.yaml:snakeyaml:1.19'
compile 'org.apache.cassandra:cassandra-all:2.1.17'
compile 'javax.ws.rs:jsr311-api:1.1.1'
compile 'joda-time:joda-time:2.9.9'
Expand All @@ -45,24 +48,22 @@ subprojects {
compile 'org.apache.httpcomponents:httpclient:4.5.3'
compile 'org.apache.httpcomponents:httpcore:4.4.6'
compile 'com.ning:compress-lzf:1.0.4'
compile 'com.google.code.gson:gson:2.8.2'
compile 'org.slf4j:slf4j-api:1.7.25'
compile 'org.slf4j:slf4j-log4j12:1.7.25'
compile 'org.bouncycastle:bcprov-jdk16:1.46'
compile 'org.bouncycastle:bcpg-jdk16:1.46'
compile ('com.google.appengine.tools:appengine-gcs-client:0.6') {
compile ('com.google.appengine.tools:appengine-gcs-client:0.7') {
exclude module: 'guava'
}
compile 'com.google.apis:google-api-services-storage:v1-rev100-1.22.0'
compile 'com.google.http-client:google-http-client-jackson2:1.22.0'
provided 'javax.servlet:javax.servlet-api:3.1.0'
compileOnly 'javax.servlet:javax.servlet-api:3.1.0'
testCompile 'org.jmockit:jmockit:1.31'
testCompile "org.spockframework:spock-core:1.1-groovy-2.4"
testCompile 'junit:junit:4.12'
//testCompile 'mockit:mockit:0.999'
}

compileJava {
sourceCompatibility = 1.8
targetCompatibility = 1.8
}

sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
Binary file modified gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
4 changes: 2 additions & 2 deletions gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#Thu Jun 08 10:17:17 PDT 2017
#Thu Jun 29 13:18:34 PDT 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-3.5-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-bin.zip
26 changes: 17 additions & 9 deletions gradlew
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#!/usr/bin/env bash
#!/usr/bin/env sh

##############################################################################
##
Expand Down Expand Up @@ -33,11 +33,11 @@ DEFAULT_JVM_OPTS=""
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"

warn ( ) {
warn () {
echo "$*"
}

die ( ) {
die () {
echo
echo "$*"
echo
Expand Down Expand Up @@ -154,11 +154,19 @@ if $cygwin ; then
esac
fi

# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
function splitJvmOpts() {
JVM_OPTS=("$@")
# Escape application args
save () {
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
echo " "
}
eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
APP_ARGS=$(save "$@")

exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
# Collect all arguments for the java command, following the shell quoting and substitution rules
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"

# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
cd "$(dirname "$0")"
fi

exec "$JAVACMD" "$@"
6 changes: 0 additions & 6 deletions gradlew.bat
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,6 @@ goto fail
@rem Get command-line arguments, handling Windows variants

if not "%OS%" == "Windows_NT" goto win9xME_args
if "%@eval[2+2]" == "4" goto 4NT_args

:win9xME_args
@rem Slurp the command line arguments.
Expand All @@ -60,11 +59,6 @@ set _SKIP=2
if "x%~1" == "x" goto execute

set CMD_LINE_ARGS=%*
goto execute

:4NT_args
@rem Get arguments from the 4NT Shell from JP Software
set CMD_LINE_ARGS=%$

:execute
@rem Setup the command line
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,18 @@
/**
/*
* Copyright 2013 Netflix, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
package com.netflix.priam.cassandra.extensions;

Expand Down Expand Up @@ -48,7 +49,7 @@ public static String fetchData(String url)
while ((c = responseStream.read(b, 0, b.length)) != -1)
bos.write(b, 0, c);
String return_ = new String(bos.toByteArray(), Charsets.UTF_8);
logger.info(String.format("Calling URL API: %s returns: %s", url, return_));
logger.info("Calling URL API: {} returns: {}", url, return_);
conn.disconnect();
return return_;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,18 @@
/**
/*
* Copyright 2013 Netflix, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
package com.netflix.priam.cassandra.extensions;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,18 @@
/**
/*
* Copyright 2013 Netflix, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
package com.netflix.priam.cassandra.extensions;

Expand Down
2 changes: 1 addition & 1 deletion priam-web/build.gradle
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
plugins {
id 'jetty'
id 'org.akhikhl.gretty' version '1.4.2'
}

apply plugin: 'war'
Expand Down
1 change: 1 addition & 0 deletions priam/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
apply plugin: 'groovy'
Loading