View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0003246SAS.Планета[All Projects] Багpublic27-06-2017 10:5729-08-2017 10:49
Reporteraflexus 
Assigned Tozed 
PrioritynormalSeverityminorReproducibilityalways
StatusresolvedResolutionfixed 
PlatformWindowsOS7OS VersionUltimate
Product Version160707 
Target Version181221Fixed in Version181221 
Summary0003246: Управление кешем. Сброс даты тайла при импорте в БД
DescriptionПри импорте тайлов из обычного кеша в базу данных (проверено на sqlite и berkley), их дата в базе устанавливается как текущая.

Понятно, что при получении тайла из интернета так и должно быть. Но не при работе через "Управление кешем".


Additional InformationИнтересно, что при экспорте ИЗ бд в обычный кеш, дата создания тайлов устанавливается та, что есть в базе. А вот обратно - нет.
TagsNo tags attached.
Attached Files

- Relationships

-  Notes
(0018028)
zed (manager)
15-08-2017 14:31

У тайлов, которые хранятся на диске, есть 2 даты: дата создания и дата последнего изменения. И возможна ситуация, когда дата изменения меньше даты создания (т.е. первая "2014 год", а вторая "2017 год"). Такое происходит при копировании тайлов средствами Windows - дата создания всегда устанавливается равной текущей дате. Хотя в проводнике по прежнему отображается дата последнего изменения.

Далее, при чтении даты тайла в SAS считываются обе эти даты и выбирается максимальная. Видимо, именно из-за этого и возникает такая ситуация. Код выбора даты писал vasketsov и почему он решил использовать максимальную, а не минимальную дату, мне не известно. Но выбор был явный, это не случайная описка.

Соответственно, мне нужно от вас подтверждение, что вы наблюдаете именно такую ситуацию, где дата создания файла равна текущей дате и эта же дата попадает к БД при конвертировании. Или у вас другой случай и обе даты не равны текущей, но в БД всё равно записывается текущая.
(0018034)
aflexus (reporter)
19-08-2017 14:13
edited on: 19-08-2017 14:15

Вот тесты

Импорт в бд тайлового кеша:

Last write time - Creation time - BD time
01.06.2015 0:00:00 - 02.06.2016 0:00:00 - 02.06.2016 (0:00:00)
01.07.2017 0:00:00 - 02.06.2016 0:00:00 - 01.07.2017 (0:00:00)

Экспорт из бд в дайловый кеш:

BD time - Last write time - Creation time
02.06.2016 (0:00:00) - 01.06.2016 21:00:00 - текущее
01.07.2017 (0:00:00) - 30.06.2017 21:00:00 - текущее

Время в скобочках в базе подразумевается, что именно такое (в саму базу не смотрел), ибо эти бд делал из файловых с предустановленным временем 0:00:00.

(0018035)
zed (manager)
19-08-2017 14:21

Т.е. в БД записывается максимальная дата тайла, а не текущая (как вы это описали в подробностях тикета). И вы хотите, чтобы записывалась минимальная?
(0018036)
aflexus (reporter)
19-08-2017 14:25
edited on: 19-08-2017 14:35

Да, при импорте в БД так и есть - записывается масимальная дата из даты создания и даты последней записи в файл (даты изменения).

При экспорте дата изменения почти равна (минус три часа сдвига часового пояса пока не учитываем) дате тайла в бд, а вот дата создания устанавливается текущая. Что в целом, логично.

И вот тут получается ерунда. По-сути, датой тайла является дата его изменения. И при экспорте именно она и устанавливаетя. Но почему же тогда при импорте берется большее из значений?! Выходит, просто скопировав тайловый кеш 2010 года на другой диск и после импортировав его в БД, он, вдруг, становится кешем 2017-ого? Хотя если посмотреть на работу этого же самого "скопированного" кеша в самой программе, то он работает корректно (т.е. именно 2010 год, если фильтровать по дате)

Другими словами, при импорте в БД, более логично было бы брать не минимальную или максимальную, а именно дату ИЗМЕНЕНИЯ файла. Тогда даты тайлов при экспорте/импорте/копировании теряться не будут.

А вот почему до этого бралось максимальное значение из двух надо уточнить у vasketsov. Быть может что-то я не понимаю.

(0018037)
zed (manager)
19-08-2017 14:40

Мне тоже кажется логичным ориентироваться на дату изменения тайла. На дату же создания смотреть только если вдруг дата изменения отсутствует (если такое возможно). И сравнение дат на максимальную или минимальную вообще убрать. Тогда не будет никаких глюков с датой при импорте/экспорте. Но надо подумать, будут ли какие нюансы в других режимах работы (например, при перезакачке/обновлении тайлов) и не сломается ли тогда что-нибудь другое.
(0018044)
zed (manager)
29-08-2017 10:48

Убрал сравнение дат. Теперь SAS будет вначале смотреть на дату последнего изменения тайла, если эта дата по каким-то причинам не доступна, то потом будет проверяться дата создания тайла. Т.е. выбираться будет только одна из них, а не максимальная.

- Users who viewed this issue
User List Anonymous (1229x), aflexus (24x), vdemidov (2x), zed (12x), dozhd (2x), Papazol (1x)
Total Views 1270
Last View 09-08-2020 02:50

- Issue History
Date Modified Username Field Change
27-06-2017 10:57 aflexus New Issue
15-08-2017 14:31 zed Note Added: 0018028
15-08-2017 14:31 zed Assigned To => zed
15-08-2017 14:31 zed Status new => feedback
19-08-2017 14:13 aflexus Note Added: 0018034
19-08-2017 14:13 aflexus Status feedback => assigned
19-08-2017 14:14 aflexus Note Edited: 0018034 View Revisions
19-08-2017 14:15 aflexus Note Edited: 0018034 View Revisions
19-08-2017 14:21 zed Note Added: 0018035
19-08-2017 14:25 aflexus Note Added: 0018036
19-08-2017 14:33 aflexus Note Edited: 0018036 View Revisions
19-08-2017 14:35 aflexus Note Edited: 0018036 View Revisions
19-08-2017 14:40 zed Note Added: 0018037
29-08-2017 10:48 zed Note Added: 0018044
29-08-2017 10:49 zed Status assigned => resolved
29-08-2017 10:49 zed Fixed in Version => 181221
29-08-2017 10:49 zed Resolution open => fixed
29-08-2017 10:49 zed Product Version .Nightly => 160707
29-08-2017 10:49 zed Target Version => 181221
29-08-2017 10:49 zed Summary Управление кешем. Сброс даты тайла при импорте в бд. => Управление кешем. Сброс даты тайла при импорте в БД



Copyright © 2007 - 2020 SAS.Planet Team