I'd like to learn advanced techniques about file structures.
- How does database software arrange the data in files?
- How do they manage to add/edit/delete records?
- How does index (hash, tree, other?) works?
- How do you store variable length data?
- How do you create transactions, so that even if the computers crash, to file is never in an incorrect states.
- How do you manages locks, so that more than one application/users can use the file?
Things like that. Are there some books or online resources you could suggest to me?