Page 1 of 1

PT3 always rebuilding cache after a manual import

PostPosted: Tue Aug 16, 2011 8:00 am
by Ixiterra
AFAIK this only started happening after upgrading to 3.11.2. I have about 20 custom columns if that makes a difference. Cache rebuilds take 1.5+ hours on a reasonably sized db, and I have never seen a cache update take more than 15-20 minutes. I know PT is supposed to be choosing which is faster, but I find it unlikely that a rebuild is faster than an update. I think this only started happening after the db got bigger than 300-400k hands, not sure. Shouldn't an update take less time as the db gets larger? This doesn't make any sense and is keeping me from playing poker while this stupid db cache rebuilds.

Re: PT3 always rebuilding cache after a manual import

PostPosted: Tue Aug 16, 2011 8:49 am
by kraada
How big are these imports you are doing? The larger the import the more likely it is that the rebuild will in fact actually be faster. If you do the imports in small enough chunks it will definitely only update, but the time to import the entire batch will be longer in the end (though if it lets you choose when you want to play this may be preferable for you). For what it's worth, this is no longer an issue in PT4.

Re: PT3 always rebuilding cache after a manual import

PostPosted: Tue Aug 16, 2011 9:30 am
by Ixiterra
kraada wrote:How big are these imports you are doing? The larger the import the more likely it is that the rebuild will in fact actually be faster.


I know you guys keep saying this in these threads, but my experience is that this is simply not the case. I'm running a relatively small db nowadays compared to what I have on my PC with an SSD drive (currently on a crappy laptop in canada). When I started adding new columns, cache rebuilds would take some 6-10 hours on a 600-800k hand db on an SSD with a triple core processor. You're telling me if I were to import 30-40k hands that a rebuild will be faster than an update? Updates have always been fairly linear in the amount of time they take based on the number of hands imported, regardless of the size of the existing db. Rebuilds take an increasingly longer amount of time the larger the existing db. How can a rebuild ever be faster unless the amount of hands being imported is more than what is currently in the db? And even then I don't see the logic. I went from 5-10 minute updates to now 2-3 hour rebuilds. This is aggravating.

It's great that it's not an issue in the fancy new version of PT that won't be out for months, but it wasn't an issue before in PT3 and now it is. You guys broke something that didn't need fixing, imo.

Re: PT3 always rebuilding cache after a manual import

PostPosted: Tue Aug 16, 2011 10:00 am
by kraada
Let me explain what happens and perhaps that will illuminate things:

After you import hands there's some percentage of your database that is uncached. There are two options: update (calculate stats for just those hands and then update the numbers in the cache) or rebuild (calculate stats for all hands from scratch). Because of the way this works, when a large percentage of your database is uncached, rebuilds are faster than updates. So if you only have 10% of the data cached, it's faster to calculate for all of the data than 90% and then add. I know this sounds weird but we have done extensive testing showing that this is the case.

The question is exactly where to cut it off. I think we were too aggressive initially and our latest betas have increased the range in which we'll update - are you running our latest beta version?

Re: PT3 always rebuilding cache after a manual import

PostPosted: Tue Aug 16, 2011 10:37 am
by Ixiterra
It does not illuminate how I have never seen an update take more than 30 minutes to a rebuild taking 2-3 hours or much, much more. It also does not illuminate why you force your users into one option when previously they could choose which to do. Have you tested this under all kinds of different database sizes, import sizes, and computers?

Re: PT3 always rebuilding cache after a manual import

PostPosted: Tue Aug 16, 2011 12:12 pm
by kraada
I did not personally perform these tests and I don't know the extent of them.

By default as long as the cache percentage is more than 90 it will trigger Update not Rebuild. The thinking was that users will not know when they are Updating that the Rebuild option would in fact save them time and that all users would want the faster option.

However, for advanced users like yourself who are experiencing issues we have added a hidden configuration option to let you set the percentage yourself.

To change the percentage edit the pokertracker.cfg file (by default it will be in C:\Program Files (x86)\PokerTracker 3\Data\Config) in notepad (or some other text editor). At the bottom insert the following:

[StatManager]
CacheRebuildPercentage=90

Then you can change "90" to whatever you prefer. Whatever it's set to, if the cache percentage is below that number, a rebuild will be triggered. Once you save the file and restart PT3 the new value will be active.

Re: PT3 always rebuilding cache after a manual import

PostPosted: Tue Aug 16, 2011 3:08 pm
by Ixiterra
I added that line to pokertracker.cfg (I set it to 50), restarted, tried an import and it's still doing a rebuild. The import was only about 10% of the db's size, so it should not have triggered.

Re: PT3 always rebuilding cache after a manual import

PostPosted: Tue Aug 16, 2011 4:35 pm
by kraada
Unfortunately stopping the rebuild won't help now because it'll leave the cache in a state where it definitely needs to be rebuilt.

After this finishes, the next time you do an import, make sure you've started PT3 with the Logging Enabled link and before you do the update cache, run an Analyze by itself - that will update the cache status bar. Then try running the cache update and if it still triggers the rebuild please report this problem so that we can make sure it gets fixed - that setting should work.