<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/ceph-io-assessing-the-performance-of-the-clay-erasure-code-plugin-nyvp71yvz" -->

---
title: Ceph.io — Assessing the performance of the CLAY Erasure...
description: A deep-dive benchmarking analysis compares Ceph's CLAY erasure code plugin against JErasure across client IO, degraded reads, and recovery scenarios. CLAY's...
canonical: https://daily.dev/posts/ceph-io-assessing-the-performance-of-the-clay-erasure-code-plugin-nyvp71yvz
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Ceph.io — Assessing the performance of the CLAY Erasure Code Plugin | daily.dev
og:description: A deep-dive benchmarking analysis compares Ceph's CLAY erasure code plugin against JErasure across client IO, degraded reads, and recovery scenarios. CLAY's...
og:url: https://daily.dev/posts/ceph-io-assessing-the-performance-of-the-clay-erasure-code-plugin-nyvp71yvz
og:image: https://api.daily.dev/og/posts/NyvP71YVz.png
og:image:alt: Ceph.io — Assessing the performance of the CLAY Erasure Code Plugin
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Ceph.io — Assessing the performance of the CLAY Erasure Code Plugin

**[Ceph](https://daily.dev/sources/ceph)** · 10 min read · 0 upvotes · 0 comments

## Summary

A deep-dive benchmarking analysis compares Ceph's CLAY erasure code plugin against JErasure across client IO, degraded reads, and recovery scenarios. CLAY's three-phase encode/decode process makes writes and degraded reads slower due to higher CPU and memcpy overhead, but it can cut network bandwidth during backfill/recovery by roughly 50% when properly tuned (stripe unit alignment with NVMe block size matters heavily). Fragmented serial reads make CLAY poor on HDDs or IOPs/CPU-limited clusters, and testing revealed the recovery bandwidth benefit is broken entirely on the Tentacle release (works on Squid). The author recommends CLAY only for network-bottlenecked clusters with wide erasure codes, and notes CLAY support is planned to end starting with the V release.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://ceph.io/en/news/blog/2025/cbt-performance-benchmarking-part4>

## Questions this post answers

### Is the CLAY erasure code recovery bandwidth benefit working in Ceph Tentacle?

No, the recovery benefit is non-existent in Tentacle. Testing showed recovery transmitted the full amount of data, behaving like standard JErasure but with CLAY's higher CPU overhead, whereas the network savings work correctly on the Squid release.

_Track Ceph release-specific regressions like this one on daily.dev before rolling out an erasure code change._

### When should I use the CLAY erasure code plugin instead of JErasure in Ceph?

Use CLAY only when a cluster is strictly network bottlenecked and uses wide erasure codes, such as 20+ node setups, where CLAY's roughly 50% reduction in network traffic during backfill and recovery is significant. Avoid CLAY if CPU or IOPs limited, or when primarily using HDDs, since fragmented serial reads hurt recovery performance; JErasure remains the better default for most production environments.

_Developers weighing Ceph erasure code tradeoffs can follow storage engineering deep dives like this on daily.dev._

### Is Ceph planning to deprecate the CLAY erasure code plugin?

Yes, there is a plan to end support for the CLAY erasure code plugin starting from the V release of Ceph. Given CLAY's niche use case, limited to network-bottlenecked clusters with wide erasure codes, JErasure is recommended as the more predictable choice for most production environments going forward.

_Keep up with upcoming Ceph plugin deprecations like this one via daily.dev before planning a cluster upgrade._

## Similar posts on daily.dev

- [iSCSI vs. NVMe/TCP: The ultimate storage showdown for Red Hat OpenShift Virtualization](https://daily.dev/posts/iscsi-vs-nvme-tcp-the-ultimate-storage-showdown-for-red-hat-openshift-virtualization-chlfm9pk4) · Red Hat Developer · 0 upvotes · 0 comments
- [Home Made CobbleDB Replaces DynamoDB at Perplexity to Cut Query Latency 5x and Reduce Cloud Storage](https://daily.dev/posts/home-made-cobbledb-replaces-dynamodb-at-perplexity-to-cut-query-latency-5x-and-reduce-cloud-storage-ehapdrsri) · InfoQ · 1 upvotes · 0 comments

---

[View this post on daily.dev](https://daily.dev/posts/ceph-io-assessing-the-performance-of-the-clay-erasure-code-plugin-nyvp71yvz)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Ceph.io — Assessing the performance of the CLAY Erasure Code Plugin","url":"https://daily.dev/posts/ceph-io-assessing-the-performance-of-the-clay-erasure-code-plugin-nyvp71yvz","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/ceph-io-assessing-the-performance-of-the-clay-erasure-code-plugin-nyvp71yvz"},"datePublished":"2026-08-23T12:18:09.593Z","dateModified":"2026-08-23T12:22:49.585Z","description":"A deep-dive benchmarking analysis compares Ceph's CLAY erasure code plugin against JErasure across client IO, degraded reads, and recovery scenarios. CLAY's...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/081347454c4277530990d34fdf1dd38d?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/081347454c4277530990d34fdf1dd38d?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Ceph","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Ceph","logo":"https://media.daily.dev/image/upload/s--nHzZM4Ap--/f_auto,q_auto/v1787487446/logos/ceph?_a=BAMAMicg0","url":"https://daily.dev/sources/ceph"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/ceph-io-assessing-the-performance-of-the-clay-erasure-code-plugin-nyvp71yvz","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"","timeRequired":"PT10M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Ceph","item":"https://daily.dev/sources/ceph"},{"@type":"ListItem","position":3,"name":"Ceph.io — Assessing the performance of the CLAY Erasure Code Plugin"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/ceph-io-assessing-the-performance-of-the-clay-erasure-code-plugin-nyvp71yvz#faq","mainEntity":[{"@type":"Question","name":"Is the CLAY erasure code recovery bandwidth benefit working in Ceph Tentacle?","acceptedAnswer":{"@type":"Answer","text":"No, the recovery benefit is non-existent in Tentacle. Testing showed recovery transmitted the full amount of data, behaving like standard JErasure but with CLAY's higher CPU overhead, whereas the network savings work correctly on the Squid release. Track Ceph release-specific regressions like this one on daily.dev before rolling out an erasure code change."}},{"@type":"Question","name":"When should I use the CLAY erasure code plugin instead of JErasure in Ceph?","acceptedAnswer":{"@type":"Answer","text":"Use CLAY only when a cluster is strictly network bottlenecked and uses wide erasure codes, such as 20+ node setups, where CLAY's roughly 50% reduction in network traffic during backfill and recovery is significant. Avoid CLAY if CPU or IOPs limited, or when primarily using HDDs, since fragmented serial reads hurt recovery performance; JErasure remains the better default for most production environments. Developers weighing Ceph erasure code tradeoffs can follow storage engineering deep dives like this on daily.dev."}},{"@type":"Question","name":"Is Ceph planning to deprecate the CLAY erasure code plugin?","acceptedAnswer":{"@type":"Answer","text":"Yes, there is a plan to end support for the CLAY erasure code plugin starting from the V release of Ceph. Given CLAY's niche use case, limited to network-bottlenecked clusters with wide erasure codes, JErasure is recommended as the more predictable choice for most production environments going forward. Keep up with upcoming Ceph plugin deprecations like this one via daily.dev before planning a cluster upgrade."}}]}
```

