Priam

Co-Process for backup/recovery, Token Management, and Centralized Configuration management for Cassandra.

APACHE-2.0 License

Stars
1K
Committers
59
Priam - SNS Notifications

Published by arunagrawal84 almost 7 years ago

  • New feature: SNS notification service for backups/snapshots. Disabled by default. Use priam.backup.notification.topic.arn to enable this.
  • Set broadcast_rpc_address in cassandra.yaml to private-IP of the EC2 instance. This will allow COPY_TO, COPY_FROM functionality to work.
  • Bug Fix: Potential non-determinism in the event notification.
  • Bug Fix: Filtered CF in backups where left on the disk.
Priam - Use S3 Put API

Published by arunagrawal84 almost 7 years ago

  • Use S3 Put API for small objects
  • Logging fixes.
Priam - Use S3 Put API

Published by arunagrawal84 almost 7 years ago

  • Use S3 Put API for small objects
  • Some logging bug fixes.
Priam - New concept: Instance State

Published by arunagrawal84 about 7 years ago

  • Introduction to the concept of InstanceState. This will encapsulate the health of Instance including backup status, restore status and Cassandra status. To determine the health of Instance and take custom actions, use InstanceState.healthy.
  • Splitting the properties which dictate - backup and restore are encrypted. Traditionally they were clubbed together which implies, if you restore your cluster with a backup which was encrypted then your backups need to be encrypted too. Now this behavior is controlled by priam.encrypted.restore.enabled and priam.encrypted.backup.enabled.
  • Removing unnecessary named guice binding to IFileSystemContext.
  • Breaking change: Restore status API now shows metafile information from which restore was done.
  • Refactoring of various restore call flows.
  • Change the monitoring of C* to use ps -ef instead of pgrep due to size limitations of pgrep.
Priam - New concept: Instance State

Published by arunagrawal84 about 7 years ago

  • Introduction to the concept of InstanceState. This will encapsulate the health of Instance including backup status, restore status and Cassandra status. If you wish to determine the health of Instance, use InstanceState.healthy to determine that to take custom actions.
  • Splitting the properties which dictate - backup and restore are encrypted. Traditionally they were clubbed together which implies, if you restore your cluster with a backup which was encrypted then your backups need to be encrypted too. Now this behavior is controlled by 'priam.encrypted.restore.enabled' and 'priam.encrypted.backup.enabled'.
  • Removing unnecessary named guice binding to IFileSystemContext.
  • Breaking change: Restore status API now shows metafile information from which restore was done.
  • Refactoring of various restore call flows.
  • Refactor all tuners (Apache C* and DSE) into one package.
  • Pass CASSANDRA_HOME environment variable.
  • Change the monitoring of C* to use ps -ef instead of pgrep due to size limitations of pgrep.
Priam - Bug Fix

Published by arunagrawal84 about 7 years ago

  • Put jvm.options tuning back. Code was deleted.
Priam - Tune jvm.options and code refactor

Published by arunagrawal84 about 7 years ago

  • JVM Options Tuning for Cassandra 3.x:
    Cassandra 3.x added a new way to configure heap sizes and pass other JVM parameters (via jvm.options). Priam now supports configuring common options like heap setting and choosing Garbage Collection type (G1GC/CMS) natively. Default being CMS. It logs jvm.options after tuning them.
  • Code refactor: Major code refactoring for backups/restore.
  • Remove named implementations for Notification Service and Measurement Upload
Priam - Code Refactor

Published by arunagrawal84 about 7 years ago

  • Some major code refactor to remove duplicate code between Backup/Restore.
  • Remove named bindings for metric publisher and notification service (as there is only one implementation)
Priam - BugFix: Fixing LogsDir and sudo stop C* issues

Published by vinaykumarchella about 7 years ago

Fixing LogsDir and sudo stop C* issues

Priam - Adding C* logs directory location to Configuration

Published by vinaykumarchella about 7 years ago

Adding C* logs directory location to Configuration

Priam - Make sudo usage to start C* as a configurable entry

Published by vinaykumarchella about 7 years ago

Make sudo usage to start C* as a configurable entry

Priam - Native support for overriding large partition threshold

Published by vinaykumarchella about 7 years ago

  • Allow configuration of the size of large partitions that get logged by Cassandra during compaction.
  • Make DSE Audit log tuning bindable with default way as YAML (since DSE 4.x).
Priam - Native support for overriding large partition threshold

Published by arunagrawal84 about 7 years ago

  • Allow configuration of the size of large partitions that get logged by Cassandra during compaction.
  • Make DSE Audit log tuning bindable with default way as YAML (since DSE 4.x).
Priam - Remove guava dependency and create hints folder

Published by arunagrawal84 over 7 years ago

  1. Remove guava dependency from NewTokenGenerator
  2. Create hints folder for Cassandra 3.x: From Cassandra 3.x, C* would need a separate hints folder.
Priam - Remove guava dependency from new token retriever

Published by arunagrawal84 over 7 years ago

Remove the dependency of guava from NewTokenRetriever.java

Priam - BackupStatusMgr, Flush CRON and bug fix

Published by arunagrawal84 over 7 years ago

  1. Make backup/snapshot status manager store additional details like meta file location.
  2. Ensure it can save last 60 snapshot days.
  3. Allow bindable values on how to save snapshot status in file/datastore. Default implementation stores in a file on the local instance.
  4. Non-backward compatible. The previous backup file gets overwritten with new values(null) during the upgrade process.
  5. By default flush scheduler type is HOUR (backward compatible). If the flush interval is not set, the flush task is considered OFF. Similar behavior for CRON.
  6. Resource leak (Too many open files) while calling CassandraMonitor.
    Note: JVM GC should clean the file descriptors, but there could be a situation where JVM GC is not able to keep up.
Priam - Bug Fix: Resource leak

Published by arunagrawal84 over 7 years ago

Resource leak (Too many open files) while calling CassandraMonitor.
Note: JVM GC should clean the file descriptors, but there could be a situation where JVM GC is not able to keep up.

Priam - Enable CRON expression on flush

Published by arunagrawal84 over 7 years ago

By default flush scheduler type is HOUR (backward compatible). If the flush interval is not set, the flush task is considered OFF. Similar behavior for CRON.

Priam - BackupStatusMgr changes

Published by arunagrawal84 over 7 years ago

  1. Make backup/snapshot status manager store additional details like meta file location.
  2. Ensure it can save last 60 snapshot days.
  3. Allow bindable values on how to save snapshot status in file/datastore. Default implementation stores in a file on the local instance.
  4. Non-backward compatible. The previous backup file gets overwritten with new values(null) during the upgrade process.
Priam - Update dependencies

Published by arunagrawal84 over 7 years ago

Update dependencies
Remove deprecation warnings
Update javadoc