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

Merge 3.x (Cassandra 2.x) branch to master #720

Open
wants to merge 347 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
347 commits
Select commit Hold shift + click to select a range
96e9052
Removal of yaml entries not applicable to Cassandra 2.1 - this commit…
tulumvinh Mar 3, 2016
ceeb809
Merge pull request #444 from tulumvinh/3.x
tulumvinh Mar 3, 2016
5710b50
Exclusion of keyspace(s) and/or CFs from snapshot. Exclusion of keys…
tulumvinh Mar 15, 2016
f99ee7d
In situations where moving the *.json file from src to dest fails, th…
tulumvinh Mar 15, 2016
564d1ae
Merge pull request #446 from tulumvinh/3.x
tulumvinh Mar 15, 2016
7f3f213
1. Decouple backup and restore from the backup servlet. 2. Allow visi…
tulumvinh Mar 29, 2016
1668b14
Upgrade tests to use JMockit 1.19, which is compatible with newer ver…
tulumvinh Mar 29, 2016
e74c114
Properly log a client asks for a token value. The gateway to this req…
tulumvinh Mar 29, 2016
8ec7847
Merge pull request #456 from tulumvinh/3.x
tulumvinh Mar 29, 2016
d754f45
Provide ability to force JMX connection between Priam and Cassandra
tulumvinh Apr 13, 2016
f528332
Merge pull request #461 from tulumvinh/3.x
tulumvinh Apr 14, 2016
0227046
minimize verbose logging
tulumvinh Apr 25, 2016
b913922
Merge pull request #465 from tulumvinh/3.x
tulumvinh Apr 25, 2016
2ffce9e
Allow for interested parties to be aware of changes (e.g. new connect…
tulumvinh May 12, 2016
58b0f08
Allow regex for exclusion of keyspace(s) and/or CFs filters
tulumvinh May 13, 2016
9e874a8
Merge pull request #468 from tulumvinh/3.x
tulumvinh May 13, 2016
982bcee
Filter of META for listing of files will not account incremental meta…
tulumvinh May 23, 2016
ef3f117
Merge pull request #471 from tulumvinh/3.x
tulumvinh May 24, 2016
6964369
1. Optional incremental backup parallization 2. Updated Bintray API k…
tulumvinh Jun 2, 2016
80a0674
Merge pull request #481 from tulumvinh/3.x
tulumvinh Jun 2, 2016
fcbf83a
Determine status of a snapshot for a date
tulumvinh Jun 6, 2016
7a19d5b
Merge pull request #482 from tulumvinh/3.x
tulumvinh Jun 6, 2016
d752a30
1. Eliminate unneccessargy injection for parallization incremental up…
tulumvinh Jun 14, 2016
1a39778
Merge pull request #489 from tulumvinh/3.x
tulumvinh Jun 14, 2016
0132717
Merge of 3.x-vpc "A means to manipulate ACL within classic, or vpc en…
tulumvinh Jun 16, 2016
b27e99e
Revert to 3.x-vpc merge as it was unneccessary
tulumvinh Jun 16, 2016
b9b9b59
Merge pull request #492 from tulumvinh/3.x
tulumvinh Jun 16, 2016
9de631d
Enabling manipulation of ACL within classic, or vpc environment
tulumvinh Jun 18, 2016
7a636d9
Merge pull request #494 from tulumvinh/3.x
tulumvinh Jun 18, 2016
5ea395a
Update to later release of dependency (guava), was using a version th…
tulumvinh Jun 21, 2016
5ac2bcb
Merge pull request #495 from tulumvinh/3.x
tulumvinh Jun 21, 2016
1c554b7
Fetch additional AWS instance metadata
tulumvinh Jun 30, 2016
5adc303
Provide token, start, and completed time for snapshot backup status
tulumvinh Jul 4, 2016
1714f59
eliminate unit test for now
tulumvinh Jul 4, 2016
26d77dc
Merge pull request #498 from tulumvinh/3.x
tulumvinh Jul 4, 2016
cbcd72e
Provide token, start, and completed time for snapshot backup status
tulumvinh Jul 4, 2016
dfcea1a
Merge pull request #499 from tulumvinh/3.x
tulumvinh Jul 4, 2016
557d0db
Properly set recreated jxm connection
tulumvinh Jul 5, 2016
12a6a2e
Merge pull request #500 from tulumvinh/3.x
tulumvinh Jul 5, 2016
a42ea6a
Support Murmur3 Partitioner
randomvariable Jul 19, 2016
a2334e0
Merge pull request #447 from CrowdSurge/murmur3
tulumvinh Jul 20, 2016
1857bd6
apply PR #491 from dolphy17 to branch 3.x
tieum Jul 26, 2016
54d44b7
fix eof newline
tieum Jul 26, 2016
61fefb5
cross-account support for AWS compute
ipapapa Jul 29, 2016
d455348
Added support to S3 in eu-central-1 region
Jul 18, 2016
ea7dabc
Merge pull request #511 from ipapapa/3.x-crossaccount
vinaykumarchella Aug 1, 2016
367b628
Fix PriamConfiguration init order.
rynbrd Aug 1, 2016
a759478
Merge pull request #514 from zenreach/zr-fix-config-init-3.x
tulumvinh Aug 2, 2016
77c9834
Merge pull request #513 from dolphy17/3.x-eu-central
tulumvinh Aug 2, 2016
fb5e2a2
Merge pull request #509 from tieum/3.x
tulumvinh Aug 2, 2016
46307fc
Adding tombstone_warn_threshold, tombstone_failure_threshold and stre…
vinaykumarchella Aug 3, 2016
2d0edab
Updating comments for configuration changes
vinaykumarchella Aug 3, 2016
73bc50e
Merge pull request #516 from vinaykumarchella/3.x
vinaykumarchella Aug 3, 2016
03163c6
minimize verbose logging
tulumvinh Aug 9, 2016
2d95453
Merge pull request #519 from tulumvinh/3.x
tulumvinh Aug 9, 2016
3a7a7d6
Followup ColumnFamily directory naming change introduced in Cassandra…
Aug 23, 2016
3531341
Adding memtable_cleanup_threshold YAML config option
vinaykumarchella Sep 27, 2016
bee3974
Merge pull request #526 from vinaykumarchella/3.x
tulumvinh Sep 27, 2016
3d40fec
Allow S3 Role assumptions
arunagrawal84 Oct 1, 2016
fd87c39
Update log message. Remove random fake configuration.
arunagrawal84 Oct 3, 2016
283c8c4
Change default RoleAssumptionArn to null in FakeConfiguraiton
arunagrawal84 Oct 4, 2016
2e8891a
Merge pull request #527 from arunagrawal84/3.x
vinaykumarchella Oct 4, 2016
b8aefbd
Support the ability to query more than one ASG while looking for curr…
vinaykumarchella Oct 5, 2016
08963a1
Merge pull request #528 from vinaykumarchella/3.x
vinaykumarchella Oct 5, 2016
f7ad7b6
A means to perform nodetool flush on 1:* keyspaces
tulumvinh Oct 16, 2016
b117cb5
Metric is now applicable for lifetime of flush task. Previous it was…
tulumvinh Oct 17, 2016
890291b
Merge pull request #529 from tulumvinh/3.x
tulumvinh Oct 18, 2016
f91144c
Allow RemoteJMX to be enabled with Priam
vinaykumarchella Oct 20, 2016
03b1786
Merge pull request #530 from vinaykumarchella/3.x
tulumvinh Oct 20, 2016
8de1d49
Hourly cron timer was executing only once, fix bug via proper cron ex…
tulumvinh Oct 21, 2016
eadfa99
Merge pull request #531 from tulumvinh/3.x
tulumvinh Oct 21, 2016
e75a531
Honor when flush task is run via property
tulumvinh Oct 21, 2016
fc2d5f8
Merge pull request #532 from tulumvinh/3.x
tulumvinh Oct 21, 2016
ddc1b42
Support for siblingAsgs in CrossAccountRacMembership
vinaykumarchella Oct 26, 2016
a6953ea
Merge pull request #533 from vinaykumarchella/3.x
vinaykumarchella Oct 26, 2016
9430ff5
ensure cron timer namespace uniqueness
tulumvinh Oct 29, 2016
9028f11
Merge pull request #534 from tulumvinh/3.x
tulumvinh Oct 29, 2016
809d574
Backup status persisted to disk for resiliency of Priam restarts
tulumvinh Nov 3, 2016
d629f22
Merge pull request #535 from tulumvinh/3.x
tulumvinh Nov 3, 2016
ee54167
1. Provide visibiity of upload via KB per sec 2. Enable notification…
tulumvinh Nov 3, 2016
45eedf5
Distinguish between original (uncompressed) and actual uploaded (comp…
tulumvinh Nov 4, 2016
8241d0f
Bytesuploaded is now reflective of uploaded file, not a summation of …
tulumvinh Nov 5, 2016
e13a57a
Set proper backup type for parallel incremental
tulumvinh Nov 7, 2016
3633fd7
Publish for daily snapshot of manifest file
tulumvinh Nov 11, 2016
e95273e
Update compressed file size for manifest file
tulumvinh Nov 11, 2016
e6749f1
Catch AWS "SlowDown" warning and publish it as a metric
tulumvinh Nov 15, 2016
32c84fb
Merge pull request #536 from tulumvinh/3.x
tulumvinh Nov 15, 2016
126f0b7
Increment flush error counter for failed JMX Connection
arunagrawal84 Nov 18, 2016
e29543b
Merge pull request #537 from arunagrawal84/3.x
arunagrawal-84 Nov 18, 2016
1284d7a
Fix bug of resetting counters. Counters value is now an increment of…
tulumvinh Nov 18, 2016
15fdfb0
Merge pull request #538 from tulumvinh/3.x
tulumvinh Nov 18, 2016
728979d
Resiliency against duplicate IP, port-range nodes when manipulating S…
tulumvinh Nov 22, 2016
8c2a64d
Merge pull request #539 from tulumvinh/3.x
tulumvinh Nov 22, 2016
9ad52d1
1. Added precondition for each file upload 2. Fix bug when increment…
tulumvinh Nov 28, 2016
2e3736a
Merge pull request #541 from tulumvinh/3.x
tulumvinh Nov 28, 2016
ef788a5
Added CommitLog archiving properties file path config option
Aug 18, 2016
8e3ed97
Bug Fix: Snapshot Status is not JSON
arunagrawal84 Feb 1, 2017
8026f84
Explicit return media types for Backup Status
arunagrawal84 Feb 1, 2017
cf3b1ed
1. Diagnostic info for uploaded file and its parts 2. provide RESt en…
tulumvinh Feb 12, 2017
c2d86b3
Merge pull request #545 from tulumvinh/3.x
tulumvinh Feb 12, 2017
8e6b69b
Starting point to encapsulate and track metrics for backups
tulumvinh Feb 13, 2017
73c30cb
Merge pull request #546 from tulumvinh/3.x
tulumvinh Feb 13, 2017
9974bcf
Additional backup metric
tulumvinh Feb 13, 2017
eb093a7
take latest OSS
arunagrawal84 Feb 13, 2017
8562081
Merge pull request #547 from tulumvinh/3.x
tulumvinh Feb 13, 2017
7e724d3
Merge branch '3.x' of github.com:Netflix/Priam into 3.x
arunagrawal84 Feb 13, 2017
eda3293
1. Diagnostic info for uploaded file and its parts
tulumvinh Feb 14, 2017
54b1d66
Merge pull request #548 from tulumvinh/3.x
tulumvinh Feb 14, 2017
bc7e47a
Merge branch '3.x' of github.com:Netflix/Priam into 3.x
arunagrawal84 Feb 15, 2017
0125ea2
To provide the same metric throught the jvm, make it a singleton
tulumvinh Feb 16, 2017
5cd85cc
Merge pull request #549 from tulumvinh/3.x
tulumvinh Feb 16, 2017
65be74c
Merge branch '3.x' of github.com:Netflix/Priam into 3.x
arunagrawal84 Feb 17, 2017
f23b754
BackupVerification by comparison of listing the backup location and m…
arunagrawal84 Feb 17, 2017
4952cb3
Error handling for backup verification.
arunagrawal84 Feb 17, 2017
3932668
Merge pull request #550 from arunagrawal84/3.x
arunagrawal-84 Feb 17, 2017
0fbada2
Refactor: BackupStatusMgr
arunagrawal84 Feb 27, 2017
9a01add
Merge pull request #551 from arunagrawal84/3.x
arunagrawal-84 Mar 1, 2017
501090b
use latest nebula.netflixoss version.
arunagrawal84 Mar 7, 2017
d9e90c4
Merge pull request #553 from arunagrawal84/3.x
vinaykumarchella Mar 7, 2017
f45ed0c
Support for backup cron expression for snapshots via configuration - …
arunagrawal84 Mar 7, 2017
3e94116
Support for backup cron expression for snapshots.
arunagrawal84 Mar 9, 2017
2d974f6
Update to Gradle 2.14.1
Mar 9, 2017
dfac4c1
Merge pull request #1 from nadavc/3.x
arunagrawal-84 Mar 9, 2017
6699ace
Support for illegal values and "null" values from scheduler type look…
arunagrawal84 Mar 16, 2017
069bfb5
Merge pull request #522 from matepeter90/3.x
vinaykumarchella Mar 17, 2017
b70122d
Adding missing license files
vinaykumarchella Mar 22, 2017
a59784f
Merge pull request #555 from vinaykumarchella/3.x
ipapapa Mar 22, 2017
5d7b099
Merge pull request #554 from arunagrawal84/3.x
vinaykumarchella Mar 22, 2017
261b4fb
Merge pull request #523 from matepeter90/fix-backup-bypass-for-cluste…
vinaykumarchella Mar 22, 2017
5d7e572
adding license information
arunagrawal84 May 2, 2017
1474cb8
Update dependencies.
arunagrawal84 May 31, 2017
4b9d278
change netflix oss plugin to latest
arunagrawal84 May 31, 2017
105e36d
add compatibility to java 8
arunagrawal84 May 31, 2017
f74d933
update travis to jdk 8
arunagrawal84 May 31, 2017
479a19f
Merge pull request #561 from arunagrawal84/3.x
arunagrawal-84 Jun 1, 2017
0005518
Update deprecated library for Assert
arunagrawal84 Jun 6, 2017
24fea70
update to gradle 3.5 and netflix OSS to 3.6.4
arunagrawal84 Jun 8, 2017
47ee9c6
Merge pull request #562 from arunagrawal84/3.x
vinaykumarchella Jun 8, 2017
be895ee
Remove deperecations warnings, move to gretty from jetty (#563)
arunagrawal-84 Jun 29, 2017
a551b2d
BackupStatusMgr refactor (#569)
arunagrawal-84 Jul 14, 2017
5d56edf
Enable CRON expression on flush (#571)
arunagrawal-84 Jul 16, 2017
ea3a557
Bug fix: resource leak (Too many open files) while executing Cassandr…
arunagrawal-84 Jul 19, 2017
4e1e5f2
remove the usage of guava precondition from NewTokenRetriever
arunagrawal84 Jul 19, 2017
3d551a7
Merge pull request #575 from arunagrawal84/3.x
arunagrawal-84 Jul 20, 2017
824ed2b
Allow configuration of the size of large partitions that get logged b…
arunagrawal-84 Aug 9, 2017
e779281
Make sudo usage to start C* as a configurable entry
vinaykumarchella Aug 20, 2017
4bcffa9
Adding C* logs directory location
vinaykumarchella Aug 23, 2017
45fecb0
Cleaned up test
vinaykumarchella Aug 23, 2017
9aabe99
Fixing LogsDir and sudo stop C* issues
vinaykumarchella Aug 23, 2017
5e6bfa9
Code Refactoring
arunagrawal-84 Sep 6, 2017
8361182
Move groovy files to "groovy" folder.
arunagrawal-84 Sep 7, 2017
3a868ab
code refactor and optimize imports
arunagrawal84 Sep 7, 2017
c557abb
code refactor and optimize imports
arunagrawal-84 Sep 7, 2017
c160add
Move source/test compatibility to Java 8
arunagrawal-84 Sep 8, 2017
e60673c
Remove configuration of s3 endpoint. S3 library auto detects end poin…
arunagrawal84 Sep 9, 2017
1117037
Merge pull request #596 from arunagrawal84/3.x
arunagrawal-84 Sep 13, 2017
a17d016
Merge branch '3.x' of github.com:Netflix/Priam into 3.x
vinaykumarchella Sep 29, 2017
57b91ea
Merge pull request #584 from vinaykumarchella/3.x
vinaykumarchella Sep 29, 2017
ffff6b7
* Introduction to concept of InstanceState.
arunagrawal-84 Oct 1, 2017
e690c5c
Remove duplicated code among all restore techniques.
arunagrawal84 Oct 1, 2017
d2674d6
Merge pull request #602 from arunagrawal84/3.x
arunagrawal-84 Oct 2, 2017
b9e3345
Restore refactor code.
arunagrawal84 Oct 2, 2017
46c1546
Merge pull request #604 from arunagrawal84/3.x
arunagrawal-84 Oct 9, 2017
cf9aba1
* Splitting the properties which dictates - backup and restore are en…
arunagrawal84 Oct 11, 2017
570aa89
bug fix.
arunagrawal84 Oct 11, 2017
50c7b74
Use gson to serialize objects.
arunagrawal84 Oct 12, 2017
dcb75d2
Restore refactoring.
arunagrawal-84 Oct 12, 2017
992cfaa
Fix potential nondeterminism
dtrebbien Oct 19, 2017
fccff0c
Make addObserver() final
dtrebbien Oct 19, 2017
d7f00f6
SLF4J-related fixes against the 3.x branch (#613)
dtrebbien Oct 29, 2017
88b9d86
Use put api from s3 instead of multi-part for small objects. (#619)
arunagrawal-84 Nov 2, 2017
0bf9aef
SNS notification service
arunagrawal-84 Nov 13, 2017
6079884
Set broadcast_rpc_address to private ip for COPY functionality to work.
arunagrawal84 Nov 16, 2017
4a696e5
Merge pull request #624 from arunagrawal84/3.x
arunagrawal-84 Nov 20, 2017
fda37ad
Switch to CopyOnWriteArrayList
dtrebbien Nov 21, 2017
6a28f76
Merge pull request #615 from dtrebbien/fix-potential-nondeterminism
arunagrawal-84 Nov 27, 2017
933e555
Fix bug in backups where files were left on disk
arunagrawal84 Nov 29, 2017
87fd9a3
Merge pull request #627 from arunagrawal84/3.x
arunagrawal-84 Nov 30, 2017
5a33100
Implement Priam auto-remediation of dead Cassandra
jolynch Dec 5, 2017
38e3bb6
Add test of Cassandra auto-remediation
jolynch Dec 5, 2017
d160fa8
Only ratelimit when we're restarting cassandra
jolynch Dec 5, 2017
0cf5fb4
Docstring typo and adding changelog
jolynch Dec 6, 2017
3f642c2
Merge pull request #629 from jolynch/jolynch_autostart_cassandra
jolynch Dec 6, 2017
2e0855f
update to gradle 4.4
arunagrawal84 Dec 15, 2017
952f46c
Merge pull request #635 from arunagrawal84/3.x
arunagrawal-84 Dec 15, 2017
d75a719
Do not set shouldCassandraBeAlive from the Health Monitor
jolynch Dec 15, 2017
9cf9b5e
Merge pull request #636 from jolynch/jolynch_autostart_bugfix
jolynch Dec 15, 2017
ed8def1
Changelog for 3.1.46
jolynch Dec 15, 2017
c7fd788
exluding module with duplicate slf4j binding
zmarois Dec 15, 2017
4563ef1
Letting backup status location be variable
zmarois Dec 15, 2017
be669e0
Merge pull request #640 from zmarois/3.xvariablebackupstatus
arunagrawal-84 Dec 15, 2017
2658eed
Merge pull request #631 from zmarois/3.xslf4jbindings
arunagrawal-84 Dec 15, 2017
7a6b17f
Shutting down quartz
zmarois Dec 1, 2017
e9a647a
Merge pull request #644 from zmarois/3.xgracefulquartz
arunagrawal-84 Dec 20, 2017
127ea1a
Running both sdb clients in the same region
zmarois Nov 10, 2017
e1f9c46
Defaulting to us-east-1 for SDB region. Making configurable
zmarois Jan 5, 2018
f03adc2
Merge pull request #646 from zmarois/3.xstandardSDBLocation
arunagrawal-84 Jan 6, 2018
111894d
Enabling auth on jmx port
zmarois Nov 10, 2017
5a5e094
Isolating instance metadata calls
zmarois Jan 7, 2018
3990f8e
Update README.md
vinaykumarchella Jan 10, 2018
8a60bb3
Metrics for Cassandra Process Manager and Monitor. (#656)
vinaykumarchella Jan 11, 2018
405732d
Update CHANGELOG.md
vinaykumarchella Jan 11, 2018
279e963
Just use timers to manage auto-remediation instead of the rateLimiter
jolynch Jan 30, 2018
288d452
Merge pull request #657 from jolynch/jolynch_just_use_timers
jolynch Feb 1, 2018
cb05c95
Changelog for 3.1.48
jolynch Feb 1, 2018
9f4d4ca
Eliminate assumption that existence of an element in a data structure…
tulumvinh Feb 9, 2018
3b83045
Incorporated code review feedback
tulumvinh Feb 10, 2018
104b9b6
Merge pull request #659 from tulumvinh/3.x
tulumvinh Feb 10, 2018
f1b98dd
Merge pull request #653 from zmarois/3.xisolate-instance-metadata
arunagrawal-84 Feb 26, 2018
1b2aa02
Merge pull request #650 from zmarois/3.xjmxauth
arunagrawal-84 Feb 26, 2018
62060e1
update dependency
arunagrawal84 Feb 26, 2018
76de12d
Merge pull request #661 from arunagrawal84/3.x
arunagrawal-84 Feb 28, 2018
149b606
Add graceful stopping option
jolynch Mar 5, 2018
005bc08
Clarify error messages and add force
jolynch Mar 6, 2018
8b9cbae
Allow graceful draining without sleeping first
jolynch Mar 6, 2018
5f76859
Merge pull request #664 from jolynch/jolynch_graceful_stop
jolynch Mar 7, 2018
e1df851
Update CHANGELOG for 3.1.50
jolynch Mar 7, 2018
5623204
Fixup javadocs
jolynch Mar 7, 2018
e263248
1. Bug fix: During restore do not start cassandra, if `priam.cass.man…
arunagrawal84 Mar 7, 2018
23192ca
Merge branch '3.x' of github.com:Netflix/Priam into 3.x
arunagrawal84 May 25, 2018
d1201e4
change the default location of backup verification file and backup.st…
arunagrawal-84 Jun 6, 2018
bb83962
Mark snapshot as failure if there is any issue in uploading a file. T…
arunagrawal84 Jun 11, 2018
4fa45fe
update to changelog
arunagrawal84 Jun 12, 2018
5436432
Merge pull request #679 from arunagrawal84/hotfix
arunagrawal-84 Jun 12, 2018
0325ea1
PostRestoreHookChanges (#681)
sumanth-pasupuleti Jun 25, 2018
b985d1f
PostRestoreHook logging improvements and changelog.md changes (#683)
sumanth-pasupuleti Jun 28, 2018
0aa1661
Extend StandardTuner to allow custom yaml properties, generic JMXNode…
vinaykumarchella Jun 29, 2018
c9c78c1
Adding license headers to new files that were added as part of postre…
sumanth-pasupuleti Jul 3, 2018
bfa02e7
Adding resource to get C* partitioner name (#689)
sumanth-pasupuleti Jul 11, 2018
79740fb
Merge branch '3.x' of github.com:Netflix/Priam into 3.x
arunagrawal84 Jul 16, 2018
5991d7a
Rollback changes.
arunagrawal84 Jul 16, 2018
566da21
rollback
arunagrawal84 Jul 16, 2018
a422d1d
rollback
arunagrawal84 Jul 16, 2018
448c18d
Incorporate PR feedback
arunagrawal84 Jul 23, 2018
d7e5e7a
Moving declaration of restore-finished status to, after PostRestoreHo…
sumanth-pasupuleti Jul 29, 2018
e83cd0a
changelog update for fix around restore-finish update (#696)
sumanth-pasupuleti Jul 29, 2018
cc45dc9
PR Feedback -> Added exclude column family for compaction. Later we s…
arunagrawal84 Jul 31, 2018
fb8b711
Merge branch '3.x' of github.com:Netflix/Priam into 3.x
arunagrawal84 Aug 1, 2018
958aac6
changelog update and use netflixoss 5.1.1.
arunagrawal84 Aug 2, 2018
5bf3649
update to gradle 4.8.1
arunagrawal84 Aug 2, 2018
58e936e
Merge pull request #700 from arunagrawal84/3.x
arunagrawal-84 Aug 3, 2018
97f9311
Making post restore hook heartbeat timeout and heartbeat check freque…
sumanth-pasupuleti Aug 3, 2018
ba82d30
Minor code changes and deprecation cycle. (#704)
arunagrawal-84 Aug 7, 2018
09ec999
Snapshot meta service
arunagrawal-84 Aug 11, 2018
22fdd9c
Move to spectator to collect metrics (#706)
arunagrawal-84 Aug 15, 2018
b6359b9
Move to spectator to collect metrics.
arunagrawal-84 Aug 20, 2018
9585460
Forgotten files: Increment metric when a forgotten file is detected i…
arunagrawal84 Aug 28, 2018
09aef1d
Update based on PR feedback,
arunagrawal84 Aug 29, 2018
bd8f7dd
some context on future work.
arunagrawal84 Aug 29, 2018
b3d46b5
Merge branch '3.x'
arunagrawal84 Sep 17, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
language: java
jdk:
- oraclejdk8
- oraclejdk8
sudo: false
install: ./installViaTravis.sh
script: ./buildViaTravis.sh
Expand Down
107 changes: 106 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,108 @@
# Changelog
## 2018/08/20 3.1.60
***WARNING*** THIS IS A BREAKING RELEASE
### New Feature
* (#706) Move to spectator to collect Metrics. This is a breaking change, if you were depending on MetricPublisher to collect metrics.

## 2018/08/13 3.1.59
### New Feature
* (#671) Compactions on CRON: Added ability to schedule compactions for columnfamilies on CRON.
* (#691) Snapshot Meta Service: This will form the basis of backup version 2. This service will run on CRON and will ensure we upload a meta file containing the list of SSTables on disk.
* (#703) Making post restore hook heartbeat timeout and heartbeat check frequency configurable

## 2018/07/28: 3.1.58
* (#695) Moving restore-finished status update, to after PostRestoreHook execution.

## 2018/07/11: 3.1.57
* (#689) Adding partitioner endpoint to cassadmin resource to get C* partitioner name.

## 2018/06/28: 3.1.54
### Improvements
* (#683) PostRestoreHook logging improvements.


## 2018/06/27: 3.1.53
### New Feature
* (#681) PostRestoreHook changes. Adding ability to call a post restore hook once files get downloaded as part of the restore process.

Following are relevant configurations around post restore hook
- priam.postrestorehook.enabled: indicates if postrestorehook is enabled.
- priam.postrestorehook: contains the command with arguments to be executed as part of postrestorehook. Priam would wait for completion of this hook before proceeding to starting C*.
- priam.postrestorehook.heartbeat.filename: heartbeat file that postrestorehook emits. Priam keeps a tab on this file to make sure postrestorehook is making progress. Otherwise, a new process of postrestorehook would be spawned (upon killing existing process if still exists)
- priam.postrestorehook.done.filename:'done' file that postrestorehook creates upon completion of execution.
- priam.postrestorehook.timeout.in.days:maximum time that Priam should wait before killing the postrestorehook process (if not already complete)

## 2018/06/12: 3.1.52
### Bug Fixes
* (#679) Mark snapshot as a failure if there is an issue with uploading a file. This is to ensure we fail-fast. This is in contrast to previous behavior where snapshot would "ignore" any failures in the upload of a file and mark snapshot as "success".
Since it was not truly a "success" marking that as "failure" is the right thing to do. Also, meta.json should really be uploaded in case of "success" and not in case of "failure" as the presence of "meta.json" marks the backup as successful.
The case for fail-fast: In a scenario where we had an issue say at the start of the backup, it makes more sense to fail-fast then to keep uploading other files (and waste bandwidth and use backup resources). The remediation step for backup failure is anyways to take a full snapshot again.

## 2018/06/07: 3.1.51
### Bug Fixes
* (#678) Change the default location of backup status and downloaded meta.json as part of backup verification

## 2018/03/07: 3.1.50

### New Features
* (#664) Cassandra Process Manager can be configured to gracefully stop using the new
`gracefulDrainHealthWaitSeconds` option. If this option set to a positive integer (>=0) then before calling
the shutdown script, Priam will fail healthchecks (`InstanceState.isHealthy`) for the configured number of seconds and then will issue a `nodetool drain` with 30s timeout (since drain can hang), and finally call the provided stop script. By default this is set to `-1` to disable this feature for backwards compatibility. This is useful if you want to gracefully drain cassandra clients off a node before running `drain` (which kills the Native/Thrift server and resets and tcp connections that were established; in flight requests can get dropped), then running drain to safely stop Cassandra, and then call your stop script. If your service discovery system does not integrate with Priam's health system or your stop script already does all these things then leave this functionality disabled.
* (#664) `/v1/cassadmin/stop` http API call now takes an optional `force` parameter (e.g. `/v1/cassadmin/stop?force=true` which will skip the graceful path for that particular stop; default value is `false`.
* (#650) Enable auth on the jmx port via `jmxUsername` and `jmxPassword` options. By default these are null and not provided.

### Bug Fixes
* (#659) Fix to `Snapshotstatus` to actually contain `bkupMetadata`
* (#661) Update `commons-io`, `aws-java-sdk`, `snakeyaml`

### Breaking changes
* (#664) If you previously implemented `ICassandraProcess` internally the `start` method has been refactored to take a `boolean force` parameter. If you implement this interface you can supply `false` to preserve previous behavior.

## 2018/02/01: 3.1.48

### Bugs
* Autostart functionality now uses timers instead of ratelimiters so that
the first autostart does not start until an interval after the first start.

## 2018/01/11: 3.1.47

### New Features
* Cassandra Process Manager and Monitor now record metrics when C* is stopped, started or auto-started with recent autorestart functionality.
* Location of backup status file is now configurable via configuration `priam.backup.status.location`.
* SDBInstance for token management with default binding to us-east-1 but configurable via `priam.sdb.instanceIdentity.region`.

### Bugs
* Exclude duplicate sl4j module binding.
* Shut down quartz at application stop


## 2017/12/14: 3.1.46

### 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.1.45

### 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 All @@ -8,4 +113,4 @@
- Multiple bug fixes

0.0.5
- Initial external release
- Initial external release
12 changes: 5 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,16 +15,16 @@ Priam is a process/tool that runs alongside Apache Cassandra to automate the fol

Apache Cassandra is a highly available, column oriented database: http://cassandra.apache.org.

The name 'Priam' refers to the King of Troy in Greek mythology, who was the father of Cassandra.
The name 'Priam' refers to the King of Troy in Greek mythology, who was the father of Cassandra.

Priam is actively developed and used at Netflix.
Priam is actively developed and used at Netflix.

Features:
- Token management using SimpleDB
- Support multi-region Cassandra deployment in AWS via public IP.
- Automated security group update in multi-region environment.
- Backup SSTables from local ephemeral disks to S3.
- Uses Snappy compression to compress backup data on the fly.
- Uses Snappy compression to compress backup data on the fly.
- Backup throttling
- Pluggable modules for future enhancements (support for multiple data storage).
- APIs to list and restore backup data.
Expand All @@ -37,9 +37,7 @@ Priam versions and their compatibility with Cassandra versions in explained in m

|Priam Branch (Release) |Cassandra Version |Description |
| :------- | :---- | :--- |
|3.11| C* 3.11 | Currently it supports Apache Cassandra 3.x |
|3.x| C* 2.1.x | Any minor version of C* 2.1.x|
|2.x| C* 2.0.x| Any minor version of C* 2.0.x is supported. No longer under active development|
|master |C* 2.x | Any version of Apache Cassandra 2.x |
|3.11| C* 3.11 | Currently it supports Apache Cassandra 3.x. |
|1.2.x | C* 1.2 only | Any minor version of C* 1.2.x is supported. No longer under active development |
|1.1| C* 1.1 only| No longer under active devleopment|
|master |C* 1.2 - 2.0| Currently it supports C* v1.2 and 2.0. No longer under active development|
18 changes: 9 additions & 9 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
plugins {
id 'nebula.netflixoss' version '5.0.0'
id 'nebula.netflixoss' version '5.1.1'
}

// Establish version and status
ext.githubProjectName = 'Priam'

subprojects {
apply plugin: 'nebula.netflixoss'
apply plugin: 'java'


group = 'com.netflix.priam'

repositories {
Expand All @@ -24,7 +24,7 @@ subprojects {
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.4'
Expand All @@ -33,14 +33,14 @@ subprojects {
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.211'
compile 'com.amazonaws:aws-java-sdk:1.11.386'
compile 'com.google.inject:guice:4.1.0'
compile 'com.google.inject.extensions:guice-servlet:4.1.0'
compile 'org.quartz-scheduler:quartz:2.2.3'
compile 'org.quartz-scheduler:quartz:2.3.0'
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.apache.cassandra:cassandra-all:[1.2.0,1.2.8['
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'
compile 'org.apache.commons:commons-configuration2:2.1.1'
Expand All @@ -59,6 +59,7 @@ subprojects {
}
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'
compile 'com.netflix.spectator:spectator-api:0.74.2'
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"
Expand All @@ -68,5 +69,4 @@ subprojects {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
}

}
12 changes: 6 additions & 6 deletions buildViaTravis.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,21 @@

if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then
echo -e "Build Pull Request #$TRAVIS_PULL_REQUEST => Branch [$TRAVIS_BRANCH]"
./gradlew build
./gradlew build --stacktrace
elif [ "$TRAVIS_PULL_REQUEST" == "false" ] && [ "$TRAVIS_TAG" == "" ]; then
echo -e 'Build Branch with Snapshot => Branch ['$TRAVIS_BRANCH']'
./gradlew -Prelease.travisci=true -PbintrayUser="${bintrayUser}" -PbintrayKey="${bintrayKey}" -PsonatypeUsername="${sonatypeUsername}" -PsonatypePassword="${sonatypePassword}" build snapshot --info --stacktrace
./gradlew -Prelease.travisci=true -PbintrayUser="${bintrayUser}" -PbintrayKey="${bintrayKey}" -PsonatypeUsername="${sonatypeUsername}" -PsonatypePassword="${sonatypePassword}" build snapshot --stacktrace
elif [ "$TRAVIS_PULL_REQUEST" == "false" ] && [ "$TRAVIS_TAG" != "" ]; then
echo -e 'Build Branch for Release => Branch ['$TRAVIS_BRANCH'] Tag ['$TRAVIS_TAG']'
case "$TRAVIS_TAG" in
*-rc\.*)
./gradlew -Prelease.travisci=true -Prelease.useLastTag=true -PbintrayUser="${bintrayUser}" -PbintrayKey="${bintrayKey}" -PsonatypeUsername="${sonatypeUsername}" -PsonatypePassword="${sonatypePassword}" -PnetflixossAltCandidateRepo=true candidate --info --stacktrace
./gradlew -Prelease.travisci=true -Prelease.useLastTag=true -PbintrayUser="${bintrayUser}" -PbintrayKey="${bintrayKey}" -PsonatypeUsername="${sonatypeUsername}" -PsonatypePassword="${sonatypePassword}" candidate --stacktrace
;;
*)
./gradlew -Prelease.travisci=true -Prelease.useLastTag=true -PbintrayUser="${bintrayUser}" -PbintrayKey="${bintrayKey}" -PsonatypeUsername="${sonatypeUsername}" -PsonatypePassword="${sonatypePassword}" final --info --stacktrace
./gradlew -Prelease.travisci=true -Prelease.useLastTag=true -PbintrayUser="${bintrayUser}" -PbintrayKey="${bintrayKey}" -PsonatypeUsername="${sonatypeUsername}" -PsonatypePassword="${sonatypePassword}" final --stacktrace
;;
esac
else
echo -e 'WARN: Should not be here => Branch ['$TRAVIS_BRANCH'] Tag ['$TRAVIS_TAG'] Pull Request ['$TRAVIS_PULL_REQUEST']'
./gradlew build
fi
./gradlew build --stacktrace
fi
1 change: 0 additions & 1 deletion gradle.properties

This file was deleted.

98 changes: 98 additions & 0 deletions gradle/convention.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
// GRADLE-2087 workaround, perform after java plugin
status = project.hasProperty('preferredStatus')?project.preferredStatus:(version.contains('SNAPSHOT')?'snapshot':'release')

subprojects { project ->
apply plugin: 'java' // Plugin as major conventions

sourceCompatibility = 1.8

// Restore status after Java plugin
status = rootProject.status

task sourcesJar(type: Jar, dependsOn:classes) {
from sourceSets.main.allSource
classifier 'sources'
extension 'jar'
}

task javadocJar(type: Jar, dependsOn:javadoc) {
from javadoc.destinationDir
classifier 'javadoc'
extension 'jar'
}

configurations.create('sources')
configurations.create('javadoc')
configurations.archives {
extendsFrom configurations.sources
extendsFrom configurations.javadoc
}

// When outputing to an Ivy repo, we want to use the proper type field
gradle.taskGraph.whenReady {
def artifacts = project.configurations.sources.artifacts
def sourceArtifact = artifacts.iterator().next()
sourceArtifact.type = 'sources'
}

artifacts {
sources(sourcesJar) {
// Weird Gradle quirk where type will be used for the extension, but only for sources
type 'jar'
}
javadoc(javadocJar) {
type 'javadoc'
}
}

configurations {
provided {
description = 'much like compile, but indicates you expect the JDK or a container to provide it. It is only available on the compilation classpath, and is not transitive.'
transitive = true
visible = true
}
}

project.sourceSets {
main.compileClasspath += project.configurations.provided
main.runtimeClasspath -= project.configurations.provided
test.compileClasspath += project.configurations.provided
test.runtimeClasspath += project.configurations.provided
}
}

apply plugin: 'github-pages' // Used to create publishGhPages task

def docTasks = [:]
[Javadoc,ScalaDoc,Groovydoc].each{ Class docClass ->
def allSources = allprojects.tasks*.withType(docClass).flatten()*.source
if (allSources) {
def shortName = docClass.simpleName.toLowerCase()
def docTask = task "aggregate${shortName.capitalize()}"(type: docClass, description: "Aggregate subproject ${shortName}s") {
source = allSources
destinationDir = file("${project.buildDir}/docs/${shortName}")
doFirst {
def classpaths = allprojects.findAll { it.plugins.hasPlugin(JavaPlugin) }.collect { it.sourceSets.main.compileClasspath }
classpath = files(classpaths)
}
}
docTasks[shortName] = docTask
processGhPages.dependsOn(docTask)
}
}

githubPages {
repoUri = "git@github.com:Netflix/${rootProject.githubProjectName}.git"
pages {
docTasks.each { shortName, docTask ->
from(docTask.outputs.files) {
into "docs/${shortName}"
}
}
}
}

// Generate wrapper, which is distributed as part of source to alleviate the need of installing gradle
task createWrapper(type: Wrapper) {
gradleVersion = '1.5'
}
Loading