Мастер класс: Хайлоадблоки - использование, NoSQL Александр Сербул Руководитель направления контроля качества интеграции и внедрений 1С-Битрикс.

Презентация:



Advertisements
Похожие презентации
ACID требования, CAP- теорема, BASE архитектура. 3. ACID требования, CAP- теорема, BASE архитектура 2.
Advertisements

Докладчик – Альперин Борис NOT ONLY SQL NOSQL 1. Различные модели представления информации: иерархическая, сетевая, реляционная, объектная, … Реляционная.
BigData изнутри: технологии и алгоритмы Александр Сербул руководитель направления, разработчик Партнерская конференция «1С-Битрикс»
Интернет-магазины, высокие нагрузки, синхронизации бизнес- приложений с веб-системой Александр Сербул Руководитель направления контроля качества интеграции.
Вадим Думбравану руководитель проектов D7. ORM. Object-relational mapping Недостатки текущего похода в API На каждую сущность программируется свой GetList,
Архитектура «D7»: модули, классы, жизненный цикл Кирсанов Алексей Ведущий разработчик 1C-Битрикс.
Павел Светличный Senior iOS Developer Svitla Systems Киев, Построение кластера на базе Apache CouchDB.
Всеволод Дёмкин Новые нереляционные системы хранения данных.
App Engine Cloud Computing платформа от Google Петр Чардин, Михаил Дайчик Апрель 2009.
Лекция 25 Лекция 25 Понятие целостности базы данных. Условия целостности. Транзакции. Обработка транзакций. Свойства транзакций. Модель ANSI/ISO. Назначение.
Построение системного ландшафта для высоко нагруженного проекта ООО «Ленвендо-Софт» Гаврилов Виталий Технический директор тел.: +7 (812)
Учебный курс Технологии и средства разработки корпоративных систем Лекция 1 Открытые системы. Клиент и сервер Лекции читает кандидат технических наук,
Платформа разработки высоконагруженного веб-сервиса: инструменты отладки и возможности масштабирования Александр Демидов руководитель направления арендных.
Создание тест-плана jmeter – от расчета цепочек до нагрузочного кластера на 5-10 млн. хитов Сербул Александр Руководитель направления контроля качества.
Администрирование информационных систем Лекция 4. Система управления базами данных.
Веб-кластер 1С-Битрикс – примеры работающих проектов Александр Сербул Руководитель направления контроля качества интеграции и внедрений ООО «1С-Битрикс»
1С-Битрикс: Управление сайтом 10.0 Веб-кластер.
Обеспечение целостности данных Процедурное. Хранимые процедуры Хранимые процедуры пишутся на специальном встроенном языке программирования, они могут.
Лекция 23 Лекция 23 Схемы распределения данных и запросов. Обработка распределенных данных и запросов. Многопотоковые и многосерверные архитектуры. Типы.
1С-Битрикс: Маркетплейс новые возможности Денис Донченко менеджер отдела развития бизнеса.
Транксрипт:

Мастер класс: Хайлоадблоки - использование, NoSQL Александр Сербул Руководитель направления контроля качества интеграции и внедрений 1С-Битрикс

ACID, SQL С конца 70 г.г., «Джим» Грей Эдгар Кодд, Кристофер Дейт Atomicity Атомарность Consistency Согласованность Isolation Изолированность Durability Надежность

NoSQL – как все начиналось Dynamo (Amazon, =< 2007) Cassandra (Facebook, 2009) MongoDB (2009) Redis (2009) …

NoSQL – «плавающие» схемы данных

NoSQL – «страшные архитектуры»

NoSQL – распределенные алгоритмы Werner Vogels - VP and CTO of Amazon.com

Теорема CAP (Брюера) Проф. Эрик Брюер, 2000, University of California at Berkeley Согласованность данных (Consistency) во всех вычислительных узлах в один момент времени данные не противоречат друг другу Доступность (Availability) любой запрос к распределённой системе завершается корректным откликом Устойчивость к разделению (Partition tolerance) расщепление распределённой системы на несколько изолированных секций не приводит к некорректности отклика от каждой из секций

Теорема CAP - CA Система, во всех узлах которой данные согласованы и обеспечена доступность, жертвует устойчивостью к распаду на секции. Такие системы возможны на основе технологического программного обеспечения, поддерживающего транзакционность в смысле ACID. Примерами таких систем могут быть решения на основе кластерных систем управления базами данных или распределённая служба каталогов LDAP.

Теорема CAP - CP Распределённая система, в каждый момент обеспечивающая целостный результат и способная функционировать в условиях распада, в ущерб доступности может не выдавать отклик. Устойчивость к распаду на секции требует обеспечения дублирования изменений во всех узлах системы, в этой связи отмечается практическая целесообразность использования в таких системах распределённых пессимистических блокировок для сохранения целостности

Теорема CAP - AP Распределённая система, отказывающаяся от целостности результата. Большинство NoSQL-систем принципиально не гарантируют целостности данных, и ссылаются на теорему CAP как на мотив такого ограничения. Задачей при построении AP-систем становится обеспечение некоторого практически целесообразного уровня целостности данных, в этом смысле про AP-системы говорят как о «целостных в конечном итоге» (eventually consistent) или как о «слабо целостных» (weak consistent) DNS, Web Caches, NoSQL …

NoSQL – поможет ли? Риски: Eventual consistency Агрессивная денормализация Проблемы со сложными запросами Усложнение приложения-клиента

HandlerSocket Автор: Akira Higuchi DeNA Co., Ltd год

WebApp + memcached

WebApp + HandlerSocket

Архитектура Хайлоадблоков Отдельные таблицы БД Свои индексы D7: стандартизированные интерфейсы (Table Data Gateway): сущность (Bitrix\Main\Entity\Base) поля сущности (Bitrix\Main\Entity\Field и его наследники) датаменеджер (Bitrix\Main\Entity\DataManager)

Полезные книжечки Изучайте истории успеха Разбирайтесь в архитектуре Используйте подходящие проекту решения Ищите готовые примеры в Bitrix Framework, D7

Table Module A single instance that handles the business logic for all rows in a database table or view

Table Data Gateway An object that acts as a Gateway to a database table. One instance handles all the rows in the table

Настройка подключения к HandlerSocket Ставим PerconaServer или MariaDB или: 1) Качаем исходники MySQL 2) Собираем плагин HandlerSocket Настраиваем «/bitrix/.settings.php»

Архитектура Хайлоадблоков \Bitrix\Main\Loader::includeModule( 'highloadblock' ); use Bitrix\Highloadblock as HL; use Bitrix\Main\Entity; $hlblock = HL\HighloadBlockTable::getById( 1 )->fetch(); $entity = HL\HighloadBlockTable::compileEntity( $hlblock ); //генерация класса $entityClass = $entity->getDataClass(); $result = $entityClass:: add / update / delete / getList/ getById

Хайлоадблоки и HandlerSocket … 1) $obj = $entityClass::getById( $arData["ID"] )->fetch(); 2) Вызов API HS: open_index find 3) Обработка результата приложением Работает для ЛЮБЫХ сущностей! Bitrix\Main\UserTable::getById(1); Снижение нагрузки на MySQL и сеть.

Хайлоадблоки и бизнес-логика Наследуем от класса сущности Хайлоадблока: $hlblock = HL\HighloadBlockTable::getById( # )->fetch(); $entity = HL\HighloadBlockTable::compileEntity( $hlblock ); //генерация класса $entityClass = $entity->getDataClass(); class MyDomainObjectTable extends #entityClass# { …//наша бизнес логика проекта }

Хайлоадблоки/HandlerSocket Плюсы: Низкие накладные расходы (PHP, меньше запросов SQL) Низкий риск блокировок в БД (свои таблицы) Тысячи, миллионы сущностей, справочники Снижение нагрузки на БД, хостинг Highload проекты, системы с большим объемом информации

Спасибо за внимание! Вопросы? Александр