Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Прошу реализовать точечный сброс всех кэшей по ссылке объекта БД #280

Open
tormozit opened this issue Feb 8, 2024 · 0 comments

Comments

@tormozit
Copy link

tormozit commented Feb 8, 2024

https://partners.v8.1c.ru/forum/topic/2172509
Рассмотрит типы кэшей платформы, ключами в которых выступают ссылки:

  • кэш результатов общих модулей (повторно используемых возвращаемых значений), где ссылка может быть в самом параметре и внутри структуры в параметре. Можно сбросить только полностью методом ОбновитьПовторноИспользуемыеЗначения(). Максимальное время неактуальности - 20 минут
  • объектный кэш (внетранзакционный, транзакционный) https://its.1c.ru/db/pubdevguide83#content:304:hdoc . Явный сброс не предусмотрен. Максимальное время неактуальности - 20 секунд.
  • кэш представлений ссылок (внетранзакционный, транзакционный) https://its.1c.ru/db/pubdevguide83#content:304:hdoc . Можно сбросить точечно на клиенте методом ОповеститьОбИзменении(Ссылка). Максимальное время неактуальности - 20 секунд.
  • кэш данных через точку. Можно сбросить точечно на клиенте методом ОповеститьОбИзменении(Ссылка). Максимальное время неактуальности - 20 секунд
  • кэш данных быстрого выбора . Можно сбросить точечно на клиенте методом ОповеститьОбИзменении(Ссылка). Максимальное время неактуальности - ?
  • кэш ограничений по типу. Можно сбросить точечно на клиенте методом ОповеститьОбИзменении(Ссылка). Максимальное время неактуальности - ?

Из этого списка видно, что

  1. Нет достаточно универсального доступного на сервере точечного способа сбросить все кэши по ссылке
  2. Есть как минимум один тип кэша (кэш результатов общих модулей), который может очень долго использовать неактуальные данные.

Часто после записи ссылочного объекта в текущем сеансе программа продолжает использовать его старые данные. Происходит это потому, что сначала данные объекта попадают в различные кэши, а затем после его записи они не сбрасываются. Вот пример для объектного кэша https://www.hostedredmine.com/issues/948225

Поэтому прошу сделать в платформе

  1. При записи объекта сброс всех кэшей по ссылке в текущем сеансе должен вызываться автоматически на сервере и при первой возможности на клиенте.
  2. Добавить серверный метод СброситьКэшиПоСсылкам(Ссылки) для явного такого сброса кэшей. Этот метод должен вызываться платформой автоматически из существующего метода платформы ОповеститьОбИзменении(Ссылка).

Кстати с учетом будущих оповещений клиента с сервера в 8.3.26 с этим методом можно будет при записи каких то важных объектов оперативно обновлять кэши по ним во всех клиентских сеансах.

@tormozit tormozit changed the title Прошу реализовать точечный сброс всех кэшей по ссылке Прошу реализовать точечный сброс всех кэшей по ссылке объекта БД Feb 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant