Ngageoint Scale Versions Save

Processing framework for containerized algorithms

5.5.0

5 years ago

Dependencies

  • DC/OS 1.9+
  • Docker 1.11+
  • ElasticSearch 2.4
  • PostgreSQL 9.4+, PostGIS 2.0+
  • Message Broker (RabbitMQ 3.6 or Amazon Web Services SQS)
  • Vault 0.6.2+ (only if not using DC/OS Enterprise for secrets storage)

Deprecated

  • The v4 version of the REST API is now deprecated. We recommend that you migrate all use of the Scale REST API to use the new v5 REST API. The changes between the v4 and v5 versions are:
    1. The /v4/sources/{id}/ API has been replaced by a v5 version. The new v5 version removes the "ingests" and "products" fields, which were expensive to include. To get the same information, users should now use /v5/sources/{id}/ingests/, /v5/sources/{id}/jobs/, and /v5/sources/{id}/products/. The new /v5/sources/{id}/ API also removes the ability to use the file name in the URL.
    2. The /v4/status/ API has been replaced by a v5 version. The new v5 version is designed to be a near-real time look at the scheduler status and updates approximately every 5 seconds.
    3. The /v4/nodes/ API has been replaced with a v5 version. The new v5 version removes the port, slave_id, is_paused_errors, and last_offer fields in the response.
    4. The /v4/nodes/{id}/ API has been replaced with a v5 version. The new v5 version removes the port, slave_id, is_paused_errors, last_offer, resources, disconnected, and job_exes_running fields in the response.
    5. The /v4/nodes/status/ API has been deprecated in favor of the new /v5/status/ API.

New Features

  • Created new v6 version of the recipe detail API (Issue 985)
  • Created new v6 version of the job detail API (Issue 984)
  • Created a new v6 version of the re-queue jobs API that utilizes the messaging system (Issue 183)
  • Created a new API for canceling jobs that works similarly to the v6 re-queue jobs API (Issue 1020)
  • Created new v6 version of the batch REST APIs (Issue 670)
  • Created new v6 version of the system REST APIs (Issue 1145)
  • Created new system job to delete workspace files (Issue 1117)
  • Created new v6 version of the scheduler REST APIs (Issue 1144)
  • Created new v6 version of the diagnostic REST APIs (Issue 1133)
  • Created new v6 version of the metrics REST APIs (Issue 1135)
  • Created new v6 version of the ingest REST APIs (Issue 1044)
  • Created new v6 version of the node REST APIs (Issue 1136)

Enhancements/Updates

  • Moved job/product publishing to its own backend message (Issue 1023)
  • Added Scale job ID, recipe ID, and batch ID as env vars for all jobs (Issue 1073)
  • Moved recipe reprocessing to the backend messaging system (Issue 1029)
  • Add job count metrics to recipes (Issue 1035)
  • Implemented calculation of job and recipe metrics for batches (Issue 1037)
  • Added capability to turn superseded filtering on/off for the jobs table in the web UI (Issue 1100)
  • The v5 sources REST APIs have been deprecated (Issue 1139)
  • The v5 import/export REST APIs have been deprecated (Issue 1137)
  • Added Scale UI control to set resource level (Issue 1188)

Bug Fixes

  • Fixed bug with job details UI page (Issue 1108)
  • Fixed issues with REST API serializers that broke some APIs (Issue 1104)
  • Fixed bug with detecting file size when a transferring file became lost (Issue 1112)
  • Fixed bug where canceled jobs were getting queued after their parent jobs completed (Issue 1128)
  • Upgraded some Python dependencies to fix security vulnerabilities (Issue 1182)

Database Migrations

These are relatively quick database changes applied using Django migrations to alter tables, constraints, indexes, etc. The migrations are applied during the start up of the Scale scheduler.

  • Added the new fields batch_id, recipe_id, and root_recipe_id to the job table. Foreign key indexes are also created for these fields.
  • Added the new fields batch_id, recipe_id, seed_started, and seed_ended to the job_exe table. Foreign key indexes are also created for batch_id and recipe_id. NOTE: The index creation could potentially take a long time depending on the size of your job_exe table.
  • Added the new fields batch_id and recipe_id to the queue table. Foreign key indexes are also created for these fields.
  • Added the new field batch_id to the recipe table with a foreign key index. Also the new fields input_file_size, source_ended, source_started, jobs_total, jobs_pending, jobs_blocked, jobs_queued, jobs_running, jobs_failed, jobs_completed, jobs_canceled, and is_completed are added to recipe.
  • The data field in the recipe table has been renamed to input.
  • In the job table, the data field is renamed to input, results is renamed to output, disk_in_required is renamed to input_file_size, and the cpus_required, mem_required, and disk_out_required fields are removed.
  • Added the fields jobs_total, jobs_pending, jobs_blocked, jobs_queued, jobs_running, jobs_failed, jobs_completed, jobs_canceled, recipes_completed, recipes_total, recipe_type_rev_id, configuration, is_creation_done, is_superseded, recipes_estimated, root_batch_id, superseded_batch_id, and superseded to the batch table.
  • Created a new table called batch_metrics.
  • Added a new field resource_level to the scheduler table.
  • Renamed the recipe_job table to recipe_node, renamed its job_name field to node_name, and added the new field sub_recipe_id.

Database Updates

These are long running database changes related to actual data row updates that run in the background in a Scale system task. These updates are performed while Scale is running so they don't increase down time when deploying a new Scale version.

  • The new batch_id, recipe_id, and root_recipe_id fields on the job and recipe tables are populated.
  • The new seed_started and seed_ended fields on the job_exe_end table are populated.
  • The new is_completed field on the recipe table is set to true for each recipe that has a populated (non-null) completed field.
  • The new is_creation_done, recipes_estimated, recipe_type_rev_id, and configuration fields on the batch table are populated with their correct values.

5.4.0

6 years ago

Dependencies

  • DC/OS 1.9+
  • Docker 1.11+
  • ElasticSearch 2.4
  • PostgreSQL 9.4+, PostGIS 2.0+
  • Message Broker (RabbitMQ 3.6 or Amazon Web Services SQS)
  • Vault 0.6.2+ (only if not using DC/OS Enterprise for secrets storage)

Deprecated

  • The v4 version of the REST API is now deprecated. We recommend that you migrate all use of the Scale REST API to use the new v5 REST API. The changes between the v4 and v5 versions are:
    1. The /v4/sources/{id}/ API has been replaced by a v5 version. The new v5 version removes the "ingests" and "products" fields, which were expensive to include. To get the same information, users should now use /v5/sources/{id}/ingests/, /v5/sources/{id}/jobs/, and /v5/sources/{id}/products/. The new /v5/sources/{id}/ API also removes the ability to use the file name in the URL.
    2. The /v4/status/ API has been replaced by a v5 version. The new v5 version is designed to be a near-real time look at the scheduler status and updates approximately every 5 seconds.
    3. The /v4/nodes/ API has been replaced with a v5 version. The new v5 version removes the port, slave_id, is_paused_errors, and last_offer fields in the response.
    4. The /v4/nodes/{id}/ API has been replaced with a v5 version. The new v5 version removes the port, slave_id, is_paused_errors, last_offer, resources, disconnected, and job_exes_running fields in the response.
    5. The /v4/nodes/status/ API has been deprecated in favor of the new /v5/status/ API.

New Features

  • Added new v6 REST APIs for accessing information on a job's executions (Issue 983)
  • Implemented a configurable system logging level (set through the scheduler REST API) that controls the logging output of Scale system components (Issue 394)

Enhancements/Updates

  • The failing/re-queuing of running jobs after a scheduler restart has been moved to the messaging backend (Issue 1009)
  • The job type ID has been added to the meta-data for each captured job log message in ElasticSearch (Issue 948)
  • The completion of running jobs has been moved to the messaging backend (Issue 1013)
  • The time range filter on the source file UI page is now disabled when filtering on file name (Issue 1076)
  • The usage of the file_ancestry_link model has been refactored to improve performance. Eventually we anticipate removing this model entirely. (Issue 1019)

Bug Fixes

  • Fixed bug where a command message exception would kill the entire message handler (Issue 1054)
  • Fixed the create_job_exe_ends command message to handle duplicate models (Issue 1056)
  • Fixed bug where a PostgreSQL database restart/crash would cause the scheduler to hold onto old connections and fail to recover. Now the scheduler will exit and restart appropriately (Issue 1031).
  • Fixed a bug that occurs when legacy job types use existing builtin system errors (Issue 1052)
  • Fixed bug where extra whitespace was left in command arguments when optional inputs were omitted (Issue 1016)
  • Fixed bug with hidden filter criteria for tables on data UI page (Issue 1075)
  • Fixed critical bug in the recipe update message that prevented child jobs from being queued (Issue 1079)
  • Fixed bug where the scheduler background threads could be created multiple times and insert duplicate job executions (Issue 1074)
  • The Scale system database update now finds duplicate job executions caused by the bug that was fixed in Issue 1074 and deletes them (Issue 1077)

Database Migrations

These are relatively quick database changes applied using Django migrations to alter tables, constraints, indexes, etc. The migrations are applied during the start up of the Scale scheduler.

  • A new field system_logging_level is added to the scheduler table
  • New fields source_started and source_ended are added to the job table

Database Updates

These are long running database changes related to actual data row updates that run in the background in a Scale system task. These updates are performed while Scale is running so they don't increase down time when deploying a new Scale version.

  • The database update now finds duplicate job executions caused by the bug that was fixed in Issue 1074 and deletes them

5.3.0

6 years ago

Dependencies

  • DC/OS 1.9+
  • Docker 1.11+
  • ElasticSearch 2.4
  • PostgreSQL 9.4+, PostGIS 2.0+
  • Message Broker (RabbitMQ 3.6 or Amazon Web Services SQS)
  • Vault 0.6.2+ (only if not using DC/OS Enterprise for secrets storage)

Deprecated

  • The v4 version of the REST API is now deprecated. We recommend that you migrate all use of the Scale REST API to use the new v5 REST API. The changes between the v4 and v5 versions are:
    1. The /v4/sources/{id}/ API has been replaced by a v5 version. The new v5 version removes the "ingests" and "products" fields, which were expensive to include. To get the same information, users should now use /v5/sources/{id}/ingests/, /v5/sources/{id}/jobs/, and /v5/sources/{id}/products/. The new /v5/sources/{id}/ API also removes the ability to use the file name in the URL.
    2. The /v4/status/ API has been replaced by a v5 version. The new v5 version is designed to be a near-real time look at the scheduler status and updates approximately every 5 seconds.
    3. The /v4/nodes/ API has been replaced with a v5 version. The new v5 version removes the port, slave_id, is_paused_errors, and last_offer fields in the response.
    4. The /v4/nodes/{id}/ API has been replaced with a v5 version. The new v5 version removes the port, slave_id, is_paused_errors, last_offer, resources, disconnected, and job_exes_running fields in the response.
    5. The /v4/nodes/status/ API has been deprecated in favor of the new /v5/status/ API.

New Features

  • Added new REST APIs for querying general Scale files, as well as the file inputs for jobs and recipes (Issue 954)

Enhancements/Updates

  • Update to how the Scale build works (Issue 1006)
  • Moved the job failure handling to the backend messaging system for improved scalability. This also corrects the bug introduced in v5.2.0 where jobs would ignore their completion/failure and remain stuck in the RUNNING state. (Issue 977)

Bug Fixes

  • Fixed a bug related to batch job creation (Issue 963)
  • Fixed a bug with trigger rules (Issue 991)
  • Fixed some performance issues related to large numbers of file ancestry links (Issue 994)
  • Fixed issue where Docker pull fails if dangling images cannot be cleaned up (Issue 951)
  • Fixed a bug with the queue migration introduced in Scale v5.2.0 (Issue 1002)
  • Fixed a bug where the Docker cleanup would fail on containers that never started (Issue 952)
  • Fixed documentation regarding the SCALE_BROKER_URL env var (Issue 997)

Database Migrations

These are relatively quick database changes applied using Django migrations to alter tables, constraints, indexes, etc. The migrations are applied during the start up of the Scale scheduler.

  • A new field is_system is added to the recipe_type table.

5.2.1

6 years ago

Dependencies

  • DC/OS 1.9+
  • Docker 1.11+
  • ElasticSearch 2.4
  • PostgreSQL 9.4+, PostGIS 2.0+
  • Message Broker (RabbitMQ 3.6 or Amazon Web Services SQS)
  • Vault 0.6.2+ (only if not using DC/OS Enterprise for secrets storage)

Deprecated

  • The v4 version of the REST API is now deprecated. We recommend that you migrate all use of the Scale REST API to use the new v5 REST API. The changes between the v4 and v5 versions are:
    1. The /v4/sources/{id}/ API has been replaced by a v5 version. The new v5 version removes the "ingests" and "products" fields, which were expensive to include. To get the same information, users should now use /v5/sources/{id}/ingests/, /v5/sources/{id}/jobs/, and /v5/sources/{id}/products/. The new /v5/sources/{id}/ API also removes the ability to use the file name in the URL.
    2. The /v4/status/ API has been replaced by a v5 version. The new v5 version is designed to be a near-real time look at the scheduler status and updates approximately every 5 seconds.
    3. The /v4/nodes/ API has been replaced with a v5 version. The new v5 version removes the port, slave_id, is_paused_errors, and last_offer fields in the response.
    4. The /v4/nodes/{id}/ API has been replaced with a v5 version. The new v5 version removes the port, slave_id, is_paused_errors, last_offer, resources, disconnected, and job_exes_running fields in the response.
    5. The /v4/nodes/status/ API has been deprecated in favor of the new /v5/status/ API.

Known Issues

  • A bug has been introduced where jobs may not complete or fail correctly, leaving them in the RUNNING state. This can occur due to a race condition where the completion or failure occurs before the backend update that sets the jobs to the RUNNING state. For a workaround, any stuck jobs can be canceled and requeued. A fix will be coming in the Scale v5.3.0 release.

Bug Fixes

  • Fixed bug where optional job inputs where not being removed when performing command argument substitution (Issue 980)
  • Fixed bug where the jobs "Requeue All" button does not submit all filter information to the API (Issue 978)

5.2.0

6 years ago

Dependencies

  • DC/OS 1.9+
  • Docker 1.11+
  • ElasticSearch 2.4
  • PostgreSQL 9.4+, PostGIS 2.0+
  • Message Broker (RabbitMQ 3.6 or Amazon Web Services SQS)
  • Vault 0.6.2+ (only if not using DC/OS Enterprise for secrets storage)

Deprecated

  • The v4 version of the REST API is now deprecated. We recommend that you migrate all use of the Scale REST API to use the new v5 REST API. The changes between the v4 and v5 versions are:
    1. The /v4/sources/{id}/ API has been replaced by a v5 version. The new v5 version removes the "ingests" and "products" fields, which were expensive to include. To get the same information, users should now use /v5/sources/{id}/ingests/, /v5/sources/{id}/jobs/, and /v5/sources/{id}/products/. The new /v5/sources/{id}/ API also removes the ability to use the file name in the URL.
    2. The /v4/status/ API has been replaced by a v5 version. The new v5 version is designed to be a near-real time look at the scheduler status and updates approximately every 5 seconds.
    3. The /v4/nodes/ API has been replaced with a v5 version. The new v5 version removes the port, slave_id, is_paused_errors, and last_offer fields in the response.
    4. The /v4/nodes/{id}/ API has been replaced with a v5 version. The new v5 version removes the port, slave_id, is_paused_errors, last_offer, resources, disconnected, and job_exes_running fields in the response.
    5. The /v4/nodes/status/ API has been deprecated in favor of the new /v5/status/ API.

Known Issues

  • A bug has been introduced where jobs may not complete or fail correctly, leaving them in the RUNNING state. This can occur due to a race condition where the completion or failure occurs before the backend update that sets the jobs to the RUNNING state. For a workaround, any stuck jobs can be canceled and requeued. A fix will be coming in the Scale v5.3.0 release.

New Features

  • A new system task has been added that will perform needed database changes in the background, allowing Scale to run at the same time (Issue 928)
  • Created the Scale message handler service to launch tasks that consume and process the messages in the asynchronous backend system. The number of message consumers can be controlled via the Scale REST API (Issue 959).

Enhancements/Updates

  • Updated REST APIs for creating, importing, and editing job types to take secret setting values provided in the configuration JSON and store them in Vault for security (Issue 816)
  • Updated trigger rules to allow matching on one tag within a list of data tags (match any) and allow a file to be excluded (not matched) with any tag within an exclusion list (Issue 88)
  • Completed a major database refactor that split the job_exe table into there separate tables for future scalability (Issue 928)
  • Created the first backend message command that creates job_exe_end models for jobs canceled off of the queue (Issue 962)
  • Moved update of jobs to RUNNING status to the new backend messaging system and added node field to job model (Issue 965)
  • Moved creation of job_exe_end models to the new backend messaging system (Issue 974)
  • Created an index for the created field in the scale_file model (Issue 967)
  • Improved performance for the product updates REST API (Issue 968)
  • Updated recipe comparisons to detect changed jobs that supersede one another when a recipe definition is updated (Issue 656)

Bug Fixes

  • Fixed a bug in retrieving secret settings values from Vault (Issue 938)
  • Fixed a rare bug related to the scheduler database sync (Issue 953)
  • Fixed bug where the job execution REST API encountered an error handling old configuration and resource JSON values in the database (Issue 968)

JSON Schema Changes

  • The job execution configuration schema has been updated to version 2.0 to contain all configuration used to launch each execution task.

Starting with this release, changes to the database will occur in two steps:

Database Migrations

These are relatively quick database changes applied using Django migrations to alter tables, constraints, indexes, etc. The migrations are applied during the start up of the Scale scheduler.

  • The configuration field in the job table is removed.
  • The job_exe table is effectively split into three total tables. To achieve this two new tables are created: job_exe_end and job_exe_output. Also new fields job_type_id, exe_num are added to job_exe, field disk_in_scheduled is renamed to input_file_size, many fields in job_exe have been made nullable (they will be removed in the future), and a new multi-column index on (job_id, exe_num) is added to job_exe. The new index may take a little while to create depending on the size of your job_exe table.
  • The queue table is deleted and re-created with a different column set. Then a custom migration runs to populate the new queue table will all currently queued jobs. The length of this migration will depend upon how many jobs are currently queued.
  • A new field node_id is added to the job table.
  • A new index is created on the scale_file created field.

Database Updates

These are long running database changes related to actual data row updates that run in the background in a Scale system task. These updates are performed while Scale is running so they don't increase down time when deploying a new Scale version.

  • Fields from the job_exe table have been made nullable and moved to the new job_exe_end and job_exe_output tables. To update legacy data, the Scale database updater will grab old field values from the job_exe table, bulk create the correct corresponding rows for the job_exe_end and job_exe_output tables, and set the old fields in the job_exe table to null.

5.1.1

6 years ago

Dependencies

  • DC/OS 1.9+
  • Docker 1.11+
  • ElasticSearch 2.4+
  • PostgreSQL 9.4+, PostGIS 2.0+
  • Message Broker (RabbitMQ 3.6 or Amazon Web Services SQS)
  • Vault 0.6.2+ (only if not using DC/OS Enterprise for secrets storage)

Bug Fixes

  • #932: Fixed bug where /v4/products/{file_name}/ was inadvertently removed (404) instead of deprecated.
  • #936: Fixed bug where files detected by Strike or Scan that did not match any ingest rules were not marked as DEFERRED.
  • #941: Updated Marathon Python to v0.9.1 to work with DCOS 1.10 breaking changes in deployment.
  • #943: Fixed a NodeJS dependency issue related to CentOS repositories causing builds to fail.
  • #945: Fixed an incorrect parentheses causing DOCKER_CONFIG setting for registry login info to be swallowed by sub-shell.

5.1.0

6 years ago

Dependencies

  • DC/OS 1.9+
  • Docker 1.11+
  • ElasticSearch 2.4
  • PostgreSQL 9.4+, PostGIS 2.0+
  • Message Broker (RabbitMQ 3.6 or Amazon Web Services SQS)
  • Vault 0.6.2+ (only if not using DC/OS Enterprise for secrets storage)

Deprecated

  • The /v5/products/{id}/ API has been replaced by a v6 version. The new v6 version removes the "sources", "ancestors", and "descendants" fields, which were expensive to include. The new /v6/products/{id}/ API also removes the ability to use the file name in the URL.
  • The v4 version of the REST API is now deprecated. We recommend that you migrate all use of the Scale REST API to use the new v5 REST API. The changes between the v4 and v5 versions are:
    1. The /v4/sources/{id}/ API has been replaced by a v5 version. The new v5 version removes the "ingests" and "products" fields, which were expensive to include. To get the same information, users should now use /v5/sources/{id}/ingests/, /v5/sources/{id}/jobs/, and /v5/sources/{id}/products/. The new /v5/sources/{id}/ API also removes the ability to use the file name in the URL.
    2. The /v4/status/ API has been replaced by a v5 version. The new v5 version is designed to be a near-real time look at the scheduler status and updates approximately every 5 seconds.
    3. The /v4/nodes/ API has been replaced with a v5 version. The new v5 version removes the port, slave_id, is_paused_errors, and last_offer fields in the response.
    4. The /v4/nodes/{id}/ API has been replaced with a v5 version. The new v5 version removes the port, slave_id, is_paused_errors, last_offer, resources, disconnected, and job_exes_running fields in the response.
    5. The /v4/nodes/status/ API has been deprecated in favor of the new /v5/status/ API.

New Features

  • Created a new /v5/products/{id}/sources/ REST API to return the source files for a particular product (Issue 892)
  • Created new top level data UI page that allows filtering a table of source files and viewing source file details. The details include tables for the jobs, products, and ingests associated with a particular source file. (Issue 876)
  • Implemented backend message passing capability that utilizes RabbitMQ or SQS. This messaging backend will be used in the future to improve system scalability. (Issue 838)
  • Implemented new capability to define custom scalar resources on nodes and then add those custom resource requirements to job types (Issue 873)
  • Added capability for job's memory requirements to be based upon the job's input file size (Issue 914)

Enhancements/Updates

  • Refactored scheduler to decrease resource fragmentation, block lower priority jobs from starving higher priority jobs, and improve handling of lost task (Issue 852, Issue 923)
  • Deprecated the v5 product detail API to remove expensive fields and removed ability to use file name in the URL (Issue 893)
  • Added load balance support to Scale's ElasticSearch (Issue 869)
  • Relaxed health checks for RabbitMQ (Issue 870)
  • Added a Docker pull task to the start of every job execution. This prevents any issues where a long Docker pull would time out the Mesos task staging (Issue 880)
  • Added additional filters to products REST API, including recipe and batch filters (Issue 842)
  • Updated /v5/status/ REST API to include scheduler, resource, and metrics information (Issue 887)
  • Added UI About section text to the online docs so we can remove the About page later (Issue 908)
  • Added scheduler status information to the /v5/status/ REST API (Issue 911)
  • Job and recipe REST APIs can now be filtered by batch (Issue 850)
  • Batches now track counts for completed jobs and recipes (Issue 851)

Bug Fixes

  • Fixed bugs in the recipe detail UI page (Issue 655)
  • Fixed bug in the node detail UI page (Issue 867)
  • Fixed final bug in recipe detail UI page (Issue 894)
  • Fixed broken job type pausing (Issue 883)
  • Fixed bug where Docker login credentials were not correctly passed to Scale Docker pull tasks (Issue 707)
  • Fixed bug with overflow on the documentation pages (Issue 901)
  • Removed Apache example files from the Scale Docker build (Issue 907)

JSON Schema Changes

  • Created a new JSON schema (version 1.0) for representing a set of scalar resources.

Database Migrations

  • A new table called job_input_file is created.
  • The table recipe_file is renamed to recipe_input_file and gets a new field called recipe_input.
  • The following new fields are added to the scale_file table: batch_id, job_output, recipe_id, recipe_job, recipe_type_id, source_ended, and source_started. NOTE: This may take a long time depending on the size of your scale_file table.
  • A new field resources is added to table job_exe. NOTE: This may take a long time depending on the size of your job_exe table.
  • A new field custom_resources is added to table job_type.
  • In the queue table, the disk_in_required field is renamed to input_file_size, a new resources field is added, and the node_required, cpus_required, disk_out_required, disk_total_required, and mem_required fields are removed.
  • Two new fields, completed_job_count and completed_recipe_count, are added to the batch table.
  • In the job_type table, mem_required is renamed to mem_const_required and a new field mem_mult_required is added.

5.0.0

6 years ago

Dependencies

  • DC/OS 1.9+
  • Docker 1.11+
  • ElasticSearch 2.4
  • PostgreSQL 9.4+, PostGIS 2.0+
  • Message Broker (RabbitMQ 3.6 or Amazon Web Services SQS)
  • Vault 0.6.2+ (only if not using DC/OS Enterprise for secrets storage)

Breaking Changes

  • The v3 version of the REST API has now been removed. All HTTP calls to the v3 REST API will result in a 404 status code. Please migrate all use of the Scale REST API to use the new v5 REST API.
  • Support for Docker 1.10 and DC/OS 1.8 has been dropped. Please upgrade to Docker 1.11+ and DC/OS 1.9+.
  • A new env var SCALE_BROKER_URL has been added for connecting Scale to a new required message broker component, either RabbitMQ (for on-premise environments) or AWS SQS (for AWS environments). If the env var is not specified, Scale will automatically deploy RabbitMQ.

Deprecated

  • The v4 version of the REST API is now deprecated. We recommend that you migrate all use of the Scale REST API to use the new v5 REST API. The changes between the v4 and v5 versions are:
    1. The /v4/sources/{id}/ API has been replaced by a v5 version. The new v5 version removes the "ingests" and "products" fields, which were expensive to include. To get the same information, users should now use /v5/sources/{id}/ingests/, /v5/sources/{id}/jobs/, and /v5/sources/{id}/products/. The new /v5/sources/{id}/ API also removes the ability to use the file name in the URL.
    2. The /v4/status/ API has been replaced by a v5 version. The new v5 version is designed to be a near-real time look at the scheduler status and updates approximately every 5 seconds.
    3. The /v4/nodes/ API has been replaced with a v5 version. The new v5 version removes the port, slave_id, is_paused_errors, and last_offer fields in the response.
    4. The /v4/nodes/{id}/ API has been replaced with a v5 version. The new v5 version removes the port, slave_id, is_paused_errors, last_offer, resources, disconnected, and job_exes_running fields in the response.
    5. The /v4/nodes/status/ API has been deprecated in favor of the new /v5/status/ API.

Known Issues

  • You may run into some problems with the JSON column conversions in the job_type table. If you receive scheduler exceptions complaining about JSON errors, run the following SQL commands against your database:
    • update job_type set configuration = '{}' where configuration = '"{}"'
    • update job_type set docker_params = '{}'

New Features

  • New UI page for creating/handling workspace scans (Issue 815)
  • New v5 /status/ REST API for getting near-real time scheduler state regarding node status and execution metrics. There are also new v5 versions of the node REST API calls. (Issue 735, Issue 833, Issue 854)
  • New REST API created to queue built-in diagnostic jobs that can be used for testing Scale (Issue 841)
  • Removed the v3 REST API and moved to the v5 REST API as the new default (Issue 847)
  • The node UI pages are completely new and re-designed to work off of the new /v5/status/ REST API to provide near-real time node status (Issue 823)
  • A message queuing backend is being added to Scale to allow asynchronous event processing for future scalability. A new env var SCALE_BROKER_URL has been added to connect Scale to the message broker. If none is specified, Scale automatically deploys RabbitMQ. (Issue 865)

Enhancements/Updates

  • Moved location of batch creation button on batch UI page (Issue 818)
  • Strike UI page now allows reordering of ingest rules (Issue 688)
  • Added display of shared memory field to job type UI page (Issue 783)
  • Updated development documentation (Issue 809)
  • Updated Scale to use Django 1.11 (Issue 168)
  • Created error for general health check failures (Issue 825)
  • Improved health checks for Vault (Issue 810)
  • Added env var to suppress Vault SSL warnings for DC/OS self-signed certificates if desired (Issue 831)
  • Updated Scale to only clean up Docker volumes with a "scale_" prefix (Issue 836)
  • Improved scheduling performance when queue is very large (Issue 845)
  • Improved job type metrics (counts over last 3 hours) performance on the job types UI page (Issue 839)
  • Update QuickStart documentation to discuss input/output workspaces (Issue 855)
  • Relaxed Strike's SQS format requirements (Issue 844)
  • Updated scan documentation to discuss recursive flag (Issue 853)
  • Updated our logging system to work with Docker 1.11+, support for Docker 1.10 is dropped (Issue 790)

Bug Fixes

  • Fixed UI pagination bug (Issue 808)
  • Fixed issues deploying Vault in Docker (Issue 804)
  • Fixed scan bug in dealing with unmatched files (Issue 848)

JSON Schema Changes

  • N/A

Database Migrations

  • As part of the update to Django 1.11, all json fields in the PostGIS database will be rewritten as jsonb fields. This is a very expensive migration since it will require multiple tables to be rewritten.
  • A new field called status is added to the scheduler table to hold the near-real time scheduler state in JSON form.
  • The shared_resource tables are removed.
  • A new index is added for the job_exe.ended field.
  • A new index is added for the job.last_status_change field.
  • The node field archived is renamed to deprecated.

4.4.2

7 years ago

Dependencies

  • DC/OS 1.8+
  • Docker 1.10
  • ElasticSearch 2.4
  • PostgreSQL 9.3+, PostGIS 2.0+
  • Vault 0.6.2+ (only if not using DC/OS Enterprise for secrets storage)

Deprecated

  • The following v4 REST API calls are now deprecated:
    1. The /v4/sources/{id}/ API has been replaced by a v5 version. The new v5 version removes the "ingests" and "products" fields, which were expensive to include. To get the same information, users should now use /v4/sources/{id}/ingests/, /v4/sources/{id}/jobs/, and /v4/sources/{id}/products/. The new /v5/sources/{id}/ API also removes the ability to use the file name in the URL.
  • The v3 version of the REST API is now deprecated. We recommend that you migrate all use of the Scale REST API to use the new v4 REST API. There are only a few changes between the v3 and v4 versions:
    1. The old log API /job-executions/{id}/logs/ is NOT available in v4 (returns 404).
    2. For the job details API, v4 does not include the deprecated "input_files" and "products" fields while v3 still does.
    3. For the recipe details API, v4 does not include the deprecated "input_files" field while v3 still does.

Known Issues

  • Scale's logging does not work correctly with any Docker newer than 1.10. This is due to a breaking change made to Docker's command line arguments. We recommend that you use Docker 1.10 for this version of Scale.

Bug Fixes

  • Fix for stalled Scale startup due to Scale Cleanup failure when Rexray detected remote volumes. (Issue 836)

4.4.1

7 years ago

Dependencies

  • DC/OS 1.8+
  • Docker 1.10
  • ElasticSearch 2.4
  • PostgreSQL 9.3+, PostGIS 2.0+
  • Vault 0.6.2+ (only if not using DC/OS Enterprise for secrets storage)

Deprecated

  • The following v4 REST API calls are now deprecated:
    1. The /v4/sources/{id}/ API has been replaced by a v5 version. The new v5 version removes the "ingests" and "products" fields, which were expensive to include. To get the same information, users should now use /v4/sources/{id}/ingests/, /v4/sources/{id}/jobs/, and /v4/sources/{id}/products/. The new /v5/sources/{id}/ API also removes the ability to use the file name in the URL.
  • The v3 version of the REST API is now deprecated. We recommend that you migrate all use of the Scale REST API to use the new v4 REST API. There are only a few changes between the v3 and v4 versions:
    1. The old log API /job-executions/{id}/logs/ is NOT available in v4 (returns 404).
    2. For the job details API, v4 does not include the deprecated "input_files" and "products" fields while v3 still does.
    3. For the recipe details API, v4 does not include the deprecated "input_files" field while v3 still does.

Known Issues

  • Scale's logging does not work correctly with any Docker newer than 1.10. This is due to a breaking change made to Docker's command line arguments. We recommend that you use Docker 1.10 for this version of Scale.

New Features