The fastest possible way to store and retrieve data of all shapes and sizes is B-trees.
So, you should have a look at http://use-the-index-luke.com/ to learn how SQL databases use B-Trees.
Are you serious? What kind of small company actually designs "...software...which they showed to Microsoft..." and doesn't expect
a) the ideas to be stolen by Microsoft.
b) be bought out by Microsoft.
c) be "corporate cannibalized" by Microsoft.
d) ALL OF THE ABOVE!
This was around the time that Microsoft was being tried and convicted on anti trust grounds in the U.S. and supposedly was reforming into a "kinder gentler" Microsoft that didn't resemble the black widow spider any more.
In most of our lifetimes? Per Wikipedia:
The very large IPv6 address space supports a total of 2^128 (about 3.4×10^38) addresses--or approximately 5×10^28 (roughly 2^95) addresses for each of the roughly 6.5 billion (6.5×10^9) people alive in 2006. In a different perspective, this is 2^52 (about 4.5×10^15) addresses for every observable star in the known universe.
It will take way more than poor management to use up all those numbers in any timescale with meaning to a human life.
That quote from Wikipedia you pulled, is immediately followed by this:
"While these numbers are impressive, it was not the intent of the designers of the IPv6 address space to assure geographical saturation with usable addresses. Rather, the longer addresses allow a better, systematic, hierarchical allocation of addresses and efficient route aggregation."
If we could arbitrarily ignore the network structure and special ranges assigned in IPv4, we have 4.2 billion possible IP numbers (2^32). Do we have 4 billion computers on the Internet? No. Do we have IPv4 shortage? Yes. In fact we had IPv4 shortage even back in the early 90-s when Internet was far from being mainstream yet (which prompted the jump from classful network to CIDR).
To iterate is human, to recurse, divine. -- Robert Heller