Well the theory tells us that lookups are O(1) anyway, so the implementation doesn't matter ;)
Will the dataset change over time, or is it immutable? I have some thoughts on this, but I have no idea how it would scale to terabyte-scale and even further.