flightaware / speedtables

Speed tables is a high-performance memory-resident database. The speed table compiler reads a table definition and generates a set of C access routines to create, manipulate and search tables containing millions of rows. Currently oriented towards Tcl.

Home Page:https://flightaware.github.io/speedtables/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

stapi::refresh_ctable doesn't rewrite the TSV cachefile

mutability opened this issue · comments

The TSV cachefile gets written once during ::stapi::open_cached, but then it never appears to get updated, even if you're calling ::stapi::refresh_ctable.

So for long-running processes that periodically refresh, the cache rarely gets used.

With a long-running process, the in-memory speedtable is used. ISTR this was created to avoid having short-running processes beating on the speedtable server.

How would you envision long-running processes using the cache?

If the in-core table is completely up to date (re #51 ) then this would be worthwhile doing. If you know the in-core table is valid because you're performing a complete reload or because you know there are no deletions, then updating the table would be worthwhile.

This could be done automatically in reload_ctable or manually (with an update_cache call) after refresh_ctable.

Should probably have set this to a non-zero value, originally.

  # Default "stale cache" timeout, zero for no timeout.
  variable default_timeout 0

Have you tried setting the -timeout value (seconds) which is supposed to refresh the tsv file after $timeout seconds when you open it?

Have a look at bc8513c