Hey Riker , bummer about the incident, but glad you escaped relatively unscathed and gleaned some useful insights.
They’re definitely being scheduled; it’s just that they’re executing as soon as they get scheduled. It would be mostly chance to see one in the list of scheduled WFs. If you repeatedly clicked the “Show” button like a monkey, you’d likely catch one every now and then. (Yes, I’ve done it. And yes, I’m a monkey.)
While searches themselves are 0.3 WU, each thing returned from the DB costs 0.015 WU. For 10K items, that’s 150 WU just for retrieval in the first iteration. And it sounds like the list was decremented by one with each iteration; but with 10K iterations, that’s a lot of WU. Add to that 0.000003 for each character retrieved, 0.5 for each thing modified, and the overhead of repeated scheduling, and it adds up.
@Jici is spot on, especially given the recent enhancements introduced just over a year ago.
In fact, I recently had to do a data update similar to yours. I needed to modify two fields in each of exactly 10K items, one of which was a reference to an image file that was uploaded at the same time. I used SAWOL, and the total WU cost was somewhere around 15K (which is what I expected having first tested on just 10 items and extrapolated). And if memory serves, it took less than 20 minutes (to update 10K records and upload 10K image files to Bubble storage).
TL;DR The SAWOL improvements Bubble has made seem quite robust and are very performant. Generally speaking, they should be the go-to, as long as you’re mindful of the considerations noted in the docs for parallel vs sequential processing.
Or in perhaps more familiar terminology… With the new and improved SAWOL, it’s like Bubble replaced the dilithium crystals and rerouted the plasma conduits. It does warp 8.7 now.