正在加载内容...

963963 Chat News Review Independent coverage of news

Technology Fundamentals 6 Benchmarks and What They Hide

By Nina Alvarez · · 1220 words
Technology Fundamentals 6 Benchmarks and What They Hide

Queue Design: You can often replace a coordination problem with an idempotency key. Queue Design: Anything that grows without a bound will eventually hit one. Queue Design: Documentation that is not tested tends to describe the previous version.

Schema Migration: A design that cannot be rolled back is a design that cannot be changed safely. Schema Migration: Latency budgets are easier to defend when every hop has a stated ceiling. Schema Migration: Caching helps only until the invalidation rules become the bottleneck.

Search Indexing: The interesting number is not the average, it is the 99th percentile. Search Indexing: Adding a cache in front of a slow query is a fix; fixing the query is a cure. Search Indexing: Every abstraction you add is a place where behaviour can differ from intent.

Release Process: If a metric has no owner, it will drift until it causes an incident. Release Process: The cheapest optimisation is usually removing work nobody asked for. Release Process: Aggregating at write time trades flexibility for predictable read cost.

A boundary is different from trying to control another person. “I will stop if I feel uncomfortable” describes what someone will do to protect their own limit. “You are not allowed to speak to anyone else” attempts to direct a partner’s behaviour. Partners can discuss what works for both of them, but agreement should not depend on threats, monitoring or fear.

Talking about boundaries can make expectations clearer in a relationship, including around physical contact, sex, privacy and communication. A useful conversation is specific and voluntary: each person can say what feels acceptable, ask questions and change their mind without being pressured.

A respectful response may include questions asked to understand, a clear acceptance of the limit, or a request to discuss a separate preference. A partner does not have to share your boundary to respect it. By contrast, repeated bargaining after you have said no, guilt, threats, ridicule, or continuing after you ask to stop are not respectful ways to handle a boundary. You are not responsible for making another person approve of your limit.

Schema Markup: Periodic jobs should be safe to run twice, because they will be. Schema Markup: You rarely need a new component to fix a boundary problem. Schema Markup: The signal you want is often already logged, just not aggregated.

Content Delivery: The first thing to settle is the failure mode, not the happy path. Measurements taken once are anecdotes; you need a baseline that repeats. That applies to content delivery as well. In practice, content delivery behaves differently: Costs usually concentrate in a small number of operations, so find those first.

Monitoring Alerts: If the rollback plan needs a meeting, it is not a rollback plan. Monitoring Alerts: Small pages that stay small are easier to keep fast than large ones made fast. Monitoring Alerts: Write the invariant down; otherwise it lives only in someone's memory.

Access Control: Serving static bytes is the cheapest thing you can do at the edge. Access Control: A schema is an interface; changing it is a migration, not an edit. Access Control: Track the denominator as carefully as the numerator.

For access control, the constraint matters more than the feature list. The first thing to settle is the failure mode, not the happy path. Teams working on access control usually discover this the hard way. Measurements taken once are anecdotes; you need a baseline that repeats. Costs usually concentrate in a small number of operations, so find those first. This is most visible in access control.

People do not always find it easy to speak during an interaction. Agreeing on a simple way to pause, such as saying “stop” or “I need a break,” may help, but it does not replace paying attention to a partner’s words and behaviour. If someone seems uncertain, distressed or unable to participate freely, pause and check in rather than assuming they agree.

Load Balancing: Serving static bytes is the cheapest thing you can do at the edge. Load Balancing: A schema is an interface; changing it is a migration, not an edit. Load Balancing: Track the denominator as carefully as the numerator.

A clinician may discuss whether a test is useful now or whether it should be repeated later. Tests can take time to detect an infection after exposure, and the relevant interval varies by infection and test. A negative result soon after a possible exposure may not settle the question. The service can explain the timing for the specific test and whether follow-up is appropriate.

Queue Design: Periodic jobs should be safe to run twice, because they will be. You rarely need a new component to fix a boundary problem. That applies to queue design as well. In practice, queue design behaves differently: The signal you want is often already logged, just not aggregated.

Use direct language and describe the limit in practical terms. For example: “I want to use a condom every time we have sex,” or “Please ask before taking or sharing photos of me.” A person can briefly explain why, but they do not have to prove that a boundary is reasonable. If the limit is not yet clear to them, they can say so and ask to pause while they decide.

Edge Caching: If the rollback plan needs a meeting, it is not a rollback plan. Edge Caching: Small pages that stay small are easier to keep fast than large ones made fast. Edge Caching: Write the invariant down; otherwise it lives only in someone's memory.

Cloud Infrastructure: If a metric has no owner, it will drift until it causes an incident. Cloud Infrastructure: The cheapest optimisation is usually removing work nobody asked for. Cloud Infrastructure: Aggregating at write time trades flexibility for predictable read cost.

Teams working on backup strategy usually discover this the hard way. The interesting number is not the average, it is the 99th percentile. Adding a cache in front of a slow query is a fix; fixing the query is a cure. This is most visible in backup strategy. Consider backup strategy specifically. Every abstraction you add is a place where behaviour can differ from intent.

Schema Migration: A queue smooths spikes but also hides how far behind you are. Schema Migration: Retries without jitter turn a small outage into a large one. Schema Migration: Separating the reads from the writes buys room to change either side.

Storage Tiers: Configurations should be reviewable in a diff, not only in a console. Storage Tiers: The best time to add an index is before the table gets large. Storage Tiers: Failures are usually correlated, so plan for the shared dependency.

If the rollback plan needs a meeting, it is not a rollback plan. The same reasoning holds for cost controls. For cost controls, the constraint matters more than the feature list. Small pages that stay small are easier to keep fast than large ones made fast. Teams working on cost controls usually discover this the hard way. Write the invariant down; otherwise it lives only in someone's memory.

API Design: A design that cannot be rolled back is a design that cannot be changed safely. API Design: Latency budgets are easier to defend when every hop has a stated ceiling. API Design: Caching helps only until the invalidation rules become the bottleneck.

Related reading