Jul. 17th, 2017

johnpalmer: (Default)
So the good news is, I'm learning more about what fatigues me; and, I've been learning to to be more plugged in intellectually.

The bad news is that some of the stuff that fatigues me seems to be pretty low-key and difficult to avoid.

I've also gotten better a learning to avoid stuff that fatigues me when things are going badly - I think this is part of why I'm keeping plugged in mentally. That's a good thing.

In other good news, I'm learning about other database systems and starting to be able to reason about them more deeply, and to collaborate with other people who know them. The not-quite-bad news is I'm learning how hard it is to go from knowing huge gobs of information about SQL Server, and not always being able to translate it to other engines yet, because of the depth of the knowledge.

An example? Well: SQL Server is a database engine; most database engines make changes in memory, and then flush those changes to disk later. SQL Server has two mechanisms for this: the checkpoint, and the lazywriter. MySQL runs checkpoints too, but it also has a scan that runs once a second that *sounds* like the lazywriter, but might not be. And for some reason, this lazywriter-like function can block changes to the database. So, why? What's up with that? How does it work?

These are pretty deep questions, and they're pretty advanced, too. You could build a fine and powerful application running MySQL and never need to know this. You could build multiple such applications and never need to know this, in fact - and you could manage many such applications without need to know it. So where is it documented? Well... hither and yon. There are hints here and there in blogs and forums, but not all such hints are made by people who understand the process on a deep level, so they have to be reviewed carefully.

Just as in life where there's always a solution that's simple, elegant, and wrong, I'm sure there are discussions of this process that are likewise simple, elegant, and wrong.

I kind of wish I was younger - there were times when I'd imagine this as being akin to studies of magic in many fantasy worlds, where people know set spells, but don't quite understand precisely why they work. It would be exciting viewed from that perspective!

And it wouldn't surprise me if such stories were more likely written more by Unix programmers and admins than Windows. One interesting difference between Unix and Windows programs: Unix programs have a tendency to have dozens, or hundreds, of configuration options that you can set, meaning that there are all kinds of ways to control your daemons (no, really - that's the Unix term for what we Windows people call a "service") using these options, but it's really hard to know what, precisely, is making a difference.

So, you see, understanding MySQL is a lot like learning magic in such a world - you can see things to change, but if you don't have a deep understanding of how they all tie together, it's easy to make superstitious changes (things get better, but not because of what you did) or to confidently break something completely; you can also make the right changes, and things work much better. It could be really kind of fun and exciting to tie all this together and to feel like you're understanding the magic better.

Right now, it's a bit frustrating - but it's getting better. As I keep reminding myself, there are only so many ways to do things and I know many of them - once I figure out what is being done, and why it's being done, I can usually piece together how it can be done, and then reason from there how they are doing it. It's not as fun as imagining myself as a master of the mystic arts, but it's getting the job done.

Here's hoping life is treating you all well - that you have joy, and love in your life, and that you have striving where you need challenges, and rest and support where you need succor.

(Oh, great. Now I'm remembering old cartoons - someone gets in a bad scrape and someone yells SUCKER! It would be twisted in a good way, I suppose, to reverse that - have the cartoon show someone getting help when they need it, and having someone call out SUCCOR!)

I suppose, next I'll have to explain why, when thinking of random numbers, I'll usually come up with 2356.
Page generated Sep. 23rd, 2017 05:57 pm
Powered by Dreamwidth Studios