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 underdb.discovery.config
(discovery
can optionally accept differenttype
s of defaults instead of a customconfig
) - M3DB:
db.fs
config key renamed todb.filesystem
- M3DB:
db.writeNewSeriesLimitPerSecond
config key nested underdb.limits
asdb.limits.writeNewSeriesPerSecond
- M3Coordinator:
cluster.namespaces.storageMetricsType
removed - M3Coordinator:
tagOptions.tagOptions
no longer supportslegacy
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
, andcost_reporter_over_datapoints_limit
.