{
  "slug": "postmortem-unknown-causes",
  "title": "355 of 597 public cloud outages have an unknown root cause",
  "kind": "dataset",
  "summary": "Gunawi et al., SoCC 2016, Table 3, mark 355 of 597 unplanned outages as UNKNOWN. The study covers 32 popular Internet services and 1,247 public reports from January 2009 through December 2015. The paper states that only 40% of those descriptions reveal a root cause and only 24% reveal a fix. Among known root-cause tags, the three largest counts are UPGRADE 54 (16%), NETWORK 52 (15%), and BUGS 51 (15%). STORAGE is 13 occurrences on 4 services (4% of known causes). HARDWARE is 5 occurrences on 4 services (1% of known causes). One outage can carry more than one tag, so the occurrence column is not a partition of the 597 outages. In the yearly column, M means at least 10, not exactly 10.",
  "license": "Small derived table of figures stated in Gunawi et al., SoCC '16, with credit. Not a Creative Commons license. The first page of the PDF that was opened says abstracting with credit is permitted. It also says that to copy otherwise, or to republish, post on servers, or redistribute to lists, requires prior specific permission and/or a fee, requested from permissions@acm.org. Copyright is held by the owner/author(s). Publication rights are licensed to ACM. DOI as printed: 10.1145/2987550.2987583. This file is not the paper, not the 1247 reports, and not COSDB. The paper says COSDB is downloadable from reference [1], http://ucare.cs.uchicago.edu/projects/cbs/. A fetch of that URL on 2026-10-09 did not return a verified page.",
  "licenseUrl": "https://www.drj.com/wp-content/uploads/2018/07/socc16-cos.pdf",
  "sourceUrl": "https://www.drj.com/wp-content/uploads/2018/07/socc16-cos.pdf",
  "accessed": "2026-10-09",
  "rowCount": 39,
  "columns": [
    {
      "name": "row_kind",
      "type": "string",
      "description": "Which stated cut the row transcribes: population, uptime, table3, impact, or fix."
    },
    {
      "name": "measure",
      "type": "string",
      "description": "The paper's name for the row: a study total, an uptime cut, a Table 3 root-cause tag, an impact tag, or a fix tag."
    },
    {
      "name": "section",
      "type": "string",
      "description": "Section number as printed. Empty only for UNKNOWN, which has a blank section cell in Table 3. HARDWARE and SERVER are both 5.11."
    },
    {
      "name": "outages_count",
      "type": "integer",
      "description": "Unplanned outages (count). Filled only on the population row for the 597 outages. Empty means the paper does not give this row as an outage total."
    },
    {
      "name": "reports_count",
      "type": "integer",
      "description": "Public reports (count). Filled only on the population row for the 1247 unique links. Empty otherwise."
    },
    {
      "name": "tags_count",
      "type": "integer",
      "description": "Outage metadata tags (count). Filled only on the population row for the 3249 COSDB tags. Empty otherwise. Not a sum of Table 3."
    },
    {
      "name": "study_services_count",
      "type": "integer",
      "description": "Services in the study (count). Filled only on the population row for the 32 services in Table 1. Empty otherwise."
    },
    {
      "name": "tagged_services_count",
      "type": "integer",
      "description": "Services with this root cause (count). Table 3 column #Sv. Empty when the row is not a Table 3 root cause."
    },
    {
      "name": "services_short_of_uptime_count",
      "type": "integer",
      "description": "Services short of the stated uptime (count), from section 3.2. Empty when the row is not an uptime cut."
    },
    {
      "name": "occurrences_count",
      "type": "integer",
      "description": "Root-cause occurrences (count). Table 3 column Cnt. Not a partition of the 597 outages. Empty outside Table 3."
    },
    {
      "name": "share_percent",
      "type": "integer",
      "description": "Printed share (%). The basis is share_basis, not a single denominator. Empty when the paper prints a dash or does not print a percent. Table 3 UNKNOWN is empty."
    },
    {
      "name": "share_basis",
      "type": "string",
      "description": "What share_percent is a percent of, using the paper's wording. Empty when share_percent is empty."
    },
    {
      "name": "yearly_marks",
      "type": "string",
      "description": "Table 3 yearly marks for 2009 through 2015, seven tokens separated by periods, copied as printed. M means at least 10, not exactly 10. A dash is the paper's dash, not a zero stored by this file. Empty outside Table 3."
    },
    {
      "name": "signal",
      "type": "string",
      "description": "The report wording or column the paper uses to assign this tag or count."
    },
    {
      "name": "misses",
      "type": "string",
      "description": "What that signal does not prove, from a sentence in the same paper or from a blank the paper leaves."
    },
    {
      "name": "citation_id",
      "type": "string",
      "description": "Id into the citations list. Open that URL for the sentence. Every row cites the SoCC 2016 PDF."
    }
  ],
  "downloadPath": "/data/datasets/postmortem-unknown-causes.csv",
  "citations": [
    {
      "id": "gunawi-socc16",
      "title": "Why Does the Cloud Stop Computing? Lessons from Hundreds of Service Outages",
      "url": "https://www.drj.com/wp-content/uploads/2018/07/socc16-cos.pdf",
      "accessed": "2026-10-09"
    },
    {
      "id": "demirbas-2016",
      "title": "Paper Review: Why Does the Cloud Stop Computing? Lessons from Hundreds of Service Outages",
      "url": "https://muratbuffalo.blogspot.com/2016/11/why-does-cloud-stop-computing-lessons.html",
      "accessed": "2026-10-09"
    }
  ]
}
