Кэширование данных

Так как частота изменений или константность данных в SQL словаре известна на основе длительного опыта эксплуатации в рамках нескольких прикладных проектов, то мы можем существенно оптимизировать работу слоя доступа к данных. Под оптимизацией подразумевается не только ускорение доступа к элементам словаря, но и уменьшение нагрузки на СУБД.

Оптимизация происходит с помощью кэширования объектов некоторых классов на уровне слоя доступа. Другими словами, C++ код, обслуживающий запросы на загрузку из базы данных, в некоторых случаях запоминает запрошенные объекты в своих списках - в кэше. Повторный запрос на загрузку тех же объектов выполняется уже без обращения к БД.

При этом СУБД продолжает кэшировать данные на своем уровне. Можно предположить, что уменьшение запросов на загрузку закэшированных объектов немного улучшает работу кэша СУБД, так как часто используемые страницы данных с содержимым индексов и таблиц не выгружаются для обработки запросов на загрузку некоторых объектов.

Особенности работы кэша слоя доступа:

1. Идентификация объектов осуществляется на основе первичного ключа.

2. Объекты в кэше не синхронизируются с базой данных. Поэтому в случае изменения в БД закэшированных данных необходимо перезапустить клиентское приложение. При проектировании слоя доступа была идея ввести специальную процедуру - сброс кэшей, но пока решено не вводить её, так как необходимость в такой операции будет очень редкой. В аналогичном механизме поисковой системы при работе с описаниями индексных баз движок постоянно отслеживает метки последней модификации данных в БД, и при необходимости "на ходу" подгружает изменившиеся данные. Поэтому поисковая система допускает в принципе одновременную работу двух движков на одном компьютере - они будут корректно синхронизироваться через базу данных каталогизатора.

3. В кэше нет механизмов устаревания объектов. Все, что попало туда однажды, находится в кэше до окончания работы прикладной программы.

4. Кэш многопоточный, с блокировками потоков по классам объектов.

5. Кэшируются следующие объекты: языки, части речи, грамматические атрибуты, словарные статьи.

6. Вообще не кэшируются следующие объекты: фразы и их компоненты; связи, их теги и флаги; N-грамы.

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

Дополнительные материалы

Дистрибутив SQL словаря

SQL словарь

Первичные ключи

Генерация первичных ключей

Экспорт словаря из бинарного формата в SQL

Редактор Словаря SQLex

Экспорт словаря из SQL БД в текстовый формат

ORM Persistent Dictionary Library

  © Elijah Koziev 2010
прикладные проекты на основе грамматического словаря API грамматической машины компоненты для доступа к грамматическому словарю условия получения SDK токенизатор и сегментатор морфологический анализ и синтез лемматизатор база N-грамм синтаксический анализатор словоформы морфология и синтаксис русского языка падеж число род совершенный и несовершенный вид экспорт в SQL формат экспорт в XML формат скрипт SQL словаря структура SQL словаря структура XML словаря компоненты для доступа к грамматическому словарю ORM Persistent Dictionary Library лемматизация стемминг примеры использования грамматического словаря склонение существительных в русском языке склонение русских прилагательных спряжение глаголов в русском языке поиск текста с учетом морфологии OCR подсистема расширенные регулярные выражения генератор текста генератор случайного текста и имитатор рандомизатор синонимизатор перефразировщик Статистика буквенных паттернов

Грамматический словарь русского языка



Грамматический словарь
склонение и спряжение глаголов, существительных, прилагательных

В состав входит русский и английский словарь.

платформа:  Windows 2000 ... Windows 7
требования: 512 Mb свободной памяти, 300 Мб на диске
размер:         34 Мб

  скачать грамматический словарь купить грамматический словарь SDK грамматического словаря
грамматический словарь русского языка



SDK Грамматического словаря



SDK Грамматического Словаря
склонение и спряжение глаголов, существительных, прилагательных

В состав входит русский и английский словарь.

платформа:  Windows 2000 ... Windows 7
размер:         13 Мб

SQL словарь (демо):
sqlite mysql oracle firebird mssql

скачать демо-версию SDK купить SDK API грамматического словаря



Поисковая система



Integra
настольная и сетевая поисковая система 

платформа:  Windows XP ... Windows 7
требования: 512 Mb свободной памяти
размер:         21 Мб

Дополнительные компоненты:
MySQL поисковый сервер 13.5 Мб
Integra.Premium MySQL 3.9 Мб

скачать поисковую систему SDK поисковой системыописание поисковой системы



SDK Поисковой системы



SDK Поискового движка
API для настольной и сетевой поисковая система 

платформа:  Windows XP ... Windows 7
размер:         17 Мб

Дополнительные компоненты:

MySQL поисковый сервер 13.5 Мб
Integra.Premium MySQL 3.9 Мб

скачать SDK SDK поисковой системы



Экранный переводчик



Translator
экранный переводчик

платформа:  Windows XP ... Windows 7
требования: 256 Mb свободной памяти
размер:         4.4 Мб

Дополнительные компоненты:
расширенный англо-русский словарь 6.4 Мб


скачать экранный переводчикописание экранного переводчика



изменено 05-Feb-12