Показать сообщение отдельно
Старый 06.06.2017, 11:04   #1  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Поговорим о глобальных кэшах в Аксапте? Как правильно?
Начиная с акс2009 все разработчики стандартного функционала все чаще и чаще используют globalCache для кэширования.

Изначально кэшировался доступ к объектам AOT, к treeNode, Dict*.
Потом все больше стали кэшировать выбранные записи (вместо свойства ChacheTable=EntireTable), теперь кэшируют все подряд.

Для опреденности, напомню, что:
  • речь идет о классе SysGlobalCache.
  • в Аксапте есть 4 глобальных кэша: Infolog.globalCahce(), Appl..globalCahce(), ClassFactory..globalCahce() серверная и клиентская части
  • глобальный кэш основан на dictionary (new Map(types::string, types:class))
  • глобальный кэш содержит статическую и волатильную часть
  • что нет способа ограничить размер глобального кэша, нет механизма устаревания данных, очистки устаревших данных. есть только сброс волатильной части при помощи flush. При этом сброс вызывается только из двух мест - InventDim и Kanban

что вы думаете о глобальном кэшировании в Аксапте?
как правильно, на ваш взгляд кэшировать, а как неправильно?
что подлежит кэшированию, а что кэшировать ни в коем случае нельзя?
что можно было бы сделать к кэшем в аксапте, чтобы упростить жизнь всех разработчиков, администраторов и пользователей? чтобы снизить вероятность ошибок, связанных с кэшированием?
Миниатюры
Нажмите на изображение для увеличения
Название: ax6.PNG
Просмотров: 481
Размер:	104.5 Кб
ID:	11481  
__________________
полезное на axForum, github, vk, coub.
За это сообщение автора поблагодарили: alex55 (1), macklakov (5).