I have actually implemented such a structure, and it worked well. Kosenko Max wrote: > You're talking about db size much less than 1 billion records. > > In 1 billion records db with described scenario cache hit ratio so small > that everything you're talking about just very close to zero difference in > effect. Because 1 uncached random IO operation is 10ms. Any reasonable > calculations (in the current scenario) or even saving new page near current > page far less than 10ms. > > And that's what I've said - that proposal won't help and will make things a > bit worse and more complex. > > In future, when we all will forget 100 IOPS wall and will be hitting 100K-1M > IOPS, your assumptions might become in place with large DB. But I'm sure - > tricks like splitting table into 100-10000 tables with hash wheel in mind > won't give any additional significant benefit. Hashtables can be faster in > case you don't need range operations, but placing hash on top of B-Tree to > eleminate single b-tree page shouldn't give any speedup. > > If you have proven that this trick still works - I will be glad to see code > sample with benchmarks. > > Thanks. > Max. > > > John Stanton-3 wrote: > >> Quite wrong. Searching a B-Tree is relatively inexpensive but node >> splits are expensive. >> >> Inserting a non-terminal key in a part filled leaf node is cheap, >> inserting a terminal key is more expensive and a split is more expensive >> again >> >> The reason we spend the extra resources maintaining B-tree indices is >> because they maintain the keys in sorted sequence. If maintaining keys >> in order is not required a hashing method can be faster. >> >> Our fastest B-Tree indices use the virtual memory capability of the OS >> as cache and perform very well.by avoiding buffer shadowing and >> maximizing utilization of physical memory.. >>
_______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users