![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
CloudFlare에는 오늘 온라인으로 유통되는 일반적인 농담 제품 공지 대신 4 월 1 일에 실제 제품을 출시하는 전통이 있습니다.
There's a tradition at Cloudflare of launching real products on April 1, instead of the usual joke product announcements circulating online today. In previous years, we've introduced impactful products like 1.1.1.1 and 1.1.1.1 for Families. Today, we're excited to continue this tradition by making every purge method available to all customers, regardless of plan type.
CloudFlare에는 오늘 온라인으로 유통되는 일반적인 농담 제품 공지 대신 4 월 1 일에 실제 제품을 출시하는 전통이 있습니다. 지난 몇 년 동안 우리는 가족을 위해 1.1.1.1 및 1.1.1.1과 같은 영향력있는 제품을 도입했습니다. 오늘날 우리는 계획 유형에 관계없이 모든 고객이 모든 고객이 이용할 수있게 함으로써이 전통을 계속하게되어 기쁩니다.
During Birthday Week 2024, we announced our intention to bring the full suite of purge methods - including purge by URL, purge by hostname, purge by tag, purge by prefix, and purge everything - to all Cloudflare plans. Historically, methods other than "purge by URL" and "purge everything" were exclusive to Enterprise customers. However, we've been openly rebuilding our purge pipeline over the past few years (hopefully you've read some of our blog series), and we're thrilled to share the results more broadly. We've spent recent months ensuring the new Instant Purge pipeline performs consistently under 150 ms, even during increased load scenarios, making it ready for every customer.
생일 2024 년 동안, 우리는 Purge by URL, Purge By Purge By Tag, Prefix By Prefix 및 Purge Everything을 포함하여 모든 CloudFlare 계획을 포함하여 전체 퍼지 방법을 가져 오겠다는 의도를 발표했습니다. 역사적으로 "URL에 의한 퍼지"및 "Purge Everything"이외의 방법은 엔터프라이즈 고객에게 독점적이었습니다. 그러나 우리는 지난 몇 년 동안 퍼지 파이프 라인을 공개적으로 재건 해 왔으며 (블로그 시리즈 중 일부를 읽었기를 바랍니다) 결과를보다 광범위하게 공유하게되어 기쁩니다. 최근 몇 달 동안 새로운 Instant Purge 파이프 라인이로드 시나리오 증가 중에도 150ms 미만으로 일관되게 수행되어 모든 고객에게 준비가되었습니다.
But that's not all - we're also significantly raising the default purge rate limits for Enterprise customers, allowing even greater purge throughput thanks to the efficiency of our newly developed Instant Purge system.
그러나 그게 전부는 아닙니다. 우리는 또한 엔터프라이즈 고객의 기본 퍼지 속도 제한을 크게 높여서 새로 개발 된 인스턴트 퍼지 시스템의 효율성으로 인해 더 큰 퍼지 처리량을 허용합니다.
Building a better purge: a two-year journey
더 나은 퍼지 구축 : 2 년 여행
Stepping back, today's announcement represents roughly two years of focused engineering. Near the end of 2022, our team went heads down rebuilding Cloudflare's purge pipeline with a clear yet challenging goal: dramatically increase our throughput while maintaining near-instant invalidation across our global network.
물러서서 오늘의 발표는 대략 2 년간의 집중된 엔지니어링을 나타냅니다. 2022 년 말 근처에 우리 팀은 분명하면서도 도전적인 목표로 Cloudflare의 퍼지 파이프 라인을 재건축하는 데 도움이되었습니다. 글로벌 네트워크에서 거의 불완전한 무효화를 유지하면서 처리량을 극적으로 증가 시켰습니다.
Cloudflare operates data centers in over 335 cities worldwide. Popular cached assets can reside across all of our data centers, meaning each purge request must quickly propagate to every location caching that content. Upon receiving a purge command, each data center must efficiently locate and invalidate cached content, preventing stale responses from being served. The amount of content that must be invalidated can vary drastically, from a single file, to all cached assets associated with a particular hostname. After the content has been purged, any subsequent requests will trigger retrieval of a fresh copy from the origin server, which will be stored in Cloudflare's cache during the response.
CloudFlare는 전 세계 335 개 이상의 도시에서 데이터 센터를 운영합니다. 인기있는 캐시 된 자산은 모든 데이터 센터에 상주 할 수 있습니다. 즉, 각 퍼지 요청은 해당 컨텐츠를 캐싱하는 모든 위치로 빠르게 전파해야합니다. 퍼지 명령을 받으면 각 데이터 센터는 캐시 된 컨텐츠를 효율적으로 찾아 무효화하여 오래된 응답이 제공되는 것을 방지해야합니다. 무효화 해야하는 컨텐츠의 양은 단일 파일에서 특정 호스트 이름과 관련된 모든 캐시 된 자산에 이르기까지 크게 다를 수 있습니다. 컨텐츠가 정화 된 후, 후속 요청은 응답 중에 CloudFlare의 캐시에 저장되는 Origin 서버에서 새로운 사본을 검색 할 것입니다.
Ensuring consistent, rapid propagation of purge requests across a vast network introduces substantial technical challenges, especially when accounting for occasional data center outages, maintenance, or network interruptions. Maintaining consistency under these conditions requires robust distributed systems engineering.
광대 한 네트워크에서 퍼지 요청을 일관되고 빠르게 전파하면 특히 데이터 센터 중단, 유지 보수 또는 네트워크 중단을 설명 할 때 실질적인 기술적 문제가 발생합니다. 이러한 조건에서 일관성을 유지하려면 강력한 분산 시스템 엔지니어링이 필요합니다.
How did we scale purge?
퍼지를 어떻게 확장 했습니까?
We've previously discussed how our new Instant Purge system was architected to achieve sub-150 ms purge times. It's worth noting that the performance improvements were only part of what our new architecture achieved, as it also helped us solve significant scaling challenges around storage and throughput that allowed us to bring Instant Purge to all users.
우리는 이전에 새로운 Instant Purge 시스템이 어떻게 150ms 이하의 퍼지 시간을 달성하도록 구조되었는지 논의했습니다. 성능 향상은 새로운 아키텍처가 달성 한 것의 일부일 뿐이며, 스토리지 및 처리량에 대한 중요한 스케일링 문제를 해결하여 모든 사용자에게 즉각적인 퍼지를 가져올 수 있도록 도와 주었기 때문에 주목할 가치가 있습니다.
Initially, our purge system scaled well, but with rapid customer growth, the storage consumption from millions of daily purge keys that needed to be stored reduced available caching space. Early attempts to manage this storage and throughput demand involved queues and batching for smoothing traffic spikes, but this introduced latency and underscored the tight coupling between increased usage and rising storage costs.
처음에 퍼지 시스템은 잘 확장되었지만 빠른 고객 성장으로 인해 수백만 개의 일일 퍼지 키에서 저장된 소비가 사용 가능한 캐싱 공간을 줄였습니다. 이 저장소 및 처리량 수요를 관리하려는 조기 시도에는 트래픽 스파이크를 평활화하기위한 대기열과 배치와 관련이 있었지만, 이로 인해 대기 시간이 도입되었으며 사용량 증가와 스토리지 비용 상승 사이의 단단한 커플 링을 강조했습니다.
We needed to revisit our thinking on how to better store purge keys and when to remove purged content so we could reclaim space. Historically, when a customer would purge by tag, prefix or hostname, Cloudflare would mark the content as expired and allow it to be evicted later. This is known as lazy-purge because nothing is actively removed from disk. Lazy-purge is fast, but not necessarily efficient, because it consumes storage for expired but not-yet-evicted content. After examining global or data center-level indexing for purge keys, we decided that wasn't viable due to increases in system complexity and the latency those indices could bring due to our network size. So instead, we opted for per-machine indexing, integrating indices directly alongside our cache proxies. This minimized network complexity, simplified reliability, and provided predictable scaling.
퍼지 키를 더 잘 저장하는 방법에 대한 생각과 퍼지 콘텐츠를 제거하여 공간을 되 찾을 수있는 생각을 다시 방문해야했습니다. 역사적으로, 고객이 태그, 접두사 또는 호스트 이름으로 제거 할 때 CloudFlare는 콘텐츠를 만료 된 것으로 표시하고 나중에 퇴거 할 수 있습니다. 디스크에서 적극적으로 제거되지 않기 때문에 이것은 게으른 풀로 알려져 있습니다. Lazy-Purge는 빠르지 만 반드시 효율적이지는 않습니다. 만료되지 않았지만 아직 발생하지 않은 콘텐츠에 대한 저장소를 소비하기 때문입니다. 퍼지 키에 대한 글로벌 또는 데이터 센터 레벨 인덱싱을 검토 한 후 시스템 복잡성 증가와 네트워크 크기로 인해 지수가 가져올 수있는 대기 시간으로 인해 실용적이지 않다고 결정했습니다. 대신, 우리는 캐시 프록시와 함께 지수를 직접 통합하여 Machine 인덱싱을 선택했습니다. 이 최소화 된 네트워크 복잡성, 단순화 된 신뢰성 및 예측 가능한 스케일링을 제공했습니다.
After careful analysis and benchmarking, we selected RocksDB, an embedded key-value store that we could optimize for our needs, which formed the basis of CacheDB, our Rust-based service running alongside each cache proxy. CacheDB manages indexing and immediate purge execution (active purge), significantly reducing storage needs and freeing space for caching.
신중한 분석 및 벤치마킹 후, 우리는 각 캐시 프록시와 함께 실행되는 Rust 기반 서비스 인 CachedB의 기초를 형성하는 요구에 맞게 최적화 할 수있는 내장 된 키 가치 저장소 인 RocksDB를 선택했습니다. CachedB는 인덱싱 및 즉각적인 퍼지 실행 (활성 퍼지)을 관리하여 스토리지 요구를 크게 줄이고 캐싱을위한 공간을 자유롭게합니다.
Local queues within CacheDB buffer purge operations to ensure consistent throughput without latency spikes, while the cache proxies consult CacheDB to guarantee rapid, active purges. Our updated distribution pipeline broadcasts purges directly to CacheDB instances across machines, dramatically improving throughput and purge speed.
대기 시간 스파이크없이 일관된 처리량을 보장하기 위해 Cachedb 버퍼 퍼지 연산 내의 로컬 큐, 캐시 프록시는 CachedB를 참조하여 빠른 활성 퍼지를 보장합니다. 업데이트 된 배포 파이프 라인 브로드 캐스트는 기계의 캐시드 인스턴스로 직접 퍼지므로 처리량과 퍼지 속도를 극적으로 향상시킵니다.
Using CacheDB, we've reduced storage requirements 10x by eliminating lazy purge storage accumulation, instantly freeing valuable disk space. The freed storage enhances cache retention, boosting cache HIT ratios and minimizing origin egress. These savings in storage and increased throughput allowed us to scale to the point where we can offer Instant Purge to more customers.
CachEdB를 사용하여 게으른 퍼지 스토리지 축적을 제거하여 저장소 요구 사항을 줄이고 귀중한 디스크 공간을 즉시 제거했습니다. 해방 된 스토리지는 캐시 보존을 향상시키고 캐시 적중률을 높이고 Origin Egress를 최소화합니다. 스토리지 및 처리량 증가로 인해 이러한 비용을 절감하면 더 많은 고객에게 즉각적인 퍼지를 제공 할 수있는 시점까지 확장 할 수있었습니다.
For more information
자세한 정보
부인 성명:info@kdj.com
제공된 정보는 거래 조언이 아닙니다. kdj.com은 이 기사에 제공된 정보를 기반으로 이루어진 투자에 대해 어떠한 책임도 지지 않습니다. 암호화폐는 변동성이 매우 높으므로 철저한 조사 후 신중하게 투자하는 것이 좋습니다!
본 웹사이트에 사용된 내용이 귀하의 저작권을 침해한다고 판단되는 경우, 즉시 당사(info@kdj.com)로 연락주시면 즉시 삭제하도록 하겠습니다.