User forums now online! Please see the latest post in the Announcements forum for more information.

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - haniobaid

Pages: [1]
1
In that case I think TP is issuing the correct query after all, but the driver isn't executing it as quickly as it could or something in Windows is interfering.

>>>>> Very possible of course. I have plenty of games that stopped working on windows 8.1 that used to work on windows 7.  I have picked up many windows 8.1 bugs since I switched to it too. I do have UAC turned off and I run TP as administrator. I can't think of anything else off hand but it is possible the driver functions differently on windows 8.1.


Dan:  Or maybe an error has crept into the database (have you tried Compact & Repair in Database | Advanced?)

>>>>>>>>>>>> I did try compact and repair, and strangely when I click the option nothing happens at all. I thought maybe this was meant only for the internal db. However the issue is not due to db corruption, I did after all try to recreate the db at least 3 times and the issue would occur even on a fresh db with only a couple dozen thumbnails created.

Dan: Better caching may well improve your experience, but it won't solve those initial delays when the thumbnails are first read.

>>>> Agreed.


Dan: In his case, he added options "SyncPragma=OFF; PRAGMA journal_mode=OFF" that helped, but that was with an SQLite3 database.

>>>> Interesting, I am not knowledgeable enough about the SQL driver parameters but hopefully someone on the forum may read this some day.

Dan: I don't know if there are any performance analysis or enhancement tools for MS SQL that you could throw at this problem, or if there's anything specific to Win 8.1 that might cause delays.. have you looked into that? As a general purpose tool, Sysinternal's ProcMon (free from Microsoft.com) might also provide some clues as to the nature of the delays.

>>>> There are indeed but the issue isn't happening on the db side since the query itself was lightning fast (milliseconds) when I ran it on the db directly, it is only happening when thumbsplus runs the query through the driver on the db. I do not think db optimization will help. If we could find the cause of the driver error, then a db parameter may help. There are many that could affect this such as ansi options, quote options, localization options, but it would be hard to adjust them without knowing more about what is failing. I hadn't heard of procMon but will look into it.

2
You are correct about indexes speeding up searches and accessing table columns in regards to db structure. However as the issue happens even with only thumbnail and file name displayed and file name is already indexed, while the thumbnail is of type image which cannot be indexed.

About the trace log, it was a really helpful suggestion since I now know the root cause and that I really can't do anything about it. Basically thumbsplus is incorrectly querying the driver. Now the fact that I did not have the issue with the same db version, and same photos and same thumbsplus version means that there is another factor I am unaware of influencing the issue. The only one I can think of is my previous working setup was on windows 7, whereas this one is on windows 8.1. There is actually nothing wrong with the statement being executed or it would have returned an error. It is the subsequent requests (rowcount) that are failing. I think at this stage only the developer of TP can comment, and I am guessing they do not have time to read the forums.

The fact that the issue doesn't happen on internl ms access db has no baring as to whether caching will help. I would gladly use the internal db but it is very limited in the number of photos it can index. I realize TP offers a lot of flexibility in that it lets you use whatever database platform you prefer, but the down side is they only do minimal testig on each of these platforms and cannot take ownership when things go wrong with the driver. Whereas comparable products do not have the limitation on their internal database to start with (I think that is the way forward in the future). and yes caching would make a difference since:
A. TP does not have to do a db request when the user accesses the cached thumbnail
B. As explained earlier, the issue does not happen once I manually pre-cache the thumbnails by scrolling down from the top 1000 files. At that point I can go back to the beginning and scroll up and down within that 1000 file limit without delay.
C. It is still unclear why the caching parameter has an on interface max of 10,000 but is hard coded to auto return to 1000. Again we need developer input on this
D. The caching is currently done only when the pages are loaded. Auto Pre caching means expecting the user will scroll up and down and getting the request ahead of time saving the user the wait. Since the caching feature is already there, adding pre-caching should be fairly easy. Probably the simplest way is as soon as you open the folder (or switch views or items displayed), dynamically pre cache the number of thumbnails specified in the caching parameter (removing the hard coded 1000 limit). I am guessing they put that 1000 hard-coded limit in there because of 32 bit limitations which is why I asked about moving to 64 bit in the opening post. ideally this smart caching would instead load a set number of pages up and down so instead of limiting to X thumbnails it can save the user from the issue permanently since every page scroll they do is already pre-cached.

The above is of course still a workaround based on expectations that a driver error will occur and fixing the underlying root cause would be a better if more difficult solution (since the develper may not be able to reproduce the issue as Pete and I have been able to very easily).

Regarding changing the intiial db line. TP keeps a history of the db connections you make. I tried setting it to directly use a specific db (which is the odbc driver connection) so it will ignore the history (as opposed to the default option of using the last connected db) but it did not help. Keeping in mind the only other previous connection i had as seen in the ini was the internal ms access db.

3
ok I have the trace. It is running a select ont he thumbnail database for a specifc path id and name, if I remove the where clause the select runs just fine on ms sql.

------------------ On every scroll down it runs these 2 selects:

Thumbs9         171654-171618   ENTER SQLPrepareW
      HSTMT               0x03C9AEA0
      WCHAR *             0x0827F518 [      -3] "Select "idThumb", "Thumbnail"."idPath", "idFiletype", "file_time_iso", "thumbnail_time_iso", "filelength", "checksum", "width", "height", "horiz_res", "vert_res", "colortype", "colordepth", "gamma", "thumbnail_width", "thumbnail_height", "thumbnail_type", "thumbnail_size", "Thumbnail"."name", "metric1", "metric2", "md5", "taken_time_iso", "rating", "idHost", "idUser", "thumbnail", "annotation", "xmp" From "Thumbnail" where "idPath"=? and "name"=?\ 0"
      SDWORD                    -3

Thumbs9         171654-171618   EXIT  SQLPrepareW  with return code 0 (SQL_SUCCESS)
      HSTMT               0x03C9AEA0
      WCHAR *             0x0827F518 [      -3] "Select "idThumb", "Thumbnail"."idPath", "idFiletype", "file_time_iso", "thumbnail_time_iso", "filelength", "checksum", "width", "height", "horiz_res", "vert_res", "colortype", "colordepth", "gamma", "thumbnail_width", "thumbnail_height", "thumbnail_type", "thumbnail_size", "Thumbnail"."name", "metric1", "metric2", "md5", "taken_time_iso", "rating", "idHost", "idUser", "thumbnail", "annotation", "xmp" From "Thumbnail" where "idPath"=? and "name"=?\ 0"
      SDWORD                    -3


---------------------- Then immediately after  Boom:

Thumbs9         171654-171618   ENTER SQLRowCount
      HSTMT               0x03C9AEA0
      SQLLEN *            0x08281818

Thumbs9         171654-171618   EXIT  SQLRowCount  with return code -1 (SQL_ERROR)
      HSTMT               0x03C9AEA0
      SQLLEN *            0x08281818

      DIAG [HY010] [Microsoft][ODBC Driver Manager] Function sequence error (0)

Thumbs9         171654-171618   ENTER SQLBindParameter
      HSTMT               0x03C9AEA0
      UWORD                        1
      SWORD                        1
      SWORD                      -27
      SWORD                        2
      SQLULEN                   15
      SWORD                        0
      PTR                0x010AD7B0
      SQLLEN                     0
      SQLLEN *            0x0828171C

Thumbs9         171654-171618   EXIT  SQLBindParameter  with return code 0 (SQL_SUCCESS)
      HSTMT               0x03C9AEA0
      UWORD                        1
      SWORD                        1
      SWORD                      -27
      SWORD                        2
      SQLULEN                   15
      SWORD                        0
      PTR                0x010AD7B0
      SQLLEN                     0
      SQLLEN *            0x0828171C (8)

--------------- After that the Enter sql row count error followed by function sequence error appears a few times. No other error appears through the whole log.  I noticed the 2 sql statements were executed a total of 3 times, in all cases the enter sql row count error appeared shortly thereafter. I am not sure what thumbsplus did to get the information correctly after the 3rd time since obviously the thumbnails were displayed, yet there are no other sql statements in the trace. I am googling the errors.

4
Thanks for replying Dan.

I'm not using user fields at all (actually, the only field I need that tp doesn't have is a 5 star rating field).

Issue happens even with all color management off.

Regarding database structure, the structure is created using the default script provided by cerious (after all thumbsplus wouldn't be able to work with it otherwise). The only thing I changed is decreasing thumbnail size from 320 to 240 and quality from 88 to 75 but the issue happened with the 320 / 88 also so that is not related. The script comments say the parameters at the bottom can be customized.


insert into "ThumbsPlusDatabase" values ('thumbnail_width', '320');      -- 320x320 pixel thumbnails
insert into "ThumbsPlusDatabase" values ('thumbnail_height', '320');
insert into "ThumbsPlusDatabase" values ('thumbnail_type', '6');      -- Truecolor 24-bit
insert into "ThumbsPlusDatabase" values ('thumbnail_compress', '88');   -- Jpeg @ Q88
insert into "ThumbsPlusDatabase" values ('thumbnail_files', '0');      -- Thumbnails in separate files
insert into "ThumbsPlusDatabase" values ('volume_match', '3');         -- Network name | No CD serial numbers
insert into "ThumbsPlusDatabase" values ('like_style', '1');         -- SQL92
insert into "ThumbsPlusDatabase" values ('transactions', '0');         -- SQL Server can do transactions
insert into "ThumbsPlusDatabase" values ('background_conn', '1');      -- Use additional connections for background tasks
insert into "ThumbsPlusDatabase" values ('quote_style', '2');         -- ANSI quotes
go

However it does not provide the different options you can use for each one. I am particularly interested in (like_style) and (volume_match) but I didn't touch them since I have no way of knowing what the other options are. I even checked the pdf with instructions on how to do this provided by cerious (sqlserver admin guide.pdf). It mentions only a few of these params.

Regarding how the db is driven. The odbc driver was created with the cerious recommended options as documented in the pdf. As for the db itself, it is an MS SQL 2012 db (ms sq 2012 mode also) with default charset, log file limited to 1GB, data file is at 24GB. Simple recovery model (which makes it faster if anything). The simple recovery model means it is none transactional which matches the parameters above (transactions 0). Auto statistics is on (default).

I will try tracing and update the thread shortly.

5
no good, even on a fresh install with a brand new sql 2012 database (simple recovery and pre allocated data file) and 240 by 240 jpeg thumbs with 75 quality and thumbnailing only 1 folder with 240 jpegs and nothing else, with TP running on SSD and DB on a separate drive, the issue will happen. Seems to be the code scales poorly when run over the SQL driver because all things equal when I do the same on the default thumbsplus access database the issue doesn't happen. Only 1 option was changed from default (disabled create thumbnails automatically).

I think the only solution for us is for cerious to auto cache the thumbnails as soon as you select the folder and not wait for the page to be displayed as it is doing now and to remove the hardcoded 1000 cached thumbnails nonesense, and switch to 64 bit like compareable apps. Here's hoping they do this in 10.0 soon :)

6
Interesting. No difference after uninstall, reinstall and connect to database.

I'm going to try to create a new database.

7
Thanks for answering.

Interesting. I didn't even get temporary relief on deleting the ini file. I had to of course connect to the database after startup. Also I installed using the option all users, and (store settings in one folder) so there may be another file affected in that case or maybe something is getting stored in the database.

I also tried switching from lzh to jpeg, and even to no compression. Neither made a difference. I am pretty sure there is an option affecting it since my previous installation with the same db and a 4 year older machine did not have this problem. Also everything else I do with thumbsplus is lightning fast. So I dont think it's my system hardware specs or software environment.

As a matter of fact a simpler implementation of my suggestion about caching 5 pages up and down would be to cache the number of files specified in the caching parameter and at least to remove the hardcoded 1000 maximum value and allow us to use the announced maximum of 10,000. That would be an improvement.

Since right now I'm having to switch zoom to 10%, pre cache the pages manually (bottom to top) and then scroll up to the top then switch back to 100%. This workaround is rediculously cumbersome.

Also my previous TP install was on C drive with the db on its current drive. I shall try reinstalling thumbsplus on the c drive ssd. That may yeield some improvement since TP io and db io will have separate hardware and because the ssd is faster anyway but I don't think it will solve this particular issue since the limits make it almost certainly a code bug.

The only good thing about it is that it happens every time so I will know if it is fixed or not.

8
version: Thumbsplus 9 Sp2 build 3946 (Feb2015)
Windows: 8.1 Pro MCE 64-bit running on Samsung 850 Pro 512GB SSD
DB: MS SQL Server 2012
HD: WD Red 6TB SATA (6Gb/sec 64MB Cache) (both thumbpls install and database on it)
Mobo: Asus Rampage V Extreme
CPU: Core i7-5960X 3.00GHz, 8 Core(s), 16 Logical Processor(s)
RAM: 64GB Corsair Dominator DDR4 PC2300
VID: ASUS MATRIX GeForce GTX 980 4GB GDDR5
RES: 1920x1080 Landscape
DISP: Samsung LED HDMI port
thumbnails: 240x240 Tru Color Lzh Lossless
View: Custom View (thumbsize 100%, no stetching)
Items displayed: Name, thumbnail, file size (accurate/formatted)
Params: No child folders, no watch changes, no color management, no grid, no mask, include hidden
Sorting: File Size Descending, Thumbnails last
Windows displayed: thumbnail view, location, tasks, one toolbar with 24 buttons, menu bar
DB Connection: System DSN local db (named pipes), note: tried tcp but it did not affect this issue at all


The specific performance issue is related to scrolling down the pages of the thumbnail view.

With thumbnails at 100% size, on my 40" Samsung LED, the thumbnail table will display 7 images horizantal, and 3 vertical (3.2 to be exact) for a total of 21 fully visible images per page.

For a given folder with only 1276 images with all thumbnails already created, no db tasks running, once the thumbnail view is loaded after switching to the folder, when i scroll down even 1 page, either by pressing PGDWN or clicking once on bottom of vertical scroll bar, I see a white screen in the thumbnail view briefly then the 21 images appear all at once. This happens every time I scrol down one page. If after scrolling down 10 pages, I scroll back to the first page and then scroll down the pages load instantly meaning the images are now cached and load quickly. It is obvious this caching has a preset programming limit. When i tested with my aforementioned settings I found Thumbsplus would retain about 50 pages scroling down and at that point the last scrolled page will start replacing the first in the cache.

Moreover if I decrease thumbnail size to 10% thereby displaying 464 images (29x16) per page instead of 21 (7x3), thumbsplus would still cache all displayed images on these "big" pages as I scrolled down upto about 1000 images before the last loaded image rows start displaying the first in the cache.

Not surprisingly I checked the advanced options and lo and behold there was an option for caching thumbnails set to exactly 1000. Next to the 1000 thumbsplus displayed the memory used by the setting as 231627KB (231MB). The label on the option says (Thumbnail cache count (10-10000). However if you set it to anything higher than 1000 (even 1001), thumbsplus automatically changes it back to 1000 without telling you.

So I have the following three questions:

A. Why are you limiting this to 1000 and preventing changing this option

B. As a feature request is it possible to add an option checkbox that allows always pre-caching 5 pages up, and 5 pages down in the thumbnail view so the user does not have to wait for the page to load (disabled by default with the 5 figure adjustable in advanced options). This makes much more sense from a usability perspective than supporting caching the last 50 pages (or 1000 images) but requiring the user to scroll the page and wait for the caching.

C. Your documentation on the website mentions you are wroking on a 64 bit version of thumbsplus, will this in fact be part of thumbsplus 10 and what is the current provisional estimated release quarter for thumbsplus 10?

9
Correct, sql server was installed again. However the database  physical files were retained and simply attached after the sql server install. There are no issues on the db side or the dsn. The issue is only in the original installations configuration being merged with the current. Since Daan provided the config files list, i shall try to reinstall thumbsplus fully

10
Thanks  for the detailed list Daan. I had never noticed them before.

11
Ms sql server

12
Sorry i did not mean to imply thumbsplus isn't starting. Despite the error, it is starting and connecting to the correct dsn and database and all my data and thumbnails and keywords are there, just this error keeps popping up on startup every time anyway and referencing the registry. The my docs folder is on my c partition where i keep nothing but the os. It is unfortunate thumbsplus stores the config files there. In any case i will look for the config file you mentioned but since the error references registry it seems thumbsplus is using both the file in my docs you mentioned and the registry.

If i can't fix it, i suppose i will have to swallow the bullet and reinstall.

13
Hello All,

I formatted my windows 7 machine, and after formatting tried to run thumbsplus from the exe file without reinstalling in the hopes it would retain my options and settings. unfortunately it seems to be using the registry instead of the database or an ini file in the install folder to maintain options.

In any case, I setup my database DSN with the same name as before and had thumbsplus connect to it without problems. I have reconfigured the options to the way I like them, but still whenever I start thumbsplus, I get this error message:

--------------------
The ODBC driver registry configuration is incorrect. Would you like ThumbsPlus to attempt to repair this automatically (requires administrator priviliges).

Yes / No
(buttons)

Thumbsplus Message <5746>
--------------------

Whether I click yes or no the problem isn't fixed, and thumbsplus is running with administrator privileges (run as administrator) did not make a difference. Any hope of fixing this without re-installing and losing configuration options again? I will be happy to manually edit the registry if you tell me what to edit.

Thanks,

Hani

14
Haha I spoke to soon.

I remembered thumbsplus help said it uses directshow (activemoview) to play flv files. So basically if windows can't thumbnail flvs, thumbsplus won't either.

I have the latest k-lite codec pack installed (largest mega package). there is a utility called (codec tweak tool) that comes with it (K-Lite Codec Pack\Tools\CodecTweakTool.exe). it is under k-lite start menu group.

1. start codec tweak tool
2. under (miscellaneous) section click the (thumbnails) button.
3. click (select all)
4. click apply and close

problem solved :)

15
I see Laura still hasn't answered. I can confirm that 500 days later this is still unresolved.

Like you I had to install ffdshow trial through k-lite codec, but I also had to install an flv splitter (flv splitter.ax) which allowed the flv to play inside thumbsplus internal player and then set flv type in theumbsplus equivalent to mpg.

I can reproduce the issue exactly the same way. thumbnail a single flv file works perfectly. Also clicking the thumbnail button from inside the video to make a particular frame the thumbnail works. If I make thumbnails using scan tree which is the usual most convenient method, I get generic icons instead.

The insert workaround you found works alright.

I should mention I had previously gotten this to work through some thumbsplus option but I can't remember which now. when I reinstalled windows all my thumbsplus options got reset. I'm assuming because it stored them on the registry instead of an ini file or in the database itself which really sucks when you have to format your machine every couple of years.

I hope they fix it because as I see it, one of 5 things acdeesee has over thumbsplus in terms of features:
1. higher speed since it's a 64 bit application

2. Better handling of videos in that it is a designed feature as opposed TP which is primarily concerned with stills.

3. Better keyword organization, searching, and flexibility

4. Nice way to rate all files and then access them by rating

5. Modern interface look/feel

Having said that, I still prefer TP overall on technical ability and how it scales to handle larger collections.

Pages: [1]