You don't HAVE to make it into charcoal, but it will take up way more volume if you don't and contains tons of volatiles like methane that will come out and may make the ground less stable to simply bury with dirt as it partially rots.
Theoretically you could harness some of those volatiles for some energy production, but at the very least use those volatiles to heat the wood and make it charcoal for basically free.
The standard pattern to avoid select for update (which can cause poor performance under load) is to use optimistic concurrency control.
Add a numeric version column to the table being updated, read and increment it in the application layer and use the value you saw as part of the where clause in the update statement. If you see ‘0 rows updated’ it means you were beaten in a race and should replay the operation.
I don't think such a broad recommendation will be good for most people, it really depends.
Optimistic updates looks great when there is no contention, and they will beat locking in a toy benchmark, but if you're not very careful they can cause insane amplification under load.
It's a similar trap as spinlocks. People keep re-discovering this great performance hack that avoids the slow locks in the standard. And some day the system has a spike that creates contention, and now you have 25 instances with 24 of them spinning like crazy, slowing to a crawl the only one that could be making progress.
It's possible to implement this pattern correctly, and it can be better in some specific situations. But a standard FOR UPDATE lock will beat the average badly implemented retry loop nine times out of ten.
Good point. The barrier pattern from the article applies to both approaches - whether you're using pessimistic locks or optimistic version checks, it's good to verify that the concurrency handling actually works. Barriers let you test that your version check correctly rejects the stale update, the same way they test that your lock prevents the race.
But you’re not getting slower and slower for every car. Lets say 100 cars pull in front of you, and let’s be say each car adds 5 metres of space, so you have 500 metres of ‘lost’ space to regain.
At over 100 km/h that would be ideally 5m for a car and 70m for a safe distance between each one so 7,5km, which is 4.5 minutes at 100 km/h or 9 minutes at 30 mph.
it definitely is. talking to non-tech people, even a password manager or adblock extension for a browser are magic. installing a basic OS is magic. freaking debugging something which isn't working is magic.
i've had to show people that they have to plug in their HDMI cable into their GPU instead of the motherboard, that they have to manually set the Hz in windows settings. how to install basic drivers.
so many more easy examples we IT-workers or nerds just take for granted. taking this to the extreme, my grandma asked me if i could search recipes online for her, because [insert your favorite search service] seemed too complicated.
So next to these examples, setting up syncthing with a VPN is next to impossible :( and even if they manage to set it up, good luck when you run into issues after a couple of months.
You do indeed use JOINS. The goal is to retrieve exactly the data you require in a single query. Then you get the DB to `EXPLAIN VERBOSE` or similar and ensure that full table scans aren't happening and that you have indexed the columns the query is being filtered on.
reply