[mythtv] Watching Live TV & method TV::GetChannelInfo getting
called every second
Tako Schotanus
quintesse at palacio-cristal.com
Thu Jul 15 15:18:34 EDT 2004
Buechler, Mark R wrote:
> The problem is you don't want it cached and at the same time update
> every second - what would be the point? You would only be as up to
> date as your cache which could be several seconds off. Maybe a better
> way would be to on every channel change pull in 2 (or more) hours of
> information and only check again after 2 hours for updates. Then you
> could update at the times when the schedule changes.
>
> - Mark.
>
> ------------------------------------------------------------------------
> *From:* Tako Schotanus [mailto:quintesse at palacio-cristal.com]
> *Sent:* Thursday, July 15, 2004 2:10 PM
> *To:* Development of mythtv
> *Subject:* Re: [mythtv] Watching Live TV & method TV::GetChannelInfo
> getting called every second
>
> Isaac Richards wrote:
>
>>On Thursday 15 July 2004 12:43 pm, Buechler, Mark R wrote:
>>
>>
>>>Admittedly, I'm working with a two day old copy of CVS but I've seen this
>>>for a few weeks now. I see on my backend mysqld running at 45-55% CPU and
>>>the frontend taking more CPU than it should as well. I tracked it down to a
>>>SQL statement running every second getting channel information while
>>>watching live TV.
>>>
>>>I was wondering if anyone might know why
>>>
>>>
>>
>>LCD info updater. I didn't realize it was going every second, I'll bump it up
>>a lot, or actually, now that I look at this, I don't think it's thread safe
>>at all..
>>
>>
>>
> Sorry, had no idea that GetChannelInfo would hit the database so much.
> It did this every second so you could see program info changes while
> watching live tv.
>
> So now I've got two questions because I really want this to work (and
> I'm not the only one for sure).
>
> 1. Is there a way to get this channel information without hitting the
> database so much? (Is there a function that does local caching of the
> results for eample?)
>
> 2. Why isn't it thread-safe? I tried to model the LCD code as much as
> possible on the OSD code thinking that if it was okay to update the
> OSD it would probably be okay to update the LCD as well. But if you
> can tell me where/how it can go wrong I'll fix it (or at least try to).
>
> Cheers,
> -Tako
When I say caching I don't mean the method should just mindlessly return
what it returned before, the method takes a date/time argument so it
could easily check that the requested information is not in the cache of
previously requested programs and request that info from the backend
server. A timeout in the cache could make sure that once every so many
hours the info would be flushed.
But anyway, such a method doesn't exist and it will be much more work to
make such a caching mechanism than just switching the timer to 1 minute
like Isaac suggested, so I guess I'll just do that :-)
Cheers,
-Tako
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mythtv.org/pipermail/mythtv-dev/attachments/20040715/5cee4fff/attachment.html
More information about the mythtv-dev
mailing list