{
  "slug": "ripq",
  "term": "Restricted Insertion Priority Queue (RIPQ)",
  "aliases": [
    "RIPQ"
  ],
  "definition": "RIPQ is a flash-cache framework that approximates priority ordering through a limited set of buffered insertion points.",
  "note": "Virtual blocks record priority increases in memory; selected objects are copied later when their physical block is reclaimed. This coalesces updates but can still cause host writes. [ripq2015]",
  "status": "research",
  "advantages": [],
  "limitations": [
    {
      "text": "The original design targets static objects: arbitrary object deletion and overwrite are unsupported. Historical photo-trace results are not predictions for a different device or workload.",
      "citationIds": [
        "ripq2015"
      ]
    }
  ],
  "related": [
    "write-amplification",
    "write-combining",
    "greedydual-size"
  ],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "citations": [
    {
      "id": "ripq2015",
      "title": "Tang et al. RIPQ: Advanced Photo Caching on Flash for Facebook. FAST 2015, pp. 373-386; sections 4.2-4.4 and 6.1-6.2.",
      "url": "https://files.usenix.org/s3fs-public/cdn/fast15-paper-tang.pdf",
      "accessed": "2026-11-14"
    },
    {
      "id": "hesela-ledger",
      "title": "Hesela: cache writes and device writes use different denominators",
      "url": "https://hesela.com/analyses/ssd-overprovisioning-denominators/#ripq-accounting",
      "accessed": "2026-11-14"
    }
  ],
  "updated": "2026-11-14",
  "provenance": [
    "Primary-source synthesis; no RIPQ implementation or trace replay performed."
  ]
}
