         @_call_with_lock(((cb)=>@_read_updates_from_db(string_ids, age, cb)), cb)
 
     _read_updates_from_db: (string_ids, age, cb) =>
-        #@dbg("_read_updates_from_db", misc.to_json(string_ids))
+        @dbg("_read_updates_from_db", misc.to_json(string_ids))
         if not @db?
             cb("database not initialized"); return
         where = {string_id:{'in':string_ids}}

    poll_for_updates: (interval=INIT_POLL_INTERVAL) =>
        retry = (interval) =>
            next_interval = Math.max(INIT_POLL_INTERVAL,Math.min(MAX_POLL_INTERVAL, POLL_DECAY_RATIO*interval))
            setTimeout((()=>@poll_for_updates(next_interval)), interval)

        if misc.len(@strings) == 0

        # will later implement things to make faster.  If this database sync thing
        # turns out to be sensible.
        #  SIMPLIFIED: ignore is_first and never trim.
        @dbg("_process_updates", "process #{updates.length} updates")
        new_patches = {}
        for update in updates
            update.timestamp = update.timestamp - 0  # better to key map based on string of timestamp as number
