SlideShare uma empresa Scribd logo
1 de 37
Новые возможности
средств
администрирования
СУБД Caché
Андрей Щеглов
•  Документация (на англ. яз.):
•  http://docs.intersystems.com/
•  Caché Installation Guide
•  Caché System Administration Guide
•  Caché Monitoring Guide
•  Caché Security Administration Guide
•  Caché Data Integrity Guide
•  Caché High Availability Guide
Обучение
•  Статьи на русском языке
•  http://intersystems.ru/cache/devcorner/
•  http://habrahabr.ru/company/intersystems/
•  Обучающее видео
•  https://www.youtube.com/user/InterSystemsRUS
•  Обучающие курсы
•  http://intersystems.ru/education/learning-svcs.html
•  Ближайший курс по администрированию Caché начинается
в Москве 4 июня 2013 г.
Обучение
•  https://wrc.intersystems.com/
•  support@intersystems.ru
•  +7 (495) 967-00-88
Техническая поддержка (WRC)
•  Списки рассылки
•  http://www.intersystems.com/support/cflash/
•  http://www.intersystems.com/support/mailinglist.html
Администратору
•  Программа бета-тестирования
(Field Test Program)
•  https://wrc.intersystems.com/wrc/BetaPortal.csp
•  Списки рассылки
•  http://blog.intersystems.com/compatibility/
•  https://developer.intersystems.com/
Разработчику
•  Масштабируемая высокопроизводительная
СУБД
•  Традиционное реляционное представление
данных (SQL)
•  Объектное представление данных (Caché
ObjectScript)
•  Классы, объекты, поля, методы, наследование
•  Представление вида «ключ – значение» (NoSQL)
Что такое Caché?
•  Язык программирования с динамической
типизацией
•  Программа интерпретируется ядром Caché
•  Caché сочетает черты СУБД и сервера
приложений
•  Полный стек технологий
Что такое Caché ObjectScript?
•  Инструменты администратора:
•  Портал управления системой
•  System Administration
•  System Operation (Operations в 2010.2)
•  System Explorer (Data Management в 2010.2)
•  Терминал
•  Большую часть задач можно решить любым из
двух путей
Знакомство с Caché
Портал управления системой (2010.2)
Портал управления системой (2011.1+)
•  Хранятся в оперативной памяти
•  Могут быть скалярными или
многомерными (векторными)
Локальные переменные в ObjectScript
•  Именованные переменные
•  Неотъемлемая часть языка ObjectScript
•  Хранятся на диске
•  Могут быть скалярными или
многомерными (векторными)
•  Узлы глобала
Глобалы
•  Скалярная локальная переменная:
•  Цвет="синий"
•  Многомерная локальная переменная:
•  Подозреваемый(13)="Балбес"
Подозреваемый(13, "Цвет глаз")="серый"
Подозреваемый(13, "Особые приметы")="нет"
Подозреваемый(125)="Бывалый"
Подозреваемый(125, "Цвет глаз")="красный"
Подозреваемый(125, "Особые приметы")="нет"
Локальные и глобальные переменные – пример
•  Скалярный глобал:
•  ^Пол="женский"
•  Многомерный глобал:
•  ^SYS("Task","TaskI","RunAfterIndex"," ",1)=””
^SYS("Task","TaskI","RunAfterIndex"," ",2)=””
^SYS("Task","TaskI","RunAfterIndex"," ",3)=””
^SYS("Task","TaskI","RunAfterIndex"," ",4)=””
^SYS("Task","TaskI","RunAfterIndex"," ",5)=””
^SYS("Task","TaskI","RunAfterIndex"," ",6)=””
Локальные и глобальные переменные – пример
•  Многомерное (векторное) значение
•  Команда $listbuild()
•  Пример:
•  $lb(0, 1, 1, 2, 3, 5, 8, 13, 21)
•  Могут быть вложенными:
•  $lb(1, $lb(0, 1), $lb(0, $lb(1)))
•  Могут быть значением локальной или глобальной переменной:
•  ^Пол=$lb("мужской", "женский", "неопределён")
•  Скорость поиска внутри списка
Списки в ObjectScript
•  %RegisteredObject
•  %Persistent
•  Одновременно являются таблицами в реляционном
представлении
•  Экземпляры хранятся в глобалах
•  %SerialObject
•  Как и %Persistent, могут иметь поля и методы
•  Объекты могут являться частью хранимого (%Persistent)
объекта
•  %DataType
•  Примитивные типы (строка, число, дата, время)
Основные типы классов
^Sample.PersonD(1) = $lb("", "Ingleman,Alvin E.")
^Sample.PersonD(2) = $lb("", "Gallant,Liza Z.")
^Sample.PersonD(3) = $lb("", "Ingrahm,Jeff J.")
^Sample.PersonD(4) = $lb("", "Vonnegut,Barb V.")
^Sample.PersonD(5) = $lb("", "North,Laura C.")
^Sample.PersonD(6) = $lb("", "Underman,Angela E.")
Представление объектов классов – наследников
%Persistent
•  Команда “do”
•  Вызов программы:
•  do ^ИмяПрограммы(аргументы)
•  Пример:
USER>do ^%MGDIR
You're in namespace %SYS
Default directory is /opt/
intersystems/cache/2013.2.0/mgr/
%SYS>
Запуск кода на языке Caché ObjectScript
•  Команда “do”
•  Вызов метода класса:
•  do ##class(Пакет.Класс).Метод()
•  Пример:
USER>do ##class(%SYSTEM.License).ShowSummary()
Запуск кода на языке Caché ObjectScript
•  DDL-запросы:
•  Таблицы, индексы и процедуры отображаются на
поля, индексы и методы хранимых классов
•  SQL-запросы:
•  Компилируются в программы на ObjectScript
•  Буфер запросов (“SQL Cache”) хранится в глобале
^%sqlcq
•  Буфер запросов можно очистить:
•  USER>d $system.SQL.PurgeAllNamespaces()
SQL
•  Аномалии прикладного кода
•  Легко диагностируются на этапе тестирования
•  Часто легковоспроизводимы
•  Общие проблемы производительности
•  Проблемы производительности SQL
•  Аномальное поведение SQL
•  “Зависание” процесса Caché
•  Нарушение целостности БД
•  Если есть доступ к Caché, выполнить
диагностическую процедуру (^Buttons)
•  %SYS>d ^Buttons
Основные типы проблем
•  Нередко устраняются правильной настройкой
работы с памятью
•  Анализ производительности с помощью
^pButtons
•  Запуск из области %SYS:
•  USER>zn “%SYS”
•  Профиль “24hours” (каждые 10 секунд в течение
24 часов)
•  По окончании выполнить Collect^pButtons
(“<runid>”):
•  %SYS>d Collect^pButtons(12345)
Проблемы производительности
•  Неограниченное разрастание БД CACHETEMP
•  Как правило, проблема в прикладном коде
•  Диагностируется с помощью ^%GSIZE
•  Неограниченное разрастание файлов журналов
•  Как правило, вызвано чересчур длинными (несколько
часов) транзакциями
Проблемы производительности
•  Как правило, вызваны «плохим»
прикладным кодом
•  Исключение – переполнение таблицы
блокировок (параметр locksiz)
•  Диагностируются командой ^LOCKTAB
•  %SYS>d ^LOCKTAB
•  То же самое из «Портала»:
•  System Operation -> Locks
•  Любая блокировка может быть удалена:
•  SYS.Lock.DeleteAllLocks(…)
Проблемы
межпроцессного взаимодействия
•  gmheap (размер сегмента generic memory
heap в кБ)
•  Сегмент включает таблицы блокировок и
процессов
•  Максимальный размер – 4 ГБ
•  locksiz (размер таблицы блокировок)
•  Увеличить при появлении ошибок <LOCK TABLE
FULL>
Настройки работы с памятью
•  “Maximum Per-Process Memory” (в 2010.2 –
bbsiz; System Administration -> Configuration ->
System Configuration -> Memory and Startup)
•  Увеличить при появлении ошибок <STORE>
•  Размер буфера программ (Routine Cache)
•  Размер буфера БД (8 kB Database Cache)
Настройки работы с памятью
•  Индексы отсутствуют
•  Решение: задать и построить индексы
•  Выбор индекса:
•  анализ плана запроса
•  класс %SYS.Ptools.SQLStats
•  профайлер ^%SYS.MONLBL
•  Индексы в несогласованном состоянии
•  Решение: перестроить индексы
(%Persistent.BuildIndices())
•  В период перестроения индексы не согласованы с
данными, т. е. SQL-запросы могут возвращать
неверные результаты
Проблемы производительности SQL
•  Буфер SQL (SQL Cache) повреждён или
нуждается в очистке
•  Решение: очистить буфер SQL
($system.SQL.Purge() или
$system.SQL.PurgeAllNamespaces())
•  План запроса неоптимален, хотя индексы
заданы
•  Решение: воспользоваться механизмом Tune Table
(System Explorer -> SQL)
•  очистить буфер SQL
•  при необходимости повлиять на оптимизатор
вручную (SQL hints)
Проблемы производительности SQL
•  Диагностика: из операционной системы (не
из терминала Caché) выполнить сценарий
CacheHung.sh
•  Урезанный вариант ^Buttons
•  Для Windows NT: CacheHung.cmd
“Зависание” процесса Caché
•  Типы журналов:
•  транзакционные
•  Write Image Journal (WIJ)
•  Флаг Freeze On Error (для транзакционных
журналов)
•  Аварийный вход:
•  ccontrol session CACHE –B
•  процедура восстановления ^STURECOV
Проблемы запуска Caché
•  Задачи:
•  Предупреждение сбоев (отказоустойчивость)
•  Обеспечение восстановления после сбоев
Целостность данных
•  Избыточность на уровне хранилища
данных
•  Программный (mdadm) или аппаратный RAID
уровня 1, 5, 6 или 10
•  Журналируемая ФС с поддержкой контрольных
сумм
•  ext3, ext4 или xfs
•  NFS: не подходит из соображений производительности
•  ext4: максимальный размер файла до 16 ТБ,
прозрачная миграция на btrfs
•  NTFS (Windows NT): не удовлетворяет требованиям
надёжности
Отказоустойчивость
•  Кластер средствами ОС
•  2 вычислительных узла, общее хранилище
•  Red Hat High Availability Add-On
•  Можно адаптировать для SUSE Linux High
Availability Extension
•  Зеркалирование (Caché Mirroring)
•  2+ вычислительных узла, раздельное хранилище
•  Гибридный кластер
•  4 вычислительных узла, 2 хранилища
Отказоустойчивость
•  Требования к резервной копии БД
•  Проверка целостности (^INTEGRIT,
^Integrity)
•  Опасность автоматического удаления
транзакционных журналов
•  Планировщик задач (Task Manager; System
Operation -> Task Manager)
•  IntegrityCheck
•  FullDBList
•  RunLegacyTask
Восстановление из резервных копий
Вопросы?
Большое спасибо
за внимание

Mais conteúdo relacionado

Mais procurados

Производительность запросов в PostgreSQL - шаг за шагом / Илья Космодемьянски...
Производительность запросов в PostgreSQL - шаг за шагом / Илья Космодемьянски...Производительность запросов в PostgreSQL - шаг за шагом / Илья Космодемьянски...
Производительность запросов в PostgreSQL - шаг за шагом / Илья Космодемьянски...Ontico
 
Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)
Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)
Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)Ontico
 
Основы индексирования и расширенные возможности EXPLAIN в MySQL / Василий Лук...
Основы индексирования и расширенные возможности EXPLAIN в MySQL / Василий Лук...Основы индексирования и расширенные возможности EXPLAIN в MySQL / Василий Лук...
Основы индексирования и расширенные возможности EXPLAIN в MySQL / Василий Лук...Ontico
 
Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...
Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...
Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...Ontico
 
Linux API с точки зрения разработчика веб-сервера / Валентин Бартенев (NGINX,...
Linux API с точки зрения разработчика веб-сервера / Валентин Бартенев (NGINX,...Linux API с точки зрения разработчика веб-сервера / Валентин Бартенев (NGINX,...
Linux API с точки зрения разработчика веб-сервера / Валентин Бартенев (NGINX,...Ontico
 
Поиск наизнанку
Поиск наизнанкуПоиск наизнанку
Поиск наизнанкуNikolay Sivko
 
Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)
Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)
Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)Ontico
 
Функциональное тестирование высоконагруженных проектов / Илья Пастушков (2ГИС)
Функциональное тестирование высоконагруженных проектов / Илья Пастушков (2ГИС)Функциональное тестирование высоконагруженных проектов / Илья Пастушков (2ГИС)
Функциональное тестирование высоконагруженных проектов / Илья Пастушков (2ГИС)Ontico
 
Лекция 10. Apache Mahout
Лекция 10. Apache MahoutЛекция 10. Apache Mahout
Лекция 10. Apache MahoutTechnopark
 
NoSQL внутри SQL: приземленные вопросы практического применения / Дмитрий До...
NoSQL внутри SQL: приземленные вопросы практического применения /  Дмитрий До...NoSQL внутри SQL: приземленные вопросы практического применения /  Дмитрий До...
NoSQL внутри SQL: приземленные вопросы практического применения / Дмитрий До...Ontico
 
Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?Vadim Madison
 
PostgreSQL: практические примеры оптимизации SQL-запросов / Иван Фролков (Po...
PostgreSQL: практические примеры оптимизации SQL-запросов /  Иван Фролков (Po...PostgreSQL: практические примеры оптимизации SQL-запросов /  Иван Фролков (Po...
PostgreSQL: практические примеры оптимизации SQL-запросов / Иван Фролков (Po...Ontico
 
PostgreSQL Streaming Replication
PostgreSQL Streaming ReplicationPostgreSQL Streaming Replication
PostgreSQL Streaming ReplicationAlexey Lesovsky
 
Лекция 9. ZooKeeper
Лекция 9. ZooKeeperЛекция 9. ZooKeeper
Лекция 9. ZooKeeperTechnopark
 
10 способов достижения HighLoad'а и BigData на ровном месте / Илья Космодемья...
10 способов достижения HighLoad'а и BigData на ровном месте / Илья Космодемья...10 способов достижения HighLoad'а и BigData на ровном месте / Илья Космодемья...
10 способов достижения HighLoad'а и BigData на ровном месте / Илья Космодемья...Ontico
 
nginx.CHANGES.2015 / Игорь Сысоев, Валентин Бартенев (Nginx)
nginx.CHANGES.2015 / Игорь Сысоев, Валентин Бартенев (Nginx)nginx.CHANGES.2015 / Игорь Сысоев, Валентин Бартенев (Nginx)
nginx.CHANGES.2015 / Игорь Сысоев, Валентин Бартенев (Nginx)Ontico
 
Dennis Anikin - Tarantool Case Studies in Mail.Ru Group
Dennis Anikin - Tarantool Case Studies in Mail.Ru GroupDennis Anikin - Tarantool Case Studies in Mail.Ru Group
Dennis Anikin - Tarantool Case Studies in Mail.Ru GroupMail.ru Group
 
Caching data outside Java Heap and using Shared Memory in Java
Caching data outside Java Heap and using Shared Memory in JavaCaching data outside Java Heap and using Shared Memory in Java
Caching data outside Java Heap and using Shared Memory in JavaAndrei Pangin
 
Промышленный подход к тюнингу PostgreSQL: эксперименты над базами данных
Промышленный подход к тюнингу PostgreSQL: эксперименты над базами данныхПромышленный подход к тюнингу PostgreSQL: эксперименты над базами данных
Промышленный подход к тюнингу PostgreSQL: эксперименты над базами данныхNikolay Samokhvalov
 

Mais procurados (20)

Производительность запросов в PostgreSQL - шаг за шагом / Илья Космодемьянски...
Производительность запросов в PostgreSQL - шаг за шагом / Илья Космодемьянски...Производительность запросов в PostgreSQL - шаг за шагом / Илья Космодемьянски...
Производительность запросов в PostgreSQL - шаг за шагом / Илья Космодемьянски...
 
Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)
Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)
Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)
 
Основы индексирования и расширенные возможности EXPLAIN в MySQL / Василий Лук...
Основы индексирования и расширенные возможности EXPLAIN в MySQL / Василий Лук...Основы индексирования и расширенные возможности EXPLAIN в MySQL / Василий Лук...
Основы индексирования и расширенные возможности EXPLAIN в MySQL / Василий Лук...
 
Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...
Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...
Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...
 
Linux API с точки зрения разработчика веб-сервера / Валентин Бартенев (NGINX,...
Linux API с точки зрения разработчика веб-сервера / Валентин Бартенев (NGINX,...Linux API с точки зрения разработчика веб-сервера / Валентин Бартенев (NGINX,...
Linux API с точки зрения разработчика веб-сервера / Валентин Бартенев (NGINX,...
 
Поиск наизнанку
Поиск наизнанкуПоиск наизнанку
Поиск наизнанку
 
2014-11-01 03 Николай Линкер. Open your clojure
2014-11-01 03 Николай Линкер. Open your clojure2014-11-01 03 Николай Линкер. Open your clojure
2014-11-01 03 Николай Линкер. Open your clojure
 
Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)
Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)
Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)
 
Функциональное тестирование высоконагруженных проектов / Илья Пастушков (2ГИС)
Функциональное тестирование высоконагруженных проектов / Илья Пастушков (2ГИС)Функциональное тестирование высоконагруженных проектов / Илья Пастушков (2ГИС)
Функциональное тестирование высоконагруженных проектов / Илья Пастушков (2ГИС)
 
Лекция 10. Apache Mahout
Лекция 10. Apache MahoutЛекция 10. Apache Mahout
Лекция 10. Apache Mahout
 
NoSQL внутри SQL: приземленные вопросы практического применения / Дмитрий До...
NoSQL внутри SQL: приземленные вопросы практического применения /  Дмитрий До...NoSQL внутри SQL: приземленные вопросы практического применения /  Дмитрий До...
NoSQL внутри SQL: приземленные вопросы практического применения / Дмитрий До...
 
Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?
 
PostgreSQL: практические примеры оптимизации SQL-запросов / Иван Фролков (Po...
PostgreSQL: практические примеры оптимизации SQL-запросов /  Иван Фролков (Po...PostgreSQL: практические примеры оптимизации SQL-запросов /  Иван Фролков (Po...
PostgreSQL: практические примеры оптимизации SQL-запросов / Иван Фролков (Po...
 
PostgreSQL Streaming Replication
PostgreSQL Streaming ReplicationPostgreSQL Streaming Replication
PostgreSQL Streaming Replication
 
Лекция 9. ZooKeeper
Лекция 9. ZooKeeperЛекция 9. ZooKeeper
Лекция 9. ZooKeeper
 
10 способов достижения HighLoad'а и BigData на ровном месте / Илья Космодемья...
10 способов достижения HighLoad'а и BigData на ровном месте / Илья Космодемья...10 способов достижения HighLoad'а и BigData на ровном месте / Илья Космодемья...
10 способов достижения HighLoad'а и BigData на ровном месте / Илья Космодемья...
 
nginx.CHANGES.2015 / Игорь Сысоев, Валентин Бартенев (Nginx)
nginx.CHANGES.2015 / Игорь Сысоев, Валентин Бартенев (Nginx)nginx.CHANGES.2015 / Игорь Сысоев, Валентин Бартенев (Nginx)
nginx.CHANGES.2015 / Игорь Сысоев, Валентин Бартенев (Nginx)
 
Dennis Anikin - Tarantool Case Studies in Mail.Ru Group
Dennis Anikin - Tarantool Case Studies in Mail.Ru GroupDennis Anikin - Tarantool Case Studies in Mail.Ru Group
Dennis Anikin - Tarantool Case Studies in Mail.Ru Group
 
Caching data outside Java Heap and using Shared Memory in Java
Caching data outside Java Heap and using Shared Memory in JavaCaching data outside Java Heap and using Shared Memory in Java
Caching data outside Java Heap and using Shared Memory in Java
 
Промышленный подход к тюнингу PostgreSQL: эксперименты над базами данных
Промышленный подход к тюнингу PostgreSQL: эксперименты над базами данныхПромышленный подход к тюнингу PostgreSQL: эксперименты над базами данных
Промышленный подход к тюнингу PostgreSQL: эксперименты над базами данных
 

Destaque

Intersystems technology for healthcare
Intersystems technology for healthcareIntersystems technology for healthcare
Intersystems technology for healthcareDenis Pavlov
 
АИС "Дом-интернат"
АИС "Дом-интернат"АИС "Дом-интернат"
АИС "Дом-интернат"sparmcom
 
основные подходы к информатизации здравоохранения на региональном уровне на ...
 основные подходы к информатизации здравоохранения на региональном уровне на ... основные подходы к информатизации здравоохранения на региональном уровне на ...
основные подходы к информатизации здравоохранения на региональном уровне на ...Denis Pavlov
 
ИКТ в здравоохранении: новые цели в новых условиях
ИКТ в здравоохранении: новые цели в новых условияхИКТ в здравоохранении: новые цели в новых условиях
ИКТ в здравоохранении: новые цели в новых условияхDenis Pavlov
 
лис InterSystems Trakcare lab v2
лис InterSystems Trakcare lab v2лис InterSystems Trakcare lab v2
лис InterSystems Trakcare lab v2Denis Pavlov
 
лаборатория
лабораториялаборатория
лабораторияpenz_tcrb
 

Destaque (9)

Intersystems technology for healthcare
Intersystems technology for healthcareIntersystems technology for healthcare
Intersystems technology for healthcare
 
АИС "Дом-интернат"
АИС "Дом-интернат"АИС "Дом-интернат"
АИС "Дом-интернат"
 
ЛИС qMS
ЛИС qMSЛИС qMS
ЛИС qMS
 
Лаборатория Инвиво
Лаборатория ИнвивоЛаборатория Инвиво
Лаборатория Инвиво
 
основные подходы к информатизации здравоохранения на региональном уровне на ...
 основные подходы к информатизации здравоохранения на региональном уровне на ... основные подходы к информатизации здравоохранения на региональном уровне на ...
основные подходы к информатизации здравоохранения на региональном уровне на ...
 
qLIS
qLISqLIS
qLIS
 
ИКТ в здравоохранении: новые цели в новых условиях
ИКТ в здравоохранении: новые цели в новых условияхИКТ в здравоохранении: новые цели в новых условиях
ИКТ в здравоохранении: новые цели в новых условиях
 
лис InterSystems Trakcare lab v2
лис InterSystems Trakcare lab v2лис InterSystems Trakcare lab v2
лис InterSystems Trakcare lab v2
 
лаборатория
лабораториялаборатория
лаборатория
 

Semelhante a Cache2012 administrationbasics

Система обработки бизнес-логики server-side приложения на Groovy
Система обработки бизнес-логики server-side приложения на GroovyСистема обработки бизнес-логики server-side приложения на Groovy
Система обработки бизнес-логики server-side приложения на GroovyRegn
 
PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)
PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)
PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)Ontico
 
«DevOps — это о передаче смысла» — Александр Титов, Express 42
«DevOps — это о передаче смысла» — Александр Титов, Express 42«DevOps — это о передаче смысла» — Александр Титов, Express 42
«DevOps — это о передаче смысла» — Александр Титов, Express 42DevDay
 
DevOps или исскуство ухода за Интернет-проектом
DevOps или исскуство ухода за Интернет-проектомDevOps или исскуство ухода за Интернет-проектом
DevOps или исскуство ухода за Интернет-проектомAlexander Titov
 
2014.12.23 Александр Андреев, Parallels
2014.12.23 Александр Андреев, Parallels2014.12.23 Александр Андреев, Parallels
2014.12.23 Александр Андреев, ParallelsNikolay Samokhvalov
 
HSE{Consult}: DevOps – новая методология разработки
HSE{Consult}: DevOps – новая методология разработкиHSE{Consult}: DevOps – новая методология разработки
HSE{Consult}: DevOps – новая методология разработкиBusiness incubator HSE
 
PostgreSQL performance recipes
PostgreSQL performance recipesPostgreSQL performance recipes
PostgreSQL performance recipesAlexey Ermakov
 
ZFConf 2012: Кеш без промахов средствами Zend Framework 2 (Евгений Шпилевский)
ZFConf 2012: Кеш без промахов средствами Zend Framework 2 (Евгений Шпилевский)ZFConf 2012: Кеш без промахов средствами Zend Framework 2 (Евгений Шпилевский)
ZFConf 2012: Кеш без промахов средствами Zend Framework 2 (Евгений Шпилевский)ZFConf Conference
 
Java 9: what is there beyond modularization
Java 9: what is there beyond modularizationJava 9: what is there beyond modularization
Java 9: what is there beyond modularizationIvan Krylov
 
Developing highload servers with Java
Developing highload servers with JavaDeveloping highload servers with Java
Developing highload servers with JavaAndrei Pangin
 
Формальная верификация кода на языке Си
Формальная верификация кода на языке СиФормальная верификация кода на языке Си
Формальная верификация кода на языке СиPositive Development User Group
 
Formal verification of C code
Formal verification of C codeFormal verification of C code
Formal verification of C codeDenis Efremov
 
Формальная верификация кода на языке Си
Формальная верификация кода на языке СиФормальная верификация кода на языке Си
Формальная верификация кода на языке СиPositive Hack Days
 
Приемы Сontinuous Integration при разработке приложений на Caché
Приемы Сontinuous Integration при разработке приложений на CachéПриемы Сontinuous Integration при разработке приложений на Caché
Приемы Сontinuous Integration при разработке приложений на CachéInterSystems CEE
 
Caché github continuous intergration
Caché github continuous intergrationCaché github continuous intergration
Caché github continuous intergrationInterSystems
 
Easy authcache 2 кеширование для pro родионов игорь
Easy authcache 2   кеширование для pro родионов игорьEasy authcache 2   кеширование для pro родионов игорь
Easy authcache 2 кеширование для pro родионов игорьdrupalconf
 
Нагрузочное тестирование с помощью Яндекс.Танка
Нагрузочное тестирование с помощью Яндекс.ТанкаНагрузочное тестирование с помощью Яндекс.Танка
Нагрузочное тестирование с помощью Яндекс.ТанкаAleksandr Boichenko
 
Easy authcache 2 кэширование для pro. Родионов Игорь
Easy authcache 2   кэширование для pro. Родионов ИгорьEasy authcache 2   кэширование для pro. Родионов Игорь
Easy authcache 2 кэширование для pro. Родионов ИгорьPVasili
 

Semelhante a Cache2012 administrationbasics (20)

Система обработки бизнес-логики server-side приложения на Groovy
Система обработки бизнес-логики server-side приложения на GroovyСистема обработки бизнес-логики server-side приложения на Groovy
Система обработки бизнес-логики server-side приложения на Groovy
 
PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)
PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)
PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)
 
«DevOps — это о передаче смысла» — Александр Титов, Express 42
«DevOps — это о передаче смысла» — Александр Титов, Express 42«DevOps — это о передаче смысла» — Александр Титов, Express 42
«DevOps — это о передаче смысла» — Александр Титов, Express 42
 
PowerShell
PowerShellPowerShell
PowerShell
 
DevOps или исскуство ухода за Интернет-проектом
DevOps или исскуство ухода за Интернет-проектомDevOps или исскуство ухода за Интернет-проектом
DevOps или исскуство ухода за Интернет-проектом
 
2014.12.23 Александр Андреев, Parallels
2014.12.23 Александр Андреев, Parallels2014.12.23 Александр Андреев, Parallels
2014.12.23 Александр Андреев, Parallels
 
HSE{Consult}: DevOps – новая методология разработки
HSE{Consult}: DevOps – новая методология разработкиHSE{Consult}: DevOps – новая методология разработки
HSE{Consult}: DevOps – новая методология разработки
 
PostgreSQL performance recipes
PostgreSQL performance recipesPostgreSQL performance recipes
PostgreSQL performance recipes
 
ZFConf 2012: Кеш без промахов средствами Zend Framework 2 (Евгений Шпилевский)
ZFConf 2012: Кеш без промахов средствами Zend Framework 2 (Евгений Шпилевский)ZFConf 2012: Кеш без промахов средствами Zend Framework 2 (Евгений Шпилевский)
ZFConf 2012: Кеш без промахов средствами Zend Framework 2 (Евгений Шпилевский)
 
Java 9: what is there beyond modularization
Java 9: what is there beyond modularizationJava 9: what is there beyond modularization
Java 9: what is there beyond modularization
 
Developing highload servers with Java
Developing highload servers with JavaDeveloping highload servers with Java
Developing highload servers with Java
 
Формальная верификация кода на языке Си
Формальная верификация кода на языке СиФормальная верификация кода на языке Си
Формальная верификация кода на языке Си
 
Formal verification of C code
Formal verification of C codeFormal verification of C code
Formal verification of C code
 
Формальная верификация кода на языке Си
Формальная верификация кода на языке СиФормальная верификация кода на языке Си
Формальная верификация кода на языке Си
 
Парсим CSS
Парсим CSSПарсим CSS
Парсим CSS
 
Приемы Сontinuous Integration при разработке приложений на Caché
Приемы Сontinuous Integration при разработке приложений на CachéПриемы Сontinuous Integration при разработке приложений на Caché
Приемы Сontinuous Integration при разработке приложений на Caché
 
Caché github continuous intergration
Caché github continuous intergrationCaché github continuous intergration
Caché github continuous intergration
 
Easy authcache 2 кеширование для pro родионов игорь
Easy authcache 2   кеширование для pro родионов игорьEasy authcache 2   кеширование для pro родионов игорь
Easy authcache 2 кеширование для pro родионов игорь
 
Нагрузочное тестирование с помощью Яндекс.Танка
Нагрузочное тестирование с помощью Яндекс.ТанкаНагрузочное тестирование с помощью Яндекс.Танка
Нагрузочное тестирование с помощью Яндекс.Танка
 
Easy authcache 2 кэширование для pro. Родионов Игорь
Easy authcache 2   кэширование для pro. Родионов ИгорьEasy authcache 2   кэширование для pro. Родионов Игорь
Easy authcache 2 кэширование для pro. Родионов Игорь
 

Mais de Denis Pavlov

опыт выполнения интеграционного проекта на Inter systems ensemble в министер...
 опыт выполнения интеграционного проекта на Inter systems ensemble в министер... опыт выполнения интеграционного проекта на Inter systems ensemble в министер...
опыт выполнения интеграционного проекта на Inter systems ensemble в министер...Denis Pavlov
 
Nk russia symposium 2012 corp overview
Nk russia symposium 2012 corp overviewNk russia symposium 2012 corp overview
Nk russia symposium 2012 corp overviewDenis Pavlov
 
Simposium bi 2012 1109
Simposium bi 2012 1109Simposium bi 2012 1109
Simposium bi 2012 1109Denis Pavlov
 
Health share абрамов
Health share абрамовHealth share абрамов
Health share абрамовDenis Pavlov
 
симпозиум 2012. опыт выполнения проектов по созданию электронного правительст...
симпозиум 2012. опыт выполнения проектов по созданию электронного правительст...симпозиум 2012. опыт выполнения проектов по созданию электронного правительст...
симпозиум 2012. опыт выполнения проектов по созданию электронного правительст...Denis Pavlov
 
Russia symposium 2012 corp overview draft 2
Russia symposium 2012 corp overview draft 2Russia symposium 2012 corp overview draft 2
Russia symposium 2012 corp overview draft 2Denis Pavlov
 
подходы к проектрованию, разработке и развертыванию больших систем
подходы к проектрованию, разработке и развертыванию больших системподходы к проектрованию, разработке и развертыванию больших систем
подходы к проектрованию, разработке и развертыванию больших системDenis Pavlov
 

Mais de Denis Pavlov (8)

опыт выполнения интеграционного проекта на Inter systems ensemble в министер...
 опыт выполнения интеграционного проекта на Inter systems ensemble в министер... опыт выполнения интеграционного проекта на Inter systems ensemble в министер...
опыт выполнения интеграционного проекта на Inter systems ensemble в министер...
 
Nk russia symposium 2012 corp overview
Nk russia symposium 2012 corp overviewNk russia symposium 2012 corp overview
Nk russia symposium 2012 corp overview
 
Simposium bi 2012 1109
Simposium bi 2012 1109Simposium bi 2012 1109
Simposium bi 2012 1109
 
Health share абрамов
Health share абрамовHealth share абрамов
Health share абрамов
 
симпозиум 2012. опыт выполнения проектов по созданию электронного правительст...
симпозиум 2012. опыт выполнения проектов по созданию электронного правительст...симпозиум 2012. опыт выполнения проектов по созданию электронного правительст...
симпозиум 2012. опыт выполнения проектов по созданию электронного правительст...
 
Russia symposium 2012 corp overview draft 2
Russia symposium 2012 corp overview draft 2Russia symposium 2012 corp overview draft 2
Russia symposium 2012 corp overview draft 2
 
Ad cloud
Ad cloudAd cloud
Ad cloud
 
подходы к проектрованию, разработке и развертыванию больших систем
подходы к проектрованию, разработке и развертыванию больших системподходы к проектрованию, разработке и развертыванию больших систем
подходы к проектрованию, разработке и развертыванию больших систем
 

Cache2012 administrationbasics

  • 2. •  Документация (на англ. яз.): •  http://docs.intersystems.com/ •  Caché Installation Guide •  Caché System Administration Guide •  Caché Monitoring Guide •  Caché Security Administration Guide •  Caché Data Integrity Guide •  Caché High Availability Guide Обучение
  • 3. •  Статьи на русском языке •  http://intersystems.ru/cache/devcorner/ •  http://habrahabr.ru/company/intersystems/ •  Обучающее видео •  https://www.youtube.com/user/InterSystemsRUS •  Обучающие курсы •  http://intersystems.ru/education/learning-svcs.html •  Ближайший курс по администрированию Caché начинается в Москве 4 июня 2013 г. Обучение
  • 4. •  https://wrc.intersystems.com/ •  support@intersystems.ru •  +7 (495) 967-00-88 Техническая поддержка (WRC)
  • 5. •  Списки рассылки •  http://www.intersystems.com/support/cflash/ •  http://www.intersystems.com/support/mailinglist.html Администратору
  • 6. •  Программа бета-тестирования (Field Test Program) •  https://wrc.intersystems.com/wrc/BetaPortal.csp •  Списки рассылки •  http://blog.intersystems.com/compatibility/ •  https://developer.intersystems.com/ Разработчику
  • 7. •  Масштабируемая высокопроизводительная СУБД •  Традиционное реляционное представление данных (SQL) •  Объектное представление данных (Caché ObjectScript) •  Классы, объекты, поля, методы, наследование •  Представление вида «ключ – значение» (NoSQL) Что такое Caché?
  • 8. •  Язык программирования с динамической типизацией •  Программа интерпретируется ядром Caché •  Caché сочетает черты СУБД и сервера приложений •  Полный стек технологий Что такое Caché ObjectScript?
  • 9. •  Инструменты администратора: •  Портал управления системой •  System Administration •  System Operation (Operations в 2010.2) •  System Explorer (Data Management в 2010.2) •  Терминал •  Большую часть задач можно решить любым из двух путей Знакомство с Caché
  • 12. •  Хранятся в оперативной памяти •  Могут быть скалярными или многомерными (векторными) Локальные переменные в ObjectScript
  • 13. •  Именованные переменные •  Неотъемлемая часть языка ObjectScript •  Хранятся на диске •  Могут быть скалярными или многомерными (векторными) •  Узлы глобала Глобалы
  • 14. •  Скалярная локальная переменная: •  Цвет="синий" •  Многомерная локальная переменная: •  Подозреваемый(13)="Балбес" Подозреваемый(13, "Цвет глаз")="серый" Подозреваемый(13, "Особые приметы")="нет" Подозреваемый(125)="Бывалый" Подозреваемый(125, "Цвет глаз")="красный" Подозреваемый(125, "Особые приметы")="нет" Локальные и глобальные переменные – пример
  • 15. •  Скалярный глобал: •  ^Пол="женский" •  Многомерный глобал: •  ^SYS("Task","TaskI","RunAfterIndex"," ",1)=”” ^SYS("Task","TaskI","RunAfterIndex"," ",2)=”” ^SYS("Task","TaskI","RunAfterIndex"," ",3)=”” ^SYS("Task","TaskI","RunAfterIndex"," ",4)=”” ^SYS("Task","TaskI","RunAfterIndex"," ",5)=”” ^SYS("Task","TaskI","RunAfterIndex"," ",6)=”” Локальные и глобальные переменные – пример
  • 16. •  Многомерное (векторное) значение •  Команда $listbuild() •  Пример: •  $lb(0, 1, 1, 2, 3, 5, 8, 13, 21) •  Могут быть вложенными: •  $lb(1, $lb(0, 1), $lb(0, $lb(1))) •  Могут быть значением локальной или глобальной переменной: •  ^Пол=$lb("мужской", "женский", "неопределён") •  Скорость поиска внутри списка Списки в ObjectScript
  • 17. •  %RegisteredObject •  %Persistent •  Одновременно являются таблицами в реляционном представлении •  Экземпляры хранятся в глобалах •  %SerialObject •  Как и %Persistent, могут иметь поля и методы •  Объекты могут являться частью хранимого (%Persistent) объекта •  %DataType •  Примитивные типы (строка, число, дата, время) Основные типы классов
  • 18. ^Sample.PersonD(1) = $lb("", "Ingleman,Alvin E.") ^Sample.PersonD(2) = $lb("", "Gallant,Liza Z.") ^Sample.PersonD(3) = $lb("", "Ingrahm,Jeff J.") ^Sample.PersonD(4) = $lb("", "Vonnegut,Barb V.") ^Sample.PersonD(5) = $lb("", "North,Laura C.") ^Sample.PersonD(6) = $lb("", "Underman,Angela E.") Представление объектов классов – наследников %Persistent
  • 19. •  Команда “do” •  Вызов программы: •  do ^ИмяПрограммы(аргументы) •  Пример: USER>do ^%MGDIR You're in namespace %SYS Default directory is /opt/ intersystems/cache/2013.2.0/mgr/ %SYS> Запуск кода на языке Caché ObjectScript
  • 20. •  Команда “do” •  Вызов метода класса: •  do ##class(Пакет.Класс).Метод() •  Пример: USER>do ##class(%SYSTEM.License).ShowSummary() Запуск кода на языке Caché ObjectScript
  • 21. •  DDL-запросы: •  Таблицы, индексы и процедуры отображаются на поля, индексы и методы хранимых классов •  SQL-запросы: •  Компилируются в программы на ObjectScript •  Буфер запросов (“SQL Cache”) хранится в глобале ^%sqlcq •  Буфер запросов можно очистить: •  USER>d $system.SQL.PurgeAllNamespaces() SQL
  • 22. •  Аномалии прикладного кода •  Легко диагностируются на этапе тестирования •  Часто легковоспроизводимы •  Общие проблемы производительности •  Проблемы производительности SQL •  Аномальное поведение SQL •  “Зависание” процесса Caché •  Нарушение целостности БД •  Если есть доступ к Caché, выполнить диагностическую процедуру (^Buttons) •  %SYS>d ^Buttons Основные типы проблем
  • 23. •  Нередко устраняются правильной настройкой работы с памятью •  Анализ производительности с помощью ^pButtons •  Запуск из области %SYS: •  USER>zn “%SYS” •  Профиль “24hours” (каждые 10 секунд в течение 24 часов) •  По окончании выполнить Collect^pButtons (“<runid>”): •  %SYS>d Collect^pButtons(12345) Проблемы производительности
  • 24. •  Неограниченное разрастание БД CACHETEMP •  Как правило, проблема в прикладном коде •  Диагностируется с помощью ^%GSIZE •  Неограниченное разрастание файлов журналов •  Как правило, вызвано чересчур длинными (несколько часов) транзакциями Проблемы производительности
  • 25. •  Как правило, вызваны «плохим» прикладным кодом •  Исключение – переполнение таблицы блокировок (параметр locksiz) •  Диагностируются командой ^LOCKTAB •  %SYS>d ^LOCKTAB •  То же самое из «Портала»: •  System Operation -> Locks •  Любая блокировка может быть удалена: •  SYS.Lock.DeleteAllLocks(…) Проблемы межпроцессного взаимодействия
  • 26. •  gmheap (размер сегмента generic memory heap в кБ) •  Сегмент включает таблицы блокировок и процессов •  Максимальный размер – 4 ГБ •  locksiz (размер таблицы блокировок) •  Увеличить при появлении ошибок <LOCK TABLE FULL> Настройки работы с памятью
  • 27. •  “Maximum Per-Process Memory” (в 2010.2 – bbsiz; System Administration -> Configuration -> System Configuration -> Memory and Startup) •  Увеличить при появлении ошибок <STORE> •  Размер буфера программ (Routine Cache) •  Размер буфера БД (8 kB Database Cache) Настройки работы с памятью
  • 28. •  Индексы отсутствуют •  Решение: задать и построить индексы •  Выбор индекса: •  анализ плана запроса •  класс %SYS.Ptools.SQLStats •  профайлер ^%SYS.MONLBL •  Индексы в несогласованном состоянии •  Решение: перестроить индексы (%Persistent.BuildIndices()) •  В период перестроения индексы не согласованы с данными, т. е. SQL-запросы могут возвращать неверные результаты Проблемы производительности SQL
  • 29. •  Буфер SQL (SQL Cache) повреждён или нуждается в очистке •  Решение: очистить буфер SQL ($system.SQL.Purge() или $system.SQL.PurgeAllNamespaces()) •  План запроса неоптимален, хотя индексы заданы •  Решение: воспользоваться механизмом Tune Table (System Explorer -> SQL) •  очистить буфер SQL •  при необходимости повлиять на оптимизатор вручную (SQL hints) Проблемы производительности SQL
  • 30. •  Диагностика: из операционной системы (не из терминала Caché) выполнить сценарий CacheHung.sh •  Урезанный вариант ^Buttons •  Для Windows NT: CacheHung.cmd “Зависание” процесса Caché
  • 31. •  Типы журналов: •  транзакционные •  Write Image Journal (WIJ) •  Флаг Freeze On Error (для транзакционных журналов) •  Аварийный вход: •  ccontrol session CACHE –B •  процедура восстановления ^STURECOV Проблемы запуска Caché
  • 32. •  Задачи: •  Предупреждение сбоев (отказоустойчивость) •  Обеспечение восстановления после сбоев Целостность данных
  • 33. •  Избыточность на уровне хранилища данных •  Программный (mdadm) или аппаратный RAID уровня 1, 5, 6 или 10 •  Журналируемая ФС с поддержкой контрольных сумм •  ext3, ext4 или xfs •  NFS: не подходит из соображений производительности •  ext4: максимальный размер файла до 16 ТБ, прозрачная миграция на btrfs •  NTFS (Windows NT): не удовлетворяет требованиям надёжности Отказоустойчивость
  • 34. •  Кластер средствами ОС •  2 вычислительных узла, общее хранилище •  Red Hat High Availability Add-On •  Можно адаптировать для SUSE Linux High Availability Extension •  Зеркалирование (Caché Mirroring) •  2+ вычислительных узла, раздельное хранилище •  Гибридный кластер •  4 вычислительных узла, 2 хранилища Отказоустойчивость
  • 35. •  Требования к резервной копии БД •  Проверка целостности (^INTEGRIT, ^Integrity) •  Опасность автоматического удаления транзакционных журналов •  Планировщик задач (Task Manager; System Operation -> Task Manager) •  IntegrityCheck •  FullDBList •  RunLegacyTask Восстановление из резервных копий