Donut caching is a type of caching where most of the content is cached, with a little 'hole' of content that is not cached.
Donut caching refers to the type of caching that enable you to cache an entire page's output — while leaving a few dynamic region markers to indicate places in the HTML output where you want to dynamically "fill-in" content on later requests (for example: the current user's name).
Donut caching is the opposite of partial page caching — the type of caching that is more commonly used — where most of the page is not cached but select individual parts are cached.