View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0003624SAS.Планета[All Projects] Багpublic08-03-2020 18:2501-06-2020 16:44
Reportersuregoodru 
Assigned Tozed 
PrioritynormalSeveritymajorReproducibilityalways
StatusresolvedResolutionfixed 
PlatformPCOSWindowsOS Version10
Product Version191221 
Target Version200606Fixed in Version200606 
Summary0003624: Баг при зуме живых векторных слоёв, приводящий к росту потребления трафика и нагрузке на сервер, либо дублированию точек
DescriptionЕсли включена опция ""Брать векторные слои из меньших масштабов"", то в живом слое при зуме векторных слоёв, объекты размножаются делением. И старые объекты не пропадают с экрана. Из-за этого приходится ждать, пока объект переместится, чтобы понять, где актуальная позиция объекта. То есть, при истечении TTL векторные объекты взятые из других уровней зума остаются на экране

Если опцию "Брать векторные слои из меньших масштабов" выключить, то происходят лишние запросы к серверу, из-за чего очень сильно растёт трафик у клиента и нагрузка на сервер.

Живой слой у нас - это электрички и самолёты, эту информацию мы используем при проведении спасательных работ по поиску пропавших людей. Чрезвычайно полезная информация для нас, когда человек заблудился в лесу, но у него есть телефон. В эти моменты каждая секунда имеет значение, потому что у людей садится батарея, а с помощью этой информации мы можем примерно понять район, где человек находится
Steps To Reproduce0. Добавить слой, в Maps/sas.maps
1. В меню "Вид" включить опцию "Брать векторные слои из меньших масштабов"
2. Включить отображение слоя, у которого в params.txt указан ttl (слой во вложении)
3. Найти на карте точку слоя (например электричку), приблизить
4. Подождать, пока точка переместится (увидеть, что предыдущая точка не пропала)

Если опцию "Брать векторные слои из меньших масштабов" выключить, то будут происходить лишние запросы, расти потребление трафика у клиента и лишняя нагрузка на сервер, генерирующий слой
Additional InformationСкриншот демонстрации бага - https://drive.google.com/file/d/1yssqYubfSUsgrX5toMNCZLERWqWTgPCE/view?usp=sharing
Слой - во вложении
TagsNo tags attached.
Attached Fileszip file icon Extremum.zip [^] (11,979 bytes) 08-03-2020 18:25

- Relationships

-  Notes
(0019678)
Belkin (reporter)
10-03-2020 08:28
edited on: 10-03-2020 08:34

Версия 2012хх это же конец года, правильно?
Боюсь, что баг исправленный до конца апреля (т.е. до начала завала с поисково-спасательными работами) исчезнет для руководителей работ в этом году, а исправленный позже отразиться на поисковых буднях лишь с 2021 года

(0019680)
borisovnick (reporter)
10-03-2020 08:39

Да, пожалуй, пока это имеет место быть, я б не рискнул локализовать потерявшегося по движущимся объектам, не будучи уверенным, что он находится именно в этом месте, а не застрял в кэше. Так можно промахнуться на десяток километров. В итоге идея красивая и нужная, а из-за этого фантомного нюанса - пока получается нерабочая.
(0019682)
Antey (reporter)
10-03-2020 08:49

Поддерживаю, до начала сезона поисков бы сделать
(0019683)
zed (manager)
10-03-2020 09:09

А на сколько больше происходит запросов к серверу, при отключённой функции "Брать векторные слои из меньших масштабов"? Вы делали реальные замеры? Просто, у вас и так каждые 7 секунд автоматически перезагружаются тайлы для видимой области, что само по себе приличная нагрузка.
(0019684)
Belkin (reporter)
10-03-2020 10:23
edited on: 10-03-2020 10:24

Нагрузка от постоянного перезапроса живых слоёв на самом деле крайне смешная. По процессору 0,3-0,5% на каждом из серверов и трафик не заметен даже при условии, что одновременно происходит несколько спасработ в разных регионах. Даже если повключать все слои со всеми сервисами геолокации пострадавших, всеми трекерами, электричками там и прочим. Всё же они не для широкого использования. А вот прочие векторные слои на самом излёте сезона создавали по 100Гб трафика в месяц с довольно высокой нагрузкой по процессору. Плюс, люди отключившие кэш получают перезапросы и по Викимапии.

Есть ещё нюанс, тогда отрядов в одновременной работе было типично три, а SAS Планету сейчас внедряют несколько десятков (60 человек вот прям сейчас учатся из разных регионов). Сложно сказать сколько мы сэкономим на нагрузке, но думаю очень значительно, даже если всего лишь в три раза будет очень хорошо. Ну и все постоянно перестанут спрашивать почему у них в SAS Планете куча объектов появляется, часть из которых дублируется и не двигается — уже будет большой прогресс. Признаться, мне уже надоело отвечать что это баг такой в SAS Планете. И если я правильно понял, представители какого отряда написали баг, то они тоже спрашивали. Коллеги, спасибо что занялись, мне не разорваться!

(0019685)
zed (manager)
10-03-2020 10:32

Баг, безусловно надо фиксить, а вот то, что вы о нём давно знали и не сообщили - это зря.
(0019686)
zed (manager)
10-03-2020 15:54

Да уж, загадка. Думал что это из-за того, что не приходят нотификации об изменениях в RAM кэше при TTL или переполнении кэша. Переделал нотификации, чтобы приходили, но метки всё-равно двоятся.
(0019687)
zed (manager)
10-03-2020 18:47

Добавил ещё фикс в mem-кэше и кажется я понял из-за чего может наблюдаться такое поведение.

Поскольку векторные объекты двигаются, то между двумя обновлениями карты за время TTL, они могут оказаться на разных тайлах одновременно. Т.е. старое положение осталось на тайле A на предыдущем зуме (в кэше), а новое попало на тайл B на текущем зуме (загрузилось из интернета). Вот и проявляется опция Брать тайлы из меньших масштабов, показывая сразу 2 объекта. И единственное решение - очищать все кэши, что равносильно отключению опции, т.е. смысла особого нету.

Измените в zmp стратегию очистки кэша: MemCacheClearStrategy=0 - вкупе с сегодняшними изменениями, должно немного помочь.

Для статических слоёв типа Викимапии это не актуально.
(0019688)
omen98 (reporter)
11-03-2020 06:41

Так в том то и дело, что TTL параметр не срабатывает при изменении зума - мы ушли на другой зум - а в предыдущем электричка зависла, и не счищается при истечении времени жизни тайла в кэше. а решение наверное верное - очищать все кэши для слоев с !TTL
(0019690)
zed (manager)
11-03-2020 07:27

> и не счищается при истечении времени жизни тайла в кэше

Это вы после моих фиксов такое наблюдаете или по старой памяти?
(0019694)
omen98 (reporter)
11-03-2020 09:35

По старой памяти. Доберусь до компа гляну обновку
(0019697)
Belkin (reporter)
11-03-2020 20:12
edited on: 11-03-2020 20:23

По-моему, фикс сработал. Я не увидел никаких проблем, бесконечно делая зум туда-сюда у самолётов и электричек.

Update: да, значки не размножаются, но теперь они время от времени стали пропадать на несколько секунд. Кажется, что объекты отображаются через раз. Если выставить TTL 7000, то семь секунд значки есть, семь секунд их нет. Заменa CacheStrategy на ноль не помогла. На всякий случай проверил, что в предыдущей сборке значки не пропадают.

(0019698)
zed (manager)
12-03-2020 07:30

Исправил. Проявилась рассинхронизация между очисткой кэша по TTL и рестартом качалки. Сейчас будет всё согласованно: вначале очистка кэша, затем рестарт качалки. И теперь значки будут "моргать" - на время пока отрабатывает качалка они исчезают, а потом по мере загрузки появляются.
(0019712)
suregoodru (reporter)
16-03-2020 14:25

Огромное спасибо.
Иконки, конечно, мерцают, но работать со слоями теперь стало гораздо удобнее и ошибок с местоположением быть не должно.

Хочется отдельное спасибо сказать за ваш инструмент. Его используют многие отряды спасателей поисковиков, не только в России, но и в ближайшем зарубежье (по крайней мере из тех, что знаю я). SAS.Планета невероятно помогает нам в планировании спасательных операций.
Вы делаете большое дело!

- Users who viewed this issue
User List Anonymous (314x), ygorigor (1x), suregoodru (33x), Antey (8x), ingener (4x), omen98 (46x), zed (23x), Belkin (29x), vdemidov (3x), sergei.hunter (1x), borisovnick (5x), lalela (1x)
Total Views 468
Last View 27-09-2020 13:26

- Issue History
Date Modified Username Field Change
08-03-2020 18:25 suregoodru New Issue
08-03-2020 18:25 suregoodru File Added: Extremum.zip
08-03-2020 19:04 zed Status new => confirmed
08-03-2020 19:04 zed Product Version .Nightly => 191221
08-03-2020 19:04 zed Target Version => 2012xx
10-03-2020 08:28 Belkin Note Added: 0019678
10-03-2020 08:34 Belkin Note Edited: 0019678 View Revisions
10-03-2020 08:39 borisovnick Note Added: 0019680
10-03-2020 08:49 Antey Note Added: 0019682
10-03-2020 09:09 zed Note Added: 0019683
10-03-2020 10:23 Belkin Note Added: 0019684
10-03-2020 10:24 Belkin Note Edited: 0019684 View Revisions
10-03-2020 10:24 Belkin Note Edited: 0019684 View Revisions
10-03-2020 10:32 zed Note Added: 0019685
10-03-2020 15:54 zed Note Added: 0019686
10-03-2020 18:47 zed Note Added: 0019687
11-03-2020 06:41 omen98 Note Added: 0019688
11-03-2020 07:27 zed Note Added: 0019690
11-03-2020 09:35 omen98 Note Added: 0019694
11-03-2020 20:12 Belkin Note Added: 0019697
11-03-2020 20:21 Belkin Note Edited: 0019697 View Revisions
11-03-2020 20:23 Belkin Note Edited: 0019697 View Revisions
12-03-2020 07:30 zed Note Added: 0019698
16-03-2020 14:25 suregoodru Note Added: 0019712
17-03-2020 06:54 zed Status confirmed => resolved
17-03-2020 06:54 zed Fixed in Version => 2012xx
17-03-2020 06:54 zed Resolution open => fixed
17-03-2020 06:54 zed Assigned To => zed
01-06-2020 16:44 zed Target Version 2012xx => 200606
01-06-2020 16:44 zed Fixed in Version 2012xx => 200606



Copyright © 2007 - 2020 SAS.Planet Team