Skip to content

Latest commit

 

History

History
177 lines (143 loc) · 6.99 KB

CHANGELOG.md

File metadata and controls

177 lines (143 loc) · 6.99 KB

CHANGELOG

This CHANGELOG attemps to follow most conventions established by http://keepachangelog.com/.

[0.9.0] - 2016-09-13

Added

  • Executor: Add support to send notifications via email;
  • DemoTransferS3: New demo project to manually test & show live active transfers to S3;
  • Scheduler: Add support to redirect sub-process I/O;
  • Scheduler: Add CLI argument to reinstall the service;
  • New script to install dependency packages via NuGet;

Changed

  • Rename application to Everest;
  • Updated dependencies;
  • S3: Improve formatting of warning messages;
  • DemoTransferPerfTest: Let user specify access/secret keys and bucket name;
  • Executor: Remove dependency on log4net - We are using NLog;
  • Setup: Update project;

Fixed

  • Data: Fix missing column in UQ;
  • Data: Also consider the backup ID in GetLatestVersionWithTransferStatus;
  • S3: Specify the region endpoint for the chosen bucket when the AmazonS3Client is instantiated. Buckets in the USEast1 region don't require it as it's the default region;
  • Fix most warnings generated by Code Analysis;
  • Storage: Fix issues related to transfer state and transfer file size. Caused remaining bytes not to be properly calculated;
  • Executor: Fix stats not showing total transfer bytes when the operation finishes.
  • Executor: Apparently, the DriveInfo returns names as "X:\", not as "X:";
  • Installer: DELAYED_DURABILITY is only supported by SQL Server >= 2014.

[0.8.0] - 2016-07-01

Added

  • Working implementation of triggerable plan actions;
  • S3: Logged exceptions related to file transfer operations now contain file path information;
  • Executor: Attempt to log AWS SDK metrics using log4net;
  • Data: Add debug helper function to BackupPlanFile;

Changed

  • Updated dependencies;
  • Long paths aren't currently supported by the AWSSDK;
  • Executor: Unmount and remount mapped drives that were mapped using a different credential than the one informed by the user. This may happen if the mapped drive was mounted manually by the user or automatically by the system prior to running the backup/restore operation;
  • Data: Store Synchronization ID on the BackupedFile;
  • Database: Change collation to be Case Sensitive and Accent sensitive; WARNING: Even if you MODIFY the DATABASE, PKs and UQs won't be affected, keeping the previous collation;
  • Data: Tune the database to create the DB file with 50MB and also grow its size by 50MB. The log file now starts at 10MB and grows 10%;
  • Catch more exceptions during file versioning;
  • Scheduler: Run tasks using the SYSTEM credentials;
  • Versioner: When a BackupPlanPathNode doesn't exist, it does not make sense to lookup inner directories/files;

Fixed

  • Backup: Fix an UQ violation which may happen when the same file fails in 2 consecutive backups - related to 7142371;
  • Executor: Strip the \?\ prefix Windows uses for long paths (those > MAX_PATH);
  • GUI: Fix NPE after creating an account from the Backup Plan;
  • Data: Remove unnecessary UQ (BackupPlan, Path) from the BackupPlanFile's table;
  • Versioner: File versioning no longer updates BackupPlanFiles that have been DELETED or REMOVED (this change may not be permanent - I was chasing a bug that tried to insert/update files twice, and it apparently solved it);
  • Versioner: Normalize file paths were needed;
  • Scheduler: Tasks that were scheduled to run on specific week days wrongly run on Sunday as well;
  • Scheduler: Only schedule active tasks - tasks that were deleted should not be scheduled;
  • Scheduler: Catch all exceptions during task scheduling;
  • Scheduler: Only re-schedule tasks for plans that have been changed;
  • Scheduler: Update task if it exists, otherwise create a new one;
  • GUI: Update status of UI controls under certain conditions;
  • Sync: Catch possible exceptions during INSERT/UPDATE operations and log more details;
  • GUI: Fix OpenFileDialog filter;
  • IPC: Prevent invalid messages from propagating exceptions;

[0.7.0] - 2016-01-08

Added

  • Restore: Only set original modified date if the restored file is the latest complete version;
  • GUI: Log session ending event;

Changed

  • Logging: Minimize log polution;
  • Sync: Make cancellation work and improve performance;

Fixed

  • GUI: Fix possible NPE triggered by tab switching;
  • GUI: Always show minutes and seconds for duration periods;
  • Sync: Skip and log S3 keys that don't comply with the standard path conventions, instead of failing the sync;
  • Sync: Fix UQ violation;

[0.6.0] - 2015-12-22

Added

  • GUI: Implement '';
  • S3: New window to create an S3 bucket;
  • Transfer: Make upload chunk size configurable.
  • Test: New Demo application to test upload performance.
  • IPC: Add errorCode parameter to ERROR messages.

Changed

  • Global: Update dependency packages;
  • Logging: Log is now sensitive to active configuration;
  • Executor: Log progress only when a transfer did complete, fail, or was canceled;
  • Executor: In DEBUG and user interactive mode, make the PlanExecutor cancel the current operation in the following conditions:
    • Received Ctrl+C;
    • The parent console is closed;
    • The user is logging out;
    • The machine is shutting down;
  • Executor: Refactor the storage backend interfaces to be synchronous so we can take advantage of Parallel.ForEach;
  • S3: Prefer S3 high-level API over low-level API.
  • S3: Increase read buffer size to improve upload performance.
  • IPC: Change IPC port from 8000 to 35832.
  • IPC: Adjust polling timeout for write to 1/5 of a second;
  • IPC: Avoid spamming the sender of ROUTE messages with ERROR messages when the intended target is not connected.

Fixed

  • Executor: Resuming a backup now processes only pending files;

  • Executor: Fix missing LIMIT on GetLatestByPlan query;

  • Executor: Make operation cancelling work properly;

  • Executor: Improve memory usage: No longer create Tasks for all transfers at once;

  • GUI: Remove all previously listed buckets upon bucket listing failure;

  • GUI: Correctly display the operation's duration after it ends.

  • GUI: Fix unresponsiveness issue that occured when the user canceled a StorageAccount edit. The application became unresponsive for some time because the Refresh() method also does refresh all child models that have the Refresh cascade, such as the one-to-many relationship with BackupPlanFiles.

    The unresponsiveness was more noticeable when the account had a large number of associated files (10000+), making the application load all of them during the Refresh().

    We did fix the issue by removing the Refresh cascade from the beforementioned relationship.

  • IPC: Improve REGISTER and NOT_AUTHORIZED handling.

  • IPC: Fix command ordering to avoid receiving "Not authorized" messages in the GUI. Register early - before the application gets a chance to send other messages that require registration.

  • IPC: Fix port validation.

  • IPC: Catch ObjectDisposedException during socket recv;

  • IPC: Detect when the TCP port is already in use and handle it during the Service starting process so it can fail and exit correctly.