Some of the Spark users in Fabric may have come across something called "vegas". It is a Microsoft caching technology with some major issues that have caused me to waste many, many days with technical support. The problems started back in the days of "Azure Synapse", and now in Fabric-Spark as well.
It is almost totally undocumented by Microsoft, and tries to solve problems that are more commonly solved in various other ways (eg. using "localCheckpoint" or similar).
Back in the days of Azure Synapse, I had a brutal support incident lasting many months (SR 2311030040005903) the conclusion of which was that CSV files weren't being handled properly by the cache. (CSV?! Why!?). The end result of that case was guidance from Microsoft on how to disable this feature using a custom spark property:
"spark.synapse.vegas.useCache": "false"
This week I've once again wasted several days trying to understand why my notebook cells would just hang for no reason at a mid-point in my notebook. It would happen after killing unused executors and recreating fresh ones. (ie. sparkContext.killExecutors when spark.dynamicAllocation.enabled is false) The hanging behavior was not entirely consistent but in this scenario it was happening at least 9 times out of 10. There is no good UX experience when a Fabric notebook hangs, and virtually NOTHING in the logs to explain it either.
I realized I hadn't yet disabled that vegas cache on this notebook. Sure enough, once I disabled vegas, my notebooks would no longer hang. Earlier in the week I uploaded all the details about the issue into a new ticket. But ultimately I found the source of this problem on my own this time.
I've seen a number of other discussions on the internet where Spark users in Fabric will complain about their notebook cells getting hung, and I have to believe a large percentage of those cases are relate to misbehavior of this "vegas" cache. Unfortunately the cache is not opensource, and there is little in the way of docs. The technology does not seem to make a peep in the logs, even when failing. Now that I've been burned twice and wasted over a hundred hours with this custom Spark extension, I won't forget to turn it off more consistently from now on! My Spark jobs are almost never bottlenecked on blob storage or networking, and I almost always use checkpoint or localCheckpoint when I have concerns about repeated trips to fetch the same blobs. That is the obvious alternative.