Safe Fixtable and ets:select with partial results

Sean Hinde sean.hinde@REDACTED
Tue Feb 3 22:12:06 CET 2004


I am using ets:select/3 and ets:select/1 to pick up parts of tables 
(say the 10th to 20th rows). I guess that the ets:select/3 call must do 
an implicit ets:safe_fixtable(Tab, true) otherwise later use of a 
returned Continuation might get mixed up in a re-hash activity.

If I use this mechanism in a long lived process, and never actually 
traverse the table all the way to the end I am a little concerned that 
I might leave the table perpetually fix_tabled with all the associated 
long term performance problems.

So, does anyone know if I am worrying unnecessarily? If I am not, do I 
need to call ets:safe_fixtable(Tab, false) after abandoning a sequence 
of  ets:select/3 and ets:select/1 calls part way through the table?

If so, it might be worth a mention in the documentation.


More information about the erlang-questions mailing list