Re:Why databases use ordered indexes but programming uses ha...
by jdsully on Monday December 09, 2019 @09:48PM
(#21749168)
If huge pages are used then it's very likely the page is cached in the MMU.
[ Parent
| on HN ]
Re:Why databases use ordered indexes but programming uses ha...
by loeg on Tuesday December 10, 2019 @12:34AM
(#21749890)
Depends on your workload and how many TLB entries your CPU has for superpages. The Zen 2 TLB can hold tons (1000s) of 2MB superpages but relatively few (64) 1GB superpages. Older CPU models had worse capacity for 1GB and 2MB superpages. E.g., Haswell (2013) had only 32 entries for 2MB superpages and 4 entries for 1GB superpages (data).
Re:Why databases use ordered indexes but programming uses ha...
by cperciva on Tuesday December 10, 2019 @01:36AM
(#21750225)
In addition to the limited number of cache slots available for superpages (varies depending on cpu), remember that those can be invalidated (again, depending on cpu). If you're ping-ponging processes on a single CPU, you won't necessarily have what you need in the TLB.
Re:Why databases use ordered indexes but programming uses ha...
by davedx on Tuesday December 10, 2019 @01:51AM
(#21750285)
> If you're ping-ponging processes on a single CPU, you won't necessarily have what you need in the TLB.
Is that really likely on a production database server?
Re:Why databases use ordered indexes but programming uses ha...
by cperciva on Tuesday December 10, 2019 @02:25AM
(#21750414)
Depends on the design. At a minimum you're ping-ponging between userland and kernel; but you might also be bouncing between a transport layer unwrapper, an authentication front-end, the database core, and a storage back-end.