-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
12 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,15 @@ | ||
I'm told this is a giant pile of code which might seem unapproachable. So as | ||
a brief guide I would start with `NOTES.md` and then look at the top half of | ||
`lpset.nim`. `TODO.md` also has a lot of notes in it. | ||
|
||
My overarching goal/vision is to allow "the fast way" most of the time, | ||
especially for developers that might know how to provide a good `hash`, | ||
but to also have auto fall backs to "safer ways" with optional messages to | ||
let developers know they might want to intervene by changing some defaults at | ||
table construction time (or else let users/sysadmins know that some input may | ||
be violating the assumptions of some code sensitive to inputs). I think this | ||
may be a thing that commercial database systems have done for decades, but | ||
hasn't really percolated into commonly available runtime libraries. (Depth | ||
based growth trigger is probably the simplest example of a profile-guided | ||
optimization for data structures. A.Dain Samples 1993 PhD thesis has some | ||
more.) |