Friday, 6 October 2023
Windows Sandbox - Triumph of Virtualization
Sunday, 16 July 2023
Volume Shadow Copy Service Eating Disk
The Volume Shadow Copy Service is effectively a backup and restore service. It was introduced way back when in Windows Server 2003. Shadow copy is another term for Snapshot or Point-in-time copy, or Point-in-time Snapshot. There is a bunch of terms used in the context of the VSS. These include:
- The VSS Service - part of the Windows operating system that enables all parties in the shadow copy workflow to communicate.
- The VSS Requestor - actually requests the creation of the shadow copy (or operations thereon e.g. importing or deleting shadow copies).
Saturday, 9 July 2022
Describing an Azure Service Fabric Service using ServiceManifest.xml
The ServiceManifest.xml declares information relevant to your microservice.
Whether your service is stateless (no persistent storage, or state stored outside of the service, for example, through Azure Storage, Azure SQL Database, Azure Cosmos DB) or stateful, where Service Fabric manages your service state via Reliable Collections or Reliable Actors programming models.
Stateful applications are particularly interesting from an availability standpoint. The Reliable Collections API builds on System.Collections, and in particular, System.Collections.Concurrent, to create highly available (stateful) data structures while keeping code complexity to a minimum.
Reliable Collections ensure underlying data is replicated for high availability, operate asynchronously to ensure no blocking IO operations and transactional to ensure strong consistency (ensuring transaction commits finish only once changes are replicated on the majority quorum of replicas including the primary). They can also be persisted or volatile, the former where data is persisted to disk to protect against large scale outages.
Relevant data structures can be found in Microsoft.ServiceFabric.Data.Collections and in the assembly Microsoft.ServiceFabric.Data.Interfaces.dll.
Salesforce Apex Programming Language
Unpacking "In-Process" HTTP Servers in ASP.NET Core
The use of XML in manifest files - including nuspec
XML is a popular choice for writing manifest files (the term comes from logistics to mean "stuff inside").
Manifest files contain metadata for a group of accompanying files that form part of a coherent unit.
A computer program you produce may include a manifest file to capture program name, version number, author and license information as well as constituent files. The term is borrowed from logistics, where the term ship manifest is used (to enumerate the cargo, passengers and crew on the ship for inspection by customs or other officials).
A .nuspec files is an XML manifest used by the nuget packaging system.
Its format is specified by a nuspec.xsd schema file.
There is mandatory metadata as well as optional metadata, which must all appear within the <metadata> element. First off you need an id, which must be unique across nuget.org, and is limited to 128 characters (16 octets). Then you need a version, which must follow the major.minor.patch format, and a description which is limited to 4000 characters, used for UI display.