Skip to content

v1.0.0

Compare
Choose a tag to compare
@robskillington robskillington released this 16 Nov 16:36
· 1044 commits to master since this release

Changelog

Overview

This release makes breaking changes to the APIs and configuration to provide a simpler experience both for setup and operating M3.

  • New M3 website.
  • New M3 documentation.
  • Simple M3DB configuration and guides.
  • M3DB hard limits limits for high resiliency under load.
  • Bootstrap rearchitecture, now able to boostrap hundreds of millions of recently written datapoints in minutes for reads on restart.
  • Continued focus on baseline performance release-over-release.

Features

  • M3DB: Namespace resolution and retention now configured dynamically via API and stored in etcd instead of being defined statically in M3Coordinator configuration.
message DatabaseCreateRequest {
  // ...

  // Optional aggregated namespace to create in 
  // addition to unaggregated namespace
  AggregatedNamespace aggregated_namespace = 8;
}
  • M3DB: Minimal configuration file with default settings looks like:
coordinator: {}
db: {}

and includes common settings such as global query limits.

Backwards Incompatible Changes

Configuration

  • M3DB: db.bootstrap.bootstrappers removed
  • M3DB: db.config nested under db.discovery.config (discovery can optionally accept different types of defaults instead of a custom config)
  • M3DB: db.fs config key renamed to db.filesystem
  • M3DB: db.writeNewSeriesLimitPerSecond config key nested under db.limits as db.limits.writeNewSeriesPerSecond
  • M3Coordinator: cluster.namespaces.storageMetricsType removed
  • M3Coordinator: tagOptions.tagOptions no longer supports legacy type
  • M3Query: limits.perQuery.maxComputedDatapoints removed
  • M3Query: limits.perQuery.maxFetchedDatapoints removed
  • M3Query: limits.global.maxFetchedDatapoints removed
  • M3Query: cache removed
  • M3Query: listenAddress changed to always be resolved as a string from config. Format changed from
listenAddress:
  config: "..."
  value: "..."

to

listenAddress: "..."

API

  • M3DB: /services/m3db/database/config/bootstrappers dynamic bootstappers endpoint removed
  • M3Coordinator: Removed deprecated URL /api/v1/namespace in favor of stable preferred URL /api/v1/services/m3db/namespace
  • M3Coordinator: Removed deprecated URL /api/v1/namespace/init in favor of stable preferred URL /api/v1/services/m3db/namespace/init
  • M3Coordinator: Removed deprecated URL /api/v1/namespace/unagg in favor of stable preferred URL /api/v1/services/m3db/namespace/unagg
  • M3Coordinator: Removed deprecated URL /api/v1/placement in favor of stable preferred URL /api/v1/services/m3db/placement
  • M3Coordinator: Removed deprecated URL /api/v1/placement/init in favor of stable preferred URL /api/v1/services/m3db/placement/init

Misc

  • M3Query: Concept of data point limit enforcers removed in favor of the other remaining query limits (e.g. max series). This also removed metrics cost_reporter_datapoints, cost_reporter_datapoints_counter, and cost_reporter_over_datapoints_limit.