"correct" is not an objective measure, it's a function of use case
mmap is not a panacea, it improves specific access patterns by incurring specific costs, it's definitely not true that mmap is the right choice for all databases
Yes, I understood, but "mmap a file" that should be a database is not "easy", because now you can deal with segfaults and other weird things that are out the normal playbook.
Of course, depending on the other things of the list this is or not a major issue. Is more about how combining several ideas leads to a easy or complex implementation.
Complex when you want to
> 2. Manage access to it through a server
A database is only "easy" IF:
- Append only
- No real "delete" or "updates" just to reiterate the above.
- Only Sequential scan
- Only need simple iterator-per-row
- No maintain secondary stuff like indexes, so not need to coordinate changes
- No concurrency
- Fit in RAM, and I mean in few MB
- No need to deal with SQL, use his own DSL (sql is so bad! so much weird stuff!, but is ok to have something sql-ish like LINQ)
- No need to deal with recursive data types, only scalars
- Is only embebed
- No need auth or security validations
Ok, after making this list, I sure forgot some other tips to make this easy!