Показать сообщение отдельно
Старый 10.10.2007, 13:44   #8  
MikeR is offline
MikeR
MCT
Аватар для MikeR
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
 
1,628 / 627 (24) +++++++
Регистрация: 28.11.2005
Адрес: просто землянин
Цитата:
Сообщение от Logger Посмотреть сообщение
Интересно вообще понять как реализовать кеширование, а не только для данного случая.
В случае DAX я читал про это:
Среда исполнения Dynamics AX создает и использует кэш и на клиенте и на сервере. Кэш client-side локален для rich client, а server-side кэш разделяется между всеми соединениями к серверу, включая соединения от rich clients, Web clients, Business Connector, или других соединений.
Кэш использует зависимость уровня (клиент или сервер), на каком ведется поиск. Если поиск ведется на сервере, то используется server-side кеш. Если поиск выполняется с уровня клиента, то клиент сначала просматривает client-side кеш; если ничего не найдено, предпринимается поиск в server-side кэш. Если запись все еще не найдена, то выполняется поиск в базе данных. Когда база данных возвращает record на сервер и на клиента, то record вставляется и в server-side кэш и в client-side кешь.
Кэш реализован с помощью AVL дерева (которое является балансированным binary деревом), но дереву не позволено расти неопределенно. Сlient-side кэш может содержать maximum 100 записей для одной таблицы в компании, а расделенный server-side кеш может содержать maximum 2,000 записей. Когда новая запись вставляется в кэш и достигается максимум, среда исполнения удаляет приблизительно от 5 до 7 процентов старых записей, сканированием целого дерева.