# quota

Published articles for quota.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## 【kube-apiserver】选型收束与开放问题：排除树、Kine 与 events 分集群

DevFeed: [【kube-apiserver】选型收束与开放问题：排除树、Kine 与 events 分集群](<https://devfeed.tech/articles/kube-apiserver-kine-events-33972.md>)

Original publisher: [Read original article](<https://quant67.com/post/apiserver/16-selection/16-selection.html>)

Author: Liao Tonglang

Published: 2026-08-28T00:00:00Z

Content type: tutorial

Language: zh

Sources: [土法炼钢 - 系统与基础设施](<https://devfeed.tech/sources/source-4.md>)

Topics: [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>), [Caching](<https://devfeed.tech/topics/caching.md>), [etcd](<https://devfeed.tech/topics/etcd.md>), [SQL](<https://devfeed.tech/topics/sql.md>), [MySQL](<https://devfeed.tech/topics/mysql.md>), [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [SQLite](<https://devfeed.tech/topics/sqlite.md>), [Raft](<https://devfeed.tech/topics/raft.md>)

Tags: [apiserver](<https://devfeed.tech/tags/apiserver.md>), [churn](<https://devfeed.tech/tags/churn.md>), [distributed](<https://devfeed.tech/tags/distributed.md>), [errcompacted](<https://devfeed.tech/tags/errcompacted.md>), [etcd](<https://devfeed.tech/tags/etcd.md>), [events](<https://devfeed.tech/tags/events.md>), [exclusion-tree](<https://devfeed.tech/tags/exclusion-tree.md>), [kine](<https://devfeed.tech/tags/kine.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [mysql](<https://devfeed.tech/tags/mysql.md>), [open-questions](<https://devfeed.tech/tags/open-questions.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [quota](<https://devfeed.tech/tags/quota.md>), [raft](<https://devfeed.tech/tags/raft.md>), [selection](<https://devfeed.tech/tags/selection.md>), [sql](<https://devfeed.tech/tags/sql.md>), [sqlite](<https://devfeed.tech/tags/sqlite.md>), [storage](<https://devfeed.tech/tags/storage.md>), [ttl](<https://devfeed.tech/tags/ttl.md>), [v1-30-3](<https://devfeed.tech/tags/v1-30-3.md>), [watch-cache](<https://devfeed.tech/tags/watch-cache.md>)

### AI overview

This concluding article presents a mechanism-based decision tree for diagnosing Kubernetes control-plane issues across kube-apiserver and etcd layers. It explains Kine's differing Watch semantics when using SQLite, PostgreSQL, or MySQL backends, discusses routing Kubernetes Events to a separate etcd cluster, and identifies open questions around watch-cache SLOs, compaction, linear reads, and Lease fencing.

### Source excerpt

用机制排除树收束何时查 apiserver 轴、何时穿透 etcd 轴、何时两轴联查；回收 etcd/13 写下的 apiserver 停损线；Kine SQL backend 的 Watch 语义差与 Jepsen 覆盖空白；events --etcd-servers-overrides 分集群运维；列出 watch cache SLO 联合模型、线性读期望与 Lease+fencing 全链路三个开放问题；以 ADR 语言关闭系列边界。

## 【etcd】写入路径深读：Txn、mod revision 与 quota/alarm

DevFeed: [【etcd】写入路径深读：Txn、mod revision 与 quota/alarm](<https://devfeed.tech/articles/etcd-txn-mod-revision-quota-alarm-33989.md>)

Original publisher: [Read original article](<https://quant67.com/post/etcd/07-write-path/07-write-path.html>)

Author: Liao Tonglang

Published: 2026-08-26T00:00:00Z

Content type: tutorial

Language: zh

Sources: [土法炼钢 - 系统与基础设施](<https://devfeed.tech/sources/source-4.md>)

Topics: [etcd](<https://devfeed.tech/topics/etcd.md>), [Back end](<https://devfeed.tech/topics/backend.md>), [Raft](<https://devfeed.tech/topics/raft.md>), [Remote Procedure Call (RPC)](<https://devfeed.tech/topics/rpc.md>), [maintenance](<https://devfeed.tech/topics/maintenance.md>)

Tags: [alarm](<https://devfeed.tech/tags/alarm.md>), [apiserver](<https://devfeed.tech/tags/apiserver.md>), [applied-index](<https://devfeed.tech/tags/applied-index.md>), [apply](<https://devfeed.tech/tags/apply.md>), [batch](<https://devfeed.tech/tags/batch.md>), [bbolt](<https://devfeed.tech/tags/bbolt.md>), [committed-index](<https://devfeed.tech/tags/committed-index.md>), [compaction](<https://devfeed.tech/tags/compaction.md>), [defrag](<https://devfeed.tech/tags/defrag.md>), [distributed](<https://devfeed.tech/tags/distributed.md>), [errcompacted](<https://devfeed.tech/tags/errcompacted.md>), [etcd](<https://devfeed.tech/tags/etcd.md>), [follower](<https://devfeed.tech/tags/follower.md>), [k8s](<https://devfeed.tech/tags/k8s.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [mod-revision](<https://devfeed.tech/tags/mod-revision.md>), [nospace](<https://devfeed.tech/tags/nospace.md>), [quota](<https://devfeed.tech/tags/quota.md>), [revision](<https://devfeed.tech/tags/revision.md>), [txn](<https://devfeed.tech/tags/txn.md>), [v3-5](<https://devfeed.tech/tags/v3-5.md>), [v3-5-33](<https://devfeed.tech/tags/v3-5-33.md>)

### AI overview

This tutorial explains the etcd v3.5.33 write path from gRPC requests through Raft proposal, quota checks, MVCC apply, and ModRevision assignment. It also describes proposal backpressure, backend quota accounting, and how a NOSPACE alarm blocks writes while reads, deletes, and maintenance operations can continue.

### Source excerpt

走读 etcd v3.5.33 写入路径：raftRequest 背压、Txn compare/mod 与 ModRevision 分配、backend quota 与 NOSPACE alarm 如何把集群推入只读。

## 【etcd】Compaction、Defrag 与容量：quota、alarm 与 SLO

DevFeed: [【etcd】Compaction、Defrag 与容量：quota、alarm 与 SLO](<https://devfeed.tech/articles/etcd-compaction-defrag-quota-alarm-slo-33994.md>)

Original publisher: [Read original article](<https://quant67.com/post/etcd/12-compaction-quota/12-compaction-quota.html>)

Author: Liao Tonglang

Published: 2026-08-26T00:00:00Z

Content type: tutorial

Language: zh

Sources: [土法炼钢 - 系统与基础设施](<https://devfeed.tech/sources/source-4.md>)

Topics: [etcd](<https://devfeed.tech/topics/etcd.md>), [Raft](<https://devfeed.tech/topics/raft.md>), [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>)

Tags: [alarm](<https://devfeed.tech/tags/alarm.md>), [bbolt](<https://devfeed.tech/tags/bbolt.md>), [benchmark](<https://devfeed.tech/tags/benchmark.md>), [compaction](<https://devfeed.tech/tags/compaction.md>), [defrag](<https://devfeed.tech/tags/defrag.md>), [distributed](<https://devfeed.tech/tags/distributed.md>), [errcompacted](<https://devfeed.tech/tags/errcompacted.md>), [etcd](<https://devfeed.tech/tags/etcd.md>), [follower](<https://devfeed.tech/tags/follower.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [lag](<https://devfeed.tech/tags/lag.md>), [leader](<https://devfeed.tech/tags/leader.md>), [mvcc](<https://devfeed.tech/tags/mvcc.md>), [nospace](<https://devfeed.tech/tags/nospace.md>), [performance](<https://devfeed.tech/tags/performance.md>), [quota](<https://devfeed.tech/tags/quota.md>), [raft](<https://devfeed.tech/tags/raft.md>), [resourceversion](<https://devfeed.tech/tags/resourceversion.md>), [v3](<https://devfeed.tech/tags/v3.md>), [v3-5](<https://devfeed.tech/tags/v3-5.md>), [v3-5-33](<https://devfeed.tech/tags/v3-5-33.md>), [watch](<https://devfeed.tech/tags/watch.md>)

### AI overview

This technical article explains how etcd v3.5.33 compaction, defragmentation, quota handling, and the NOSPACE alarm interact. It distinguishes revision-history removal from bbolt file reclamation, describes periodic and revision-based auto-compaction, and connects retention, quota, defrag pauses, and Watch or Kubernetes control-plane behavior to operational SLOs.

### Source excerpt

钉 etcd v3.5.33 MVCC compaction 与 bbolt defrag 的分工、auto-compaction 保留窗口、quota-backend-bytes 与 NOSPACE alarm 写入门，以及 ErrCompacted 如何写进 Watch SLO。

## 重新思考 Go：了解程序在线上是如何运行的

DevFeed: [重新思考 Go：了解程序在线上是如何运行的](<https://devfeed.tech/articles/go-40988.md>)

Original publisher: [Read original article](<https://blog.joway.io/posts/golang-rethink-program-in-realworld/>)

Author: Joway

Published: 2024-12-10T00:00:00Z

Content type: article

Language: zh

Sources: [Random Thoughts](<https://devfeed.tech/sources/random-thoughts.md>)

Topics: [Go Language](<https://devfeed.tech/topics/go-language.md>), [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>), [cpu](<https://devfeed.tech/topics/cpu.md>), [cgroups](<https://devfeed.tech/topics/cgroups.md>), [Linux](<https://devfeed.tech/topics/linux.md>)

Tags: [cgroups](<https://devfeed.tech/tags/cgroups.md>), [cpu](<https://devfeed.tech/tags/cpu.md>), [go](<https://devfeed.tech/tags/go.md>), [golang](<https://devfeed.tech/tags/golang.md>), [k8s](<https://devfeed.tech/tags/k8s.md>), [linux](<https://devfeed.tech/tags/linux.md>), [mechanical-sympathy](<https://devfeed.tech/tags/mechanical-sympathy.md>), [quota](<https://devfeed.tech/tags/quota.md>), [runtime](<https://devfeed.tech/tags/runtime.md>), [tech](<https://devfeed.tech/tags/tech.md>), [waiting](<https://devfeed.tech/tags/waiting.md>)

### AI overview

This article examines how Go programs run in production environments, focusing on the relationship between Kubernetes CPU quotas, physical CPU availability, cgroups, and Go's GOMAXPROCS setting. It explains that CPU quota limits aggregate execution time, while available parallelism can depend on the host's physical cores and the program's design. It also introduces scheduling latency and the factors that affect the computing resources a Go service actually receives.

### Source excerpt

重新思考 Go 系列：这个系列希望结合工作中在 Go 编程与性能优化中遇到过的问题，探讨 Go 在语言哲学、底层实现和现实需求三者之间关系与矛盾。 前言 过去一段时间，在大量的线上服务 case study 过程中，逐步深入了解了如今的业务 Go 进程是如何在一系列繁杂的基础设施之上运行的。有些表现在意料之中，也有一些出乎意料的发现。

## localStorage and sessionStorage in Safari's private mode

DevFeed: [localStorage and sessionStorage in Safari's private mode](<https://devfeed.tech/articles/localstorage-and-sessionstorage-in-safari-s-private-mode-37306.md>)

Original publisher: [Read original article](<https://muffinman.io/blog/localstorage-and-sessionstorage-in-safaris-private-mode/>)

Author: Stanko

Published: 2017-08-09T00:00:00Z

Content type: tutorial

Language: en

Sources: [Stanko Tadić](<https://devfeed.tech/sources/stanko-tadic.md>)

Topics: [LocalStorage](<https://devfeed.tech/topics/localstorage.md>), [Code](<https://devfeed.tech/topics/code.md>), [App](<https://devfeed.tech/topics/app.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [error](<https://devfeed.tech/tags/error.md>), [export](<https://devfeed.tech/tags/export.md>), [ls](<https://devfeed.tech/tags/ls.md>), [null](<https://devfeed.tech/tags/null.md>), [object](<https://devfeed.tech/tags/object.md>), [qa](<https://devfeed.tech/tags/qa.md>), [quota](<https://devfeed.tech/tags/quota.md>), [return](<https://devfeed.tech/tags/return.md>), [safari](<https://devfeed.tech/tags/safari.md>), [storage](<https://devfeed.tech/tags/storage.md>), [test](<https://devfeed.tech/tags/test.md>), [value](<https://devfeed.tech/tags/value.md>), [version](<https://devfeed.tech/tags/version.md>)

### AI overview

This article explains that Safari private mode sets localStorage and sessionStorage limits to zero, preventing writes. It presents a localStorage facade that silently ignores storage operations when storage is unavailable, avoiding application errors.

### Source excerpt

If you didn't know, in Safari's private mode both localStorage and sessionStorage are not working. To be exact, Safari sets storage's limit to 0, so you can't write anything to it. I keep forgetting this, until QA people report it at some point. So I quickly wrote a small facade for it, which fails silently in this case. That means it still doesn't work but it won't throw an error and break your application. This is the version for localStorage, just replace it with sessionStorage if you need it. const LS_TEST_KEY = 'ls-test'; let isLocalStorageSupported = typeof localStorage === 'object'; // Try to try { localStorage.setItem(LS_TEST_KEY, 'test'); localStorage.removeItem(LS_TEST_KEY); } catch (e) { isLocalStorageSupported = false; // If we get error that we exceeded storage's quota // but storage is still empty we are in private mode if (e.code === DOMException.QUOTA_EXCEEDED_ERR && localStorage.length === 0) { // Private mode } else { throw e; } } const LocalStorage = { getItem: (key) => { if (isLocalStorageSupported) { return localStorage.getItem(key); } return null; }, setItem: (key, value) => { if (isLocalStorageSupported) { localStorage.setItem(key, value); } }, removeItem: (key) => { if (isLocalStorageSupported) { localStorage.removeItem(key); } }, }; export default LocalStorage;