Machine-translated draft — terminology + flow still being reviewed.

Mortar Performance SLO

The Service Level Objectives the Mortar team commits to + monitors for the launch. This doc holds the SLO numbers we expose to customers, not internal stretch goals. Falling below these triggers SLA refunds (the enterprise pack has the detailed mechanism).

Overall availability

MetricBeta (Mortar Cloud beta)GAEnterprise
Uptime (monthly)99.5%99.9%99.95% / 99.99% (tier upcharge)
RPO (data loss)5 min1 min0 (synchronous replication)
RTO (recovery time)30 min5 min< 1 min (BYOC + cross-region)

Beta intentionally targets 99.5% — early-beta customer acceptance, plus a window for ops learning. We’ll raise to 99.9% after 30 real days of runtime in Q1.

Per-primitive latency SLO

Measurement points: same-VPC client inside the Beijing / Shanghai region calling the Mortar API. Cross-region + cross-cloud numbers are listed separately.

database primitive — Postgres operations

Operationp50p95p99
from('t').select(...).limit(N) (N ≤ 100)8 ms30 ms80 ms
from('t').insert(row)12 ms40 ms100 ms
from('t').update(...).eq(...)15 ms50 ms120 ms
from('t').delete().eq(...)10 ms35 ms90 ms
Complex join (3 tables)25 ms80 ms200 ms

p99 over 200 ms triggers an alert.

storage primitive — OSS operations

Operationp50p95p99
Upload < 1 MB80 ms250 ms600 ms
Upload 1-10 MB250 ms800 ms2 s
Download (signed URL mint)10 ms30 ms80 ms
Direct download via CDN (post-sign)30 ms100 ms400 ms

Use multipart for large file uploads; for downloads, signed URLs through the CDN are recommended.

compute primitive — function invoke

Operationp50p95p99Notes
Warm invoke (recent)50 ms200 ms500 msFunction idle pool cached
Cold start (Aliyun FC)800 ms1.5 s3 s100% cold start — real workloads use idle
Cold start (Tencent SCF)1.2 s2.5 s5 sSCF cold start is slower than FC

Slow cold starts are a common FaaS issue, documented transparently; reserved instances (planned) eliminate them.

cache primitive — Redis operations

Operationp50p95p99
GET / SET1 ms3 ms10 ms
MGET (10 keys)2 ms5 ms15 ms
Pub/Sub publish1 ms4 ms12 ms

Measured on Tair (Aliyun Redis) in cn-hangzhou with a same-VPC client. Cross-AZ adds ~20% latency; cross-region is not supported (cache is ephemeral and doesn’t cross-region replicate).

network (egress) — metering accuracy

Mortar bills in two layers: storage signed-URL + API response. The SLO is not latency but billing accuracy:

DimensionAccuracy target
API response bytes (EgressMeter middleware)≥ 99.9% (kernel socket byte-level precise)
OSS signed-URL bytes (projected)± 5% (currently estimates at mint-time by object_size × N-times-signed; planned OSS access-log → ledger reconciliation pipeline to tighten this to ±1%, see roadmap.md)
OSS direct download via CDN± 5% (same as above)

Once the reconcile job ships it aligns projected vs actual access logs (auto-alert on >5% deviation), and month-end bills are issued against reconciled data, not projected. Until then (current launch window) bills are issued against projected with the ±5% tolerance above; the reconciliation pipeline is gated on real traffic appearing.

CDN + cross-region

DimensionDomesticOverseas
OSS download via CDN p9580 ms250 ms
Mortar API p95 (Beijing client → Beijing region)30 msn/a
Mortar API p95 (Shanghai → Beijing region)80 msn/a
Mortar API p95 (Beijing → Singapore, planned)TBD200 ms

After multi-region ships, SLOs are realigned (each region has its own measurement point; international clients hitting the nearest region are evaluated against the local SLO).

Measurement + monitoring

  • Client probe: Aliyun SLS Probe pings key endpoints every 60s from ECS in Beijing / Shanghai / Shenzhen / Singapore.
  • Synthetic traffic: every 5 minutes simulates a real workflow for each primitive (signup → insert → query → upload → invoke → cleanup).
  • Real traffic: every API goes through EgressMeter + LatencyHistogram → SLS Metric Store, aggregated per minute.
  • Alerts: 10% over an SLO pages the AI monitor (see monitoring-ai-employee); the AI classifies → autofix / page a human.

SLO breach handling

  1. AI monitor triggers within 30 seconds (synthetic / real metric breaches).
  2. AI pulls logs + recent deploys + upstream cloud-vendor status page, classifies false-alarm vs incident.
  3. Incident: posts to Slack/Lark + creates an incident ticket + pages the on-call rotation.
  4. Month-end: incident summary → monthly SLA → triggers credit-back (enterprise) or status report (beta).

Enterprise — upgraded SLO

Enterprise customers can buy 99.95% or 99.99%. Each tier requires:

  • 99.95%: cross-AZ multi-RDS + cross-AZ Redis + weekly auto-failover test
  • 99.99%: cross-region active-active + synchronous data replication + cross-cloud failover

Pricing: roughly +50% / +200% baseline.

Public SLA report

Published monthly starting at launch.