Sr. Content Developer at Microsoft, working remotely in PA, TechBash conference organizer, former Microsoft MVP, Husband, Dad and Geek.
145183 stories
·
32 followers

Kubernetes v1.34: Snapshottable API server cache

1 Share

For years, the Kubernetes community has been on a mission to improve the stability and performance predictability of the API server. A major focus of this effort has been taming list requests, which have historically been a primary source of high memory usage and heavy load on the etcd datastore. With each release, we've chipped away at the problem, and today, we're thrilled to announce the final major piece of this puzzle.

The snapshottable API server cache feature has graduated to Beta in Kubernetes v1.34, culminating a multi-release effort to allow virtually all read requests to be served directly from the API server's cache.

Evolving the cache for performance and stability

The path to the current state involved several key enhancements over recent releases that paved the way for today's announcement.

Consistent reads from cache (Beta in v1.31)

While the API server has long used a cache for performance, a key milestone was guaranteeing consistent reads of the latest data from it. This v1.31 enhancement allowed the watch cache to be used for strongly-consistent read requests for the first time, a huge win as it enabled filtered collections (e.g. "a list of pods bound to this node") to be safely served from the cache instead of etcd, dramatically reducing its load for common workloads.

Taming large responses with streaming (Beta in v1.33)

Another key improvement was tackling the problem of memory spikes when transmitting large responses. The streaming encoder, introduced in v1.33, allowed the API server to send list items one by one, rather than buffering the entire multi-gigabyte response in memory. This made the memory cost of sending a response predictable and minimal, regardless of its size.

The missing piece

Despite these huge improvements, a critical gap remained. Any request for a historical LIST—most commonly used for paginating through large result sets—still had to bypass the cache and query etcd directly. This meant that the cost of retrieving the data was still unpredictable and could put significant memory pressure on the API server.

Kubernetes 1.34: snapshots complete the picture

The snapshottable API server cache solves this final piece of the puzzle. This feature enhances the watch cache, enabling it to generate efficient, point-in-time snapshots of its state.

Here’s how it works: for each update, the cache creates a lightweight snapshot. These snapshots are "lazy copies," meaning they don't duplicate objects but simply store pointers, making them incredibly memory-efficient.

When a list request for a historical resourceVersion arrives, the API server now finds the corresponding snapshot and serves the response directly from its memory. This closes the final major gap, allowing paginated requests to be served entirely from the cache.

A new era of API Server performance 🚀

With this final piece in place, the synergy of these three features ushers in a new era of API server predictability and performance:

  1. Get Data from Cache: Consistent reads and snapshottable cache work together to ensure nearly all read requests—whether for the latest data or a historical snapshot—are served from the API server's memory.
  2. Send data via stream: Streaming list responses ensure that sending this data to the client has a minimal and constant memory footprint.

The result is a system where the resource cost of read operations is almost fully predictable and much more resiliant to spikes in request load. This means dramatically reduced memory pressure, a lighter load on etcd, and a more stable, scalable, and reliable control plane for all Kubernetes clusters.

How to get started

With its graduation to Beta, the SnapshottableCache feature gate is enabled by default in Kubernetes v1.34. There are no actions required to start benefiting from these performance and stability improvements.

Acknowledgements

Special thanks for designing, implementing, and reviewing these critical features go to:

...and many others in SIG API Machinery. This milestone is a testament to the community's dedication to building a more scalable and robust Kubernetes.

Read the whole story
alvinashcraft
8 hours ago
reply
Pennsylvania, USA
Share this story
Delete

Electron 38.0.0

1 Share

Electron 38.0.0 has been released! It includes upgrades to Chromium 140.0.7339.41, V8 14.0, and Node 22.16.0.


The Electron team is excited to announce the release of Electron 38.0.0! You can install it with npm via npm install electron@latest or download it from our releases website. Continue reading for details about this release.

If you have any feedback, please share it with us on Bluesky or Mastodon, or join our community Discord! Bugs and feature requests can be reported in Electron's issue tracker.

Notable Changes

Stack Changes

Electron 38 upgrades Chromium from 138.0.7204.35 to 140.0.7339.41, Node from 22.16.0 to 22.18.0, and V8 from 13.8 to 14.0.

New Features and Improvements

  • Added support for customizing system accent color and highlighting of active window border. #47285 (Also in 37)
  • Added fileBacked and purgeable fields to process.getSystemMemoryInfo() for macOS. #48146 (Also in 37)
  • Added tray.{get|set}AutosaveName to enable macOS tray icons to maintain position across launches. #48077 (Also in 37)
  • Added webFrameMain.fromFrameToken(processId, frameToken) to get a WebFrameMain instance from its frame token. #47942
  • Added support for app.getRecentDocuments() on Windows and macOS. #47924 (Also in 37)
  • Internally switched to using DIR_ASSETS instead of DIR_MODULE/DIR_EXE to locate assets and resources, and added "assets" as a key that can be queried via app.getPath. #47950 (Also in 37)
  • Fixed an issue where dialog.showMessageDialog showed a window incorrectly centered to monitor instead of parent window when passed. #48215
  • Fixed an issue where users on macOS were unable to interact with a webpage loaded via loadURL. #47575

Breaking Changes

Removed: macOS 11 support

macOS 11 (Big Sur) is no longer supported by Chromium.

Older versions of Electron will continue to run on Big Sur, but macOS 12 (Monterey) or later will be required to run Electron v38.0.0 and higher.

Removed: ELECTRON_OZONE_PLATFORM_HINT environment variable

The default value of the --ozone-plaftform flag changed to auto.

You should use the XDG_SESSION_TYPE=wayland environment variable instead to use Wayland.

Removed: plugin-crashed event

The plugin-crashed event has been removed from webContents.

Deprecated: webFrame.routingId property

The routingId property will be removed from webFrame objects.

You should use webFrame.frameToken instead.

Deprecated: webFrame.findFrameByRoutingId(routingId)

The webFrame.findFrameByRoutingId(routingId) function will be removed.

You should use webFrame.findFrameByToken(frameToken) instead.

Google Summer of Code Concludes

Our two Google Summer of Code contributors have just completed their summer projects!

  • @nilayarya crafted a new Save/Restore Window State API in Electron core. The new APIs will provide a built-in, standardized way to handle window state persistence. See Nilay's original RFC at electron/rfcs#16.
  • @hitarth-gg put a lot of hard work into modernizing the long-dormant Devtron extension using Chrome Manifest V3 APIs. This project provides tooling for developers to debug IPC communication, track event listeners, and visualize module dependencies in their Electron applications.

Stay tuned for a more detailed blog post outlining their projects and the outcomes.

End of Support for 35.x.y

Electron 35.x.y has reached end-of-support as per the project's support policy. Developers and applications are encouraged to upgrade to a newer version of Electron.

E38 (Sep'25)E39 (Oct'25)E40 (Jan'26)
38.x.y39.x.y40.x.y
37.x.y38.x.y39.x.y
36.x.y37.x.y38.x.y

What's Next

In the short term, you can expect the team to continue to focus on keeping up with the development of the major components that make up Electron, including Chromium, Node, and V8.

You can find Electron's public timeline here.

More information about future changes can be found on the Planned Breaking Changes page.

Read the whole story
alvinashcraft
8 hours ago
reply
Pennsylvania, USA
Share this story
Delete

Visual Studio 2026 Insiders is here!

1 Share

Get ready –the first Insiders release of Visual Studio 2026 has arrived! In this new evolution of Visual Studio, we’re continuing our commitment to building the best integrated developer environment for C++ developers on Windows.

Visual Studio 2026 features a fresh UI, faster performance, and improved developer productivity with advanced AI integration.

For more details on what’s new, check out the official announcement on the Visual Studio Blog!

We would love your feedback – try out our Insiders release of Visual Studio 2026 today! If you run into any issues, you can report them to Visual Studio Developer Community from the IDE by navigating to Help > Send Feedback > Report a Problem.

The post Visual Studio 2026 Insiders is here! appeared first on C++ Team Blog.

Read the whole story
alvinashcraft
8 hours ago
reply
Pennsylvania, USA
Share this story
Delete

Security Update for SQL Server 2022 RTM GDR

1 Share

The Security Update for SQL Server 2022 RTM GDR is now available for download at the Microsoft Download Center and Microsoft Update Catalog sites. This package cumulatively includes all previous security fixes for SQL Server 2022 RTM, plus it includes the new security fixes detailed in the KB Article.

Read the whole story
alvinashcraft
9 hours ago
reply
Pennsylvania, USA
Share this story
Delete

Training for AI with Stephanie Donahue

1 Share

How do you get your organization trained up to use AI tools? Richard talks to Stephanie Donahue about her work implementing AI tools at Avanade and with Avanade's customers. Stephanie discusses how many workers are bringing their own AI tools, such as ChatGPT, to work and the risks that represent to the organization. Having an approved set of tools helps people work in the right direction, but they will still need some education. The challenge lies in the rapidly shifting landscape and the lack of certifications. However, you'll have some individuals eager to utilize these tools, often on the younger side, and they can help build your practice. The opportunities are tremendous!

Links

Recorded July 18, 2025





Download audio: https://cdn.simplecast.com/audio/c2165e35-09c6-4ae8-b29e-2d26dad5aece/episodes/f6101502-3aa1-4bfd-a5b3-6937e5abe65d/audio/ecc9c853-107d-4fd6-a73b-1ba864d9baa1/default_tc.mp3?aid=rss_feed&feed=cRTTfxcT
Read the whole story
alvinashcraft
9 hours ago
reply
Pennsylvania, USA
Share this story
Delete

Daily Reading List – September 9, 2025 (#624)

1 Share

Big reading list today, with some point-counterpoint pieces that look at different perspectives. Enjoy!

[article] Survey: Most IT Teams Not Prepared to Manage AI Workloads. Honestly, have most IT teams been ready for any of the tech advances of the past couple decades? Gotta learn on the fly!

[blog] AI Mode is now available in five new languages around the world. Free, easy to use, and actually helpful. Give it a whirl.

[blog] A new experimental Go API for JSON. I not only like the Go language, I also like how this team (and community) approaches updates to the language.

[blog] IP Address Planning for Large-Scale GKE Deployments. This is the least flashy topic I could have possibly read about today. But also kinda interesting and relevant.

[article] How to Keep Your Team’s Spirits Up in Anxious Times. Whether folks are anxious or not—and it seems like there have been anxious folks for a long time now—this is good advice for stable, inspiring leadership.

[blog] Calling Nano Banana from Java. Excellent post that shows off image generation, image alteration, and image combination with our fantastic new AI model.

[article] A “Beam Versus Dataflow” Conversation. Run data processing workflows on self-managed infrastructure, or with a managed service? Age old debate, with some thoughts here.

[blog] Now available: Rust SDK for Google Cloud. Rust is growing in popularity, and I’m glad we now have GA support for an official SDK that covers most of our cloud APIs.

[article] Conflicting opinions on the ROI of AI. Is everyone failing with AI projects, or succeeding? It can be true that many struggle for a variety of reasons. And also true that many have the right sponsorship, tech foundation, and customer-focus to deploy AI agents successfully!

[report] The ROI of AI 2025. Here’s the report that David refers to the previous piece. I’ve gone through the report. It’s got a ton of data from a very large survey population of IT leaders.

[article] 5 Times LLMs Help You Code… and 5 Times They Fail. These can be success and failure points. Or not. Depends on the user, the situation, the product, and the expectations!

[blog] Build with your Favorite Models from the Vertex AI Model Garden with LiteLLM. This is a handy proxy that can sit in front of multiple LLMs. Karl’s examples—direct calls, via AI coding tools, and as a persistent OS service—are very tangible.

[article] Developer reliance on AI worries IT leaders. On one hand, I see that execs want their teams using AI more aggressively. Then I see these results that show leaders are concerned about the level of AI use. WHAT TO BELIEVE.

[blog] Agent Middleware. Agents need context, and often, a refresh along the way. LangChain is adding a new middleware construct to help with that. Note that ADK has something similar.

Want to get this update sent to you every day? Subscribe to my RSS feed or subscribe via email below:



Read the whole story
alvinashcraft
9 hours ago
reply
Pennsylvania, USA
Share this story
Delete
Next Page of Stories