SlideShare a Scribd company logo
Система распределенного
тестирования машинного
       перевода
История возникновения системы
 •В проекте машинного перевода заняты несколько десятков
 человек.
 •И программисты, и лингвисты постоянно вносят изменения.
 •Для надежного тестирования изменений необходимо перевести
 более 10 тысяч предложений.
 •На одном компьютере эта задача невыполнима.




Система распределенного тестирования машинного перевода
Требования к системе
 •Производительность.
      Необходимо было обеспечить время получения результата при
      пиковой нагрузке около10 мин.
 •Масштабируемость.
      Система должна переносить увеличение числа переводящих ядер в 2
      раза.
 •Надежность и отказоустойчивость.
      Про систему, состоящую из нескольких сотен элементов, с
      уверенностью можно сказать: “Если в системе есть ошибка, она
      обязательно проявится.”
      Т.к. цена простоя системы очень велика, особое внимание при
      проектировании уделялось надежности.




Система распределенного тестирования машинного перевода
Типичные проблемы,
 возникающие при построении
 больших распределенных систем
 •Конфликты при одновременном доступе к ресурсам
      Очень многим элементам системы может понадобиться один и тот же
      ресурс, например, файл. Способы решения: очереди к ресурсам,
      создание копий ресурсов.
 •Проблема тестирования
      При тестировании тяжело воспроизвести ситуацию экстремальной
      нагрузки. Т.е. часть проблем выясняется при пробном пуске. Система
      должна иметь очень развитую диагностику, чтобы за минимальное
      время выявить проблему. При пуске в эксплуатацию новой версии
      нужно предусматривать быстрый откат к предыдущей версии.




Система распределенного тестирования машинного перевода
Вариант архитектуры 1
                              Клиентские                  Переводящие
                               машины                       станции



            База данных
             переводов




Система распределенного тестирования машинного перевода
Вариант архитектуры 2
                                                                 Переводящие
                         Клиентские
                                                                   станции
                          машины
            База
          данных                             Сервер управления
         переводов                            распределенной
                                                 системой.




Система распределенного тестирования машинного перевода
Вариант архитектуры 3
               Клиентские                                 Переводящие
                машины           Центральный серевер,       станции
                                      содержащий
                                 базу данных переводов
                                      и управление
                                    распределенной
                                        системой.




Система распределенного тестирования машинного перевода
Архитектура
 •В реальности был выбран 3-й вариант, содержащий в одной базе
 данных и переводы, и систему управления.
 •В такой системе клиенты ничего не знают о станциях перевода,
 знают только о базе данных переводов.
 •Если клиент что-то хочет перевести, он создает задание в базе.
 •Станции перевода ничего не знают о клиентах, знают только о
 базе данных переводов.
 •Основной цикл работы станции перевода:
           Запросить из базы задание и, если есть, – выполнить.




Система распределенного тестирования машинного перевода
Внутреннее устройство
 •Единица работы для клиента – задание. Задание состоит из
 множества примеров и бинарных компонентов, осуществляющих
 перевод.
 •Создание задания полностью лежит на клиенте. Т.к. кроме
 множества примеров задание содержит еще и бинарные
 компоненты, клиент отправляет бинарные компоненты на
 случайную станцию перевода.
 •В процессе создания задание режется на пакеты.
 •Пакет – единица работы для станции перевода.




Система распределенного тестирования машинного перевода
Очередь заданий и пул пакетов
 •Для того чтобы не работать одновременно с большим
 количеством заданий, задания ставятся в очередь. Активны, т.е.
 переводятся, только несколько первых в очереди.
 •Пул пакетов формируется из пакетов активных заданий. Станции
 перевода берут пакеты только из пула.


                 Активные
                  задания
                                                   Пул пакетов




Система распределенного тестирования машинного перевода
Обеспечение надежности и борьба
 с отказами
 •Транзакционность
      Не должно существовать действий, про которые какой-нибудь
      элемент системы может подумать, что он завершен, а он на самом
      деле не завершен. Транзакционным должно быть, в том числе, и
      копирование файлов.

 •Повторение неудавшихся действий
      Например, если компьютер, на котором лежит нужный файл, вышел
      из строя, нужно просигнализировать, что такого файла в нужном
      месте нет, и запросить его еще раз. Конечно, таких попыток не должно
      быть слишком много.




Система распределенного тестирования машинного перевода
Обеспечение надежности и борьба
 с отказами
 •Восстановление инвариантов
      Пакет в нашей системе может находиться в трех состояниях:
      •Не поступил в обработку.
      •Отдан на обработку на станцию Х, и эта станция единственна.
      •Обработан.

                      Если пакет отдан на обработку на станцию X, а станция
                      не подает признаков жизни, пакет нужно вернуть в
                      состояние “не поступил в обработку”.




Система распределенного тестирования машинного перевода
Обеспечение надежности и борьба
 с отказами
 •Формальное доказательство правильности важных алгоритмов.
 •Мы, например, доказывали следующее утверждение:
      Каждое задание, поступившее в систему, будет переведено. Это
      значит, что:
           •Каждое задание, поставленное в очередь, поступит в обработку.
           •Каждый пакет активного задания поступит в обработку.
           •Каждый пакет, поступивший в обработку, будет переведен.




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




Система распределенного тестирования машинного перевода
Администрирование

 •Для уменьшения затрат времени на администрирование, все
 основные операции автоматизированы.
 •Переустановка бинарных компонентов на переводящих станциях
 после выхода нового билда происходит полностью автоматически.
 •Включение в систему новой станции делается нажатием одной
 кнопки.




Система распределенного тестирования машинного перевода
Спасибо за внимание!




Система распределенного тестирования машинного перевода

More Related Content

What's hot

Проверка на прочность или нагрузочное тестирование с Jmeter
Проверка на прочность или нагрузочное тестирование с JmeterПроверка на прочность или нагрузочное тестирование с Jmeter
Проверка на прочность или нагрузочное тестирование с Jmeter
Aleksey Derkach
 
Об очередях (AMQP)
Об очередях (AMQP)Об очередях (AMQP)
Об очередях (AMQP)
Ilya Chesnokov
 
TRAFFIC SIMULATOR
TRAFFIC SIMULATORTRAFFIC SIMULATOR
TRAFFIC SIMULATOR
soft-point
 
Асинхронная обработка данных: RabbitMQ, Comet
Асинхронная обработка данных: RabbitMQ, CometАсинхронная обработка данных: RabbitMQ, Comet
Асинхронная обработка данных: RabbitMQ, Comet
Андрей Федоровский
 
Symfony Workflow Component. Область применения. Первый опыт использования. ра...
Symfony Workflow Component. Область применения. Первый опыт использования. ра...Symfony Workflow Component. Область применения. Первый опыт использования. ра...
Symfony Workflow Component. Область применения. Первый опыт использования. ра...
Alex Medvedev
 
Ibm mq против apache active mq производительность обновления сравнения
Ibm mq против apache active mq производительность обновления сравненияIbm mq против apache active mq производительность обновления сравнения
Ibm mq против apache active mq производительность обновления сравнения
Sergei Seleznev
 
Взаимодействие сервисов через Advanced Message
 Queuing Protocol
Взаимодействие сервисов через Advanced Message
 Queuing ProtocolВзаимодействие сервисов через Advanced Message
 Queuing Protocol
Взаимодействие сервисов через Advanced Message
 Queuing Protocol
Elena Grahovac
 
Нагрузочное тестирование. С чего начать?
Нагрузочное тестирование. С чего начать?Нагрузочное тестирование. С чего начать?
Нагрузочное тестирование. С чего начать?
OdessaQA
 
Apache Kafka Cluster - Russian
Apache Kafka Cluster - RussianApache Kafka Cluster - Russian
Apache Kafka Cluster - Russian
confluent
 
Трансформация управления данными в средах DevTest
Трансформация управления данными в средах DevTestТрансформация управления данными в средах DevTest
Трансформация управления данными в средах DevTest
Sergii Stukan
 
Проектирование приложений в IBM Cognos ТМ1
Проектирование приложений в IBM Cognos ТМ1Проектирование приложений в IBM Cognos ТМ1
Проектирование приложений в IBM Cognos ТМ1Yuri Kudryavcev
 
Операционные системы 2015, лекция № 6
Операционные системы 2015, лекция № 6Операционные системы 2015, лекция № 6
Операционные системы 2015, лекция № 6
Aleksey Bragin
 
Операционные системы 2015, лекция № 4
Операционные системы 2015, лекция № 4Операционные системы 2015, лекция № 4
Операционные системы 2015, лекция № 4
Aleksey Bragin
 
Как разработать вычислительную инфраструктуру для большого кластера
Как разработать вычислительную инфраструктуру для большого кластераКак разработать вычислительную инфраструктуру для большого кластера
Как разработать вычислительную инфраструктуру для большого кластера
Eugene Kirpichov
 
Алексей Лавренюк - Организация нагрузочного тестирования
Алексей Лавренюк - Организация нагрузочного тестирования   Алексей Лавренюк - Организация нагрузочного тестирования
Алексей Лавренюк - Организация нагрузочного тестирования Yandex
 
Жизнь проекта на production
Жизнь проекта на productionЖизнь проекта на production
Жизнь проекта на production
Nikolay Sivko
 

What's hot (19)

Проверка на прочность или нагрузочное тестирование с Jmeter
Проверка на прочность или нагрузочное тестирование с JmeterПроверка на прочность или нагрузочное тестирование с Jmeter
Проверка на прочность или нагрузочное тестирование с Jmeter
 
Об очередях (AMQP)
Об очередях (AMQP)Об очередях (AMQP)
Об очередях (AMQP)
 
TRAFFIC SIMULATOR
TRAFFIC SIMULATORTRAFFIC SIMULATOR
TRAFFIC SIMULATOR
 
Асинхронная обработка данных: RabbitMQ, Comet
Асинхронная обработка данных: RabbitMQ, CometАсинхронная обработка данных: RabbitMQ, Comet
Асинхронная обработка данных: RabbitMQ, Comet
 
Symfony Workflow Component. Область применения. Первый опыт использования. ра...
Symfony Workflow Component. Область применения. Первый опыт использования. ра...Symfony Workflow Component. Область применения. Первый опыт использования. ра...
Symfony Workflow Component. Область применения. Первый опыт использования. ра...
 
Ibm mq против apache active mq производительность обновления сравнения
Ibm mq против apache active mq производительность обновления сравненияIbm mq против apache active mq производительность обновления сравнения
Ibm mq против apache active mq производительность обновления сравнения
 
Взаимодействие сервисов через Advanced Message
 Queuing Protocol
Взаимодействие сервисов через Advanced Message
 Queuing ProtocolВзаимодействие сервисов через Advanced Message
 Queuing Protocol
Взаимодействие сервисов через Advanced Message
 Queuing Protocol
 
Нагрузочное тестирование. С чего начать?
Нагрузочное тестирование. С чего начать?Нагрузочное тестирование. С чего начать?
Нагрузочное тестирование. С чего начать?
 
Apache Kafka Cluster - Russian
Apache Kafka Cluster - RussianApache Kafka Cluster - Russian
Apache Kafka Cluster - Russian
 
03 load testing
03   load testing03   load testing
03 load testing
 
Трансформация управления данными в средах DevTest
Трансформация управления данными в средах DevTestТрансформация управления данными в средах DevTest
Трансформация управления данными в средах DevTest
 
Проектирование приложений в IBM Cognos ТМ1
Проектирование приложений в IBM Cognos ТМ1Проектирование приложений в IBM Cognos ТМ1
Проектирование приложений в IBM Cognos ТМ1
 
лаб работа 3 2
лаб работа 3 2лаб работа 3 2
лаб работа 3 2
 
Операционные системы 2015, лекция № 6
Операционные системы 2015, лекция № 6Операционные системы 2015, лекция № 6
Операционные системы 2015, лекция № 6
 
Операционные системы 2015, лекция № 4
Операционные системы 2015, лекция № 4Операционные системы 2015, лекция № 4
Операционные системы 2015, лекция № 4
 
02-lection-ka
02-lection-ka02-lection-ka
02-lection-ka
 
Как разработать вычислительную инфраструктуру для большого кластера
Как разработать вычислительную инфраструктуру для большого кластераКак разработать вычислительную инфраструктуру для большого кластера
Как разработать вычислительную инфраструктуру для большого кластера
 
Алексей Лавренюк - Организация нагрузочного тестирования
Алексей Лавренюк - Организация нагрузочного тестирования   Алексей Лавренюк - Организация нагрузочного тестирования
Алексей Лавренюк - Организация нагрузочного тестирования
 
Жизнь проекта на production
Жизнь проекта на productionЖизнь проекта на production
Жизнь проекта на production
 

Viewers also liked

Nalogia for Moscow Innovation Nights
Nalogia for Moscow Innovation NightsNalogia for Moscow Innovation Nights
Nalogia for Moscow Innovation Nights
tsabolov
 
Психология и юзабилити электронной коммерции
Психология и юзабилити электронной коммерцииПсихология и юзабилити электронной коммерции
Психология и юзабилити электронной коммерции
Ivan Burmistrov
 
Attacca mobile marketing
Attacca mobile marketingAttacca mobile marketing
Attacca mobile marketingAttacca_digital
 
Как продать Agile.
Как продать Agile.Как продать Agile.
Как продать Agile.
Nikita Filippov
 
Команда Василия Шилофоста. Проект "12". #BarCamp Одесса, 201512
Команда Василия Шилофоста. Проект "12". #BarCamp Одесса, 201512Команда Василия Шилофоста. Проект "12". #BarCamp Одесса, 201512
Команда Василия Шилофоста. Проект "12". #BarCamp Одесса, 201512
RestoPraktiki
 
WUD2008 - Умнова, Тихонина, Дегтяренко - Юзабилити и транспорт: вести с полей
WUD2008 - Умнова, Тихонина, Дегтяренко - Юзабилити и транспорт: вести с полейWUD2008 - Умнова, Тихонина, Дегтяренко - Юзабилити и транспорт: вести с полей
WUD2008 - Умнова, Тихонина, Дегтяренко - Юзабилити и транспорт: вести с полейwud
 
FunGid
FunGidFunGid
FunGid
startuptour
 
И. Ведехин, IBS. Трезвый взгляд на импортозамещение (CnewsForum 2014)
И. Ведехин, IBS. Трезвый взгляд на импортозамещение (CnewsForum 2014)И. Ведехин, IBS. Трезвый взгляд на импортозамещение (CnewsForum 2014)
И. Ведехин, IBS. Трезвый взгляд на импортозамещение (CnewsForum 2014)
IBS
 
WUD2008 - Дмитрий Павлов - Юзабилити-отдел в компании или аутсорсинг: что выб...
WUD2008 - Дмитрий Павлов - Юзабилити-отдел в компании или аутсорсинг: что выб...WUD2008 - Дмитрий Павлов - Юзабилити-отдел в компании или аутсорсинг: что выб...
WUD2008 - Дмитрий Павлов - Юзабилити-отдел в компании или аутсорсинг: что выб...wud
 
Harvest от #tceh: PayOnWay
Harvest от #tceh: PayOnWayHarvest от #tceh: PayOnWay
WUD2008 - Наталья Спрогис - Как пройти в библиотеку? (Опыт разработки картогр...
WUD2008 - Наталья Спрогис - Как пройти в библиотеку? (Опыт разработки картогр...WUD2008 - Наталья Спрогис - Как пройти в библиотеку? (Опыт разработки картогр...
WUD2008 - Наталья Спрогис - Как пройти в библиотеку? (Опыт разработки картогр...wud
 
Технология создания коробочного решения. ПИР 2015
Технология создания коробочного решения. ПИР 2015Технология создания коробочного решения. ПИР 2015
Технология создания коробочного решения. ПИР 2015
Юлия Воликова (Литвинова)
 
WUD2008 - Влад Головач - Продуктивность дизайнера интерфейсов: вечный резерв
WUD2008 - Влад Головач - Продуктивность дизайнера интерфейсов: вечный резервWUD2008 - Влад Головач - Продуктивность дизайнера интерфейсов: вечный резерв
WUD2008 - Влад Головач - Продуктивность дизайнера интерфейсов: вечный резервwud
 
"Big data в бизнесе"
"Big data в бизнесе""Big data в бизнесе"
"Big data в бизнесе"
Cybermarketing, Moscow
 
Roofevents презентация общая
Roofevents презентация общаяRoofevents презентация общая
Roofevents презентация общая
Roof Events
 

Viewers also liked (20)

Nalogia for Moscow Innovation Nights
Nalogia for Moscow Innovation NightsNalogia for Moscow Innovation Nights
Nalogia for Moscow Innovation Nights
 
Психология и юзабилити электронной коммерции
Психология и юзабилити электронной коммерцииПсихология и юзабилити электронной коммерции
Психология и юзабилити электронной коммерции
 
Attacca mobile marketing
Attacca mobile marketingAttacca mobile marketing
Attacca mobile marketing
 
Как продать Agile.
Как продать Agile.Как продать Agile.
Как продать Agile.
 
Команда Василия Шилофоста. Проект "12". #BarCamp Одесса, 201512
Команда Василия Шилофоста. Проект "12". #BarCamp Одесса, 201512Команда Василия Шилофоста. Проект "12". #BarCamp Одесса, 201512
Команда Василия Шилофоста. Проект "12". #BarCamp Одесса, 201512
 
WUD2008 - Умнова, Тихонина, Дегтяренко - Юзабилити и транспорт: вести с полей
WUD2008 - Умнова, Тихонина, Дегтяренко - Юзабилити и транспорт: вести с полейWUD2008 - Умнова, Тихонина, Дегтяренко - Юзабилити и транспорт: вести с полей
WUD2008 - Умнова, Тихонина, Дегтяренко - Юзабилити и транспорт: вести с полей
 
FunGid
FunGidFunGid
FunGid
 
Think with.me
Think with.meThink with.me
Think with.me
 
7 h mpic
7 h mpic7 h mpic
7 h mpic
 
И. Ведехин, IBS. Трезвый взгляд на импортозамещение (CnewsForum 2014)
И. Ведехин, IBS. Трезвый взгляд на импортозамещение (CnewsForum 2014)И. Ведехин, IBS. Трезвый взгляд на импортозамещение (CnewsForum 2014)
И. Ведехин, IBS. Трезвый взгляд на импортозамещение (CnewsForum 2014)
 
Shopium
ShopiumShopium
Shopium
 
WUD2008 - Дмитрий Павлов - Юзабилити-отдел в компании или аутсорсинг: что выб...
WUD2008 - Дмитрий Павлов - Юзабилити-отдел в компании или аутсорсинг: что выб...WUD2008 - Дмитрий Павлов - Юзабилити-отдел в компании или аутсорсинг: что выб...
WUD2008 - Дмитрий Павлов - Юзабилити-отдел в компании или аутсорсинг: что выб...
 
Harvest от #tceh: PayOnWay
Harvest от #tceh: PayOnWayHarvest от #tceh: PayOnWay
Harvest от #tceh: PayOnWay
 
WUD2008 - Наталья Спрогис - Как пройти в библиотеку? (Опыт разработки картогр...
WUD2008 - Наталья Спрогис - Как пройти в библиотеку? (Опыт разработки картогр...WUD2008 - Наталья Спрогис - Как пройти в библиотеку? (Опыт разработки картогр...
WUD2008 - Наталья Спрогис - Как пройти в библиотеку? (Опыт разработки картогр...
 
Технология создания коробочного решения. ПИР 2015
Технология создания коробочного решения. ПИР 2015Технология создания коробочного решения. ПИР 2015
Технология создания коробочного решения. ПИР 2015
 
Get shopapp
Get shopappGet shopapp
Get shopapp
 
WUD2008 - Влад Головач - Продуктивность дизайнера интерфейсов: вечный резерв
WUD2008 - Влад Головач - Продуктивность дизайнера интерфейсов: вечный резервWUD2008 - Влад Головач - Продуктивность дизайнера интерфейсов: вечный резерв
WUD2008 - Влад Головач - Продуктивность дизайнера интерфейсов: вечный резерв
 
"Big data в бизнесе"
"Big data в бизнесе""Big data в бизнесе"
"Big data в бизнесе"
 
Qr buy service
Qr buy serviceQr buy service
Qr buy service
 
Roofevents презентация общая
Roofevents презентация общаяRoofevents презентация общая
Roofevents презентация общая
 

Similar to Распределенная система тестирования машинного перевода

Руслан Гаращук, ABBYY, - Распределенная система тестирования машинного перевода
Руслан Гаращук, ABBYY, - Распределенная система тестирования машинного перевода Руслан Гаращук, ABBYY, - Распределенная система тестирования машинного перевода
Руслан Гаращук, ABBYY, - Распределенная система тестирования машинного перевода Media Gorod
 
владивосток форум производительность_ha
владивосток форум производительность_haвладивосток форум производительность_ha
владивосток форум производительность_ha
Elena Ometova
 
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)
Ontico
 
Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?
Vadim Madison
 
«Механизмы обновления платформы и окружений пользователей в Jelastic»
«Механизмы обновления платформы и окружений пользователей в Jelastic»«Механизмы обновления платформы и окружений пользователей в Jelastic»
«Механизмы обновления платформы и окружений пользователей в Jelastic»
Nata_Churda
 
РИФ 2016, Tarantool – кейсы использования
РИФ 2016, Tarantool – кейсы использованияРИФ 2016, Tarantool – кейсы использования
РИФ 2016, Tarantool – кейсы использования
Тарасов Константин
 
Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...
Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...
Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...
Tanya Denisyuk
 
6 лекция. тестирование производительности
 6 лекция. тестирование производительности 6 лекция. тестирование производительности
6 лекция. тестирование производительности
vyacheslavmaslov
 
Поддержка высоконагруженного проекта: мониторинг, резервирование, обслуживани...
Поддержка высоконагруженного проекта: мониторинг, резервирование, обслуживани...Поддержка высоконагруженного проекта: мониторинг, резервирование, обслуживани...
Поддержка высоконагруженного проекта: мониторинг, резервирование, обслуживани...
Ontico
 
Надежность World of Tanks Server
Надежность World of Tanks ServerНадежность World of Tanks Server
Надежность World of Tanks Server
Levon Avakyan
 
Доклад "Мониторинг серверных приложений"
Доклад "Мониторинг серверных приложений"Доклад "Мониторинг серверных приложений"
Доклад "Мониторинг серверных приложений"
Grigoriy Orlov
 
Highload 2014. PostgreSQL: ups, DevOps.
Highload 2014. PostgreSQL: ups, DevOps.Highload 2014. PostgreSQL: ups, DevOps.
Highload 2014. PostgreSQL: ups, DevOps.
Alexey Lesovsky
 
Интеграционная шина на базе InterSystems Ensemble
Интеграционная шина на базе InterSystems EnsembleИнтеграционная шина на базе InterSystems Ensemble
Интеграционная шина на базе InterSystems Ensemble
InterSystems
 
Кутумов - Автоматизация тестирования транспортных карт
Кутумов - Автоматизация тестирования транспортных картКутумов - Автоматизация тестирования транспортных карт
Кутумов - Автоматизация тестирования транспортных картqasib
 
Компонентная среда разработки инструментария нагрузочного тестирования
Компонентная среда разработки инструментария нагрузочного тестированияКомпонентная среда разработки инструментария нагрузочного тестирования
Компонентная среда разработки инструментария нагрузочного тестирования
SQALab
 
Как оценивать состояние проекта по разработке с помощью формальных метрик и о...
Как оценивать состояние проекта по разработке с помощью формальных метрик и о...Как оценивать состояние проекта по разработке с помощью формальных метрик и о...
Как оценивать состояние проекта по разработке с помощью формальных метрик и о...
Dmitry Andreev
 
Вадим Мадисон "Опыт разработки через микросервисы"
Вадим Мадисон "Опыт разработки через микросервисы"Вадим Мадисон "Опыт разработки через микросервисы"
Вадим Мадисон "Опыт разработки через микросервисы"
Tanya Denisyuk
 
FT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это простоFT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это просто
Александр Ежов
 

Similar to Распределенная система тестирования машинного перевода (20)

Руслан Гаращук, ABBYY, - Распределенная система тестирования машинного перевода
Руслан Гаращук, ABBYY, - Распределенная система тестирования машинного перевода Руслан Гаращук, ABBYY, - Распределенная система тестирования машинного перевода
Руслан Гаращук, ABBYY, - Распределенная система тестирования машинного перевода
 
владивосток форум производительность_ha
владивосток форум производительность_haвладивосток форум производительность_ha
владивосток форум производительность_ha
 
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)
 
Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?
 
Dev collaboration
Dev collaborationDev collaboration
Dev collaboration
 
«Механизмы обновления платформы и окружений пользователей в Jelastic»
«Механизмы обновления платформы и окружений пользователей в Jelastic»«Механизмы обновления платформы и окружений пользователей в Jelastic»
«Механизмы обновления платформы и окружений пользователей в Jelastic»
 
РИФ 2016, Tarantool – кейсы использования
РИФ 2016, Tarantool – кейсы использованияРИФ 2016, Tarantool – кейсы использования
РИФ 2016, Tarantool – кейсы использования
 
Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...
Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...
Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...
 
6 лекция. тестирование производительности
 6 лекция. тестирование производительности 6 лекция. тестирование производительности
6 лекция. тестирование производительности
 
Simonova sql server-enginetesting
Simonova sql server-enginetestingSimonova sql server-enginetesting
Simonova sql server-enginetesting
 
Поддержка высоконагруженного проекта: мониторинг, резервирование, обслуживани...
Поддержка высоконагруженного проекта: мониторинг, резервирование, обслуживани...Поддержка высоконагруженного проекта: мониторинг, резервирование, обслуживани...
Поддержка высоконагруженного проекта: мониторинг, резервирование, обслуживани...
 
Надежность World of Tanks Server
Надежность World of Tanks ServerНадежность World of Tanks Server
Надежность World of Tanks Server
 
Доклад "Мониторинг серверных приложений"
Доклад "Мониторинг серверных приложений"Доклад "Мониторинг серверных приложений"
Доклад "Мониторинг серверных приложений"
 
Highload 2014. PostgreSQL: ups, DevOps.
Highload 2014. PostgreSQL: ups, DevOps.Highload 2014. PostgreSQL: ups, DevOps.
Highload 2014. PostgreSQL: ups, DevOps.
 
Интеграционная шина на базе InterSystems Ensemble
Интеграционная шина на базе InterSystems EnsembleИнтеграционная шина на базе InterSystems Ensemble
Интеграционная шина на базе InterSystems Ensemble
 
Кутумов - Автоматизация тестирования транспортных карт
Кутумов - Автоматизация тестирования транспортных картКутумов - Автоматизация тестирования транспортных карт
Кутумов - Автоматизация тестирования транспортных карт
 
Компонентная среда разработки инструментария нагрузочного тестирования
Компонентная среда разработки инструментария нагрузочного тестированияКомпонентная среда разработки инструментария нагрузочного тестирования
Компонентная среда разработки инструментария нагрузочного тестирования
 
Как оценивать состояние проекта по разработке с помощью формальных метрик и о...
Как оценивать состояние проекта по разработке с помощью формальных метрик и о...Как оценивать состояние проекта по разработке с помощью формальных метрик и о...
Как оценивать состояние проекта по разработке с помощью формальных метрик и о...
 
Вадим Мадисон "Опыт разработки через микросервисы"
Вадим Мадисон "Опыт разработки через микросервисы"Вадим Мадисон "Опыт разработки через микросервисы"
Вадим Мадисон "Опыт разработки через микросервисы"
 
FT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это простоFT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это просто
 

More from yaevents

Как научить роботов тестировать веб-интерфейсы. Артем Ерошенко, Илья Кацев, Я...
Как научить роботов тестировать веб-интерфейсы. Артем Ерошенко, Илья Кацев, Я...Как научить роботов тестировать веб-интерфейсы. Артем Ерошенко, Илья Кацев, Я...
Как научить роботов тестировать веб-интерфейсы. Артем Ерошенко, Илья Кацев, Я...
yaevents
 
Тема для WordPress в БЭМ. Владимир Гриненко, Яндекс
Тема для WordPress в БЭМ. Владимир Гриненко, ЯндексТема для WordPress в БЭМ. Владимир Гриненко, Яндекс
Тема для WordPress в БЭМ. Владимир Гриненко, Яндексyaevents
 
Построение сложносоставных блоков в шаблонизаторе bemhtml. Сергей Бережной, Я...
Построение сложносоставных блоков в шаблонизаторе bemhtml. Сергей Бережной, Я...Построение сложносоставных блоков в шаблонизаторе bemhtml. Сергей Бережной, Я...
Построение сложносоставных блоков в шаблонизаторе bemhtml. Сергей Бережной, Я...
yaevents
 
i-bem.js: JavaScript в БЭМ-терминах. Елена Глухова, Варвара Степанова, Яндекс
i-bem.js: JavaScript в БЭМ-терминах. Елена Глухова, Варвара Степанова, Яндексi-bem.js: JavaScript в БЭМ-терминах. Елена Глухова, Варвара Степанова, Яндекс
i-bem.js: JavaScript в БЭМ-терминах. Елена Глухова, Варвара Степанова, Яндекс
yaevents
 
Дом из готовых кирпичей. Библиотека блоков, тюнинг, инструменты. Елена Глухов...
Дом из готовых кирпичей. Библиотека блоков, тюнинг, инструменты. Елена Глухов...Дом из готовых кирпичей. Библиотека блоков, тюнинг, инструменты. Елена Глухов...
Дом из готовых кирпичей. Библиотека блоков, тюнинг, инструменты. Елена Глухов...
yaevents
 
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
yaevents
 
Администрирование небольших сервисов или один за всех и 100 на одного. Роман ...
Администрирование небольших сервисов или один за всех и 100 на одного. Роман ...Администрирование небольших сервисов или один за всех и 100 на одного. Роман ...
Администрирование небольших сервисов или один за всех и 100 на одного. Роман ...
yaevents
 
Мониторинг со всех сторон. Алексей Симаков, Яндекс
Мониторинг со всех сторон. Алексей Симаков, ЯндексМониторинг со всех сторон. Алексей Симаков, Яндекс
Мониторинг со всех сторон. Алексей Симаков, Яндексyaevents
 
Истории про разработку сайтов. Сергей Бережной, Яндекс
Истории про разработку сайтов. Сергей Бережной, ЯндексИстории про разработку сайтов. Сергей Бережной, Яндекс
Истории про разработку сайтов. Сергей Бережной, Яндекс
yaevents
 
Разработка приложений для Android на С++. Юрий Береза, Shturmann
Разработка приложений для Android на С++. Юрий Береза, ShturmannРазработка приложений для Android на С++. Юрий Береза, Shturmann
Разработка приложений для Android на С++. Юрий Береза, Shturmann
yaevents
 
Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...
Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...
Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...
yaevents
 
Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав З...
Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав З...Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав З...
Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав З...
yaevents
 
Сканирование уязвимостей со вкусом Яндекса. Тарас Иващенко, Яндекс
Сканирование уязвимостей со вкусом Яндекса. Тарас Иващенко, ЯндексСканирование уязвимостей со вкусом Яндекса. Тарас Иващенко, Яндекс
Сканирование уязвимостей со вкусом Яндекса. Тарас Иващенко, Яндекс
yaevents
 
Масштабируемость Hadoop в Facebook. Дмитрий Мольков, Facebook
Масштабируемость Hadoop в Facebook. Дмитрий Мольков, FacebookМасштабируемость Hadoop в Facebook. Дмитрий Мольков, Facebook
Масштабируемость Hadoop в Facebook. Дмитрий Мольков, Facebook
yaevents
 
Контроль зверей: инструменты для управления и мониторинга распределенных сист...
Контроль зверей: инструменты для управления и мониторинга распределенных сист...Контроль зверей: инструменты для управления и мониторинга распределенных сист...
Контроль зверей: инструменты для управления и мониторинга распределенных сист...
yaevents
 
Юнит-тестирование и Google Mock. Влад Лосев, Google
Юнит-тестирование и Google Mock. Влад Лосев, GoogleЮнит-тестирование и Google Mock. Влад Лосев, Google
Юнит-тестирование и Google Mock. Влад Лосев, Google
yaevents
 
C++11 (formerly known as C++0x) is the new C++ language standard. Dave Abraha...
C++11 (formerly known as C++0x) is the new C++ language standard. Dave Abraha...C++11 (formerly known as C++0x) is the new C++ language standard. Dave Abraha...
C++11 (formerly known as C++0x) is the new C++ language standard. Dave Abraha...
yaevents
 
Зачем обычному программисту знать языки, на которых почти никто не пишет. Але...
Зачем обычному программисту знать языки, на которых почти никто не пишет. Але...Зачем обычному программисту знать языки, на которых почти никто не пишет. Але...
Зачем обычному программисту знать языки, на которых почти никто не пишет. Але...
yaevents
 
В поисках математики. Михаил Денисенко, Нигма
В поисках математики. Михаил Денисенко, НигмаВ поисках математики. Михаил Денисенко, Нигма
В поисках математики. Михаил Денисенко, Нигма
yaevents
 
Using classifiers to compute similarities between face images. Prof. Lior Wol...
Using classifiers to compute similarities between face images. Prof. Lior Wol...Using classifiers to compute similarities between face images. Prof. Lior Wol...
Using classifiers to compute similarities between face images. Prof. Lior Wol...
yaevents
 

More from yaevents (20)

Как научить роботов тестировать веб-интерфейсы. Артем Ерошенко, Илья Кацев, Я...
Как научить роботов тестировать веб-интерфейсы. Артем Ерошенко, Илья Кацев, Я...Как научить роботов тестировать веб-интерфейсы. Артем Ерошенко, Илья Кацев, Я...
Как научить роботов тестировать веб-интерфейсы. Артем Ерошенко, Илья Кацев, Я...
 
Тема для WordPress в БЭМ. Владимир Гриненко, Яндекс
Тема для WordPress в БЭМ. Владимир Гриненко, ЯндексТема для WordPress в БЭМ. Владимир Гриненко, Яндекс
Тема для WordPress в БЭМ. Владимир Гриненко, Яндекс
 
Построение сложносоставных блоков в шаблонизаторе bemhtml. Сергей Бережной, Я...
Построение сложносоставных блоков в шаблонизаторе bemhtml. Сергей Бережной, Я...Построение сложносоставных блоков в шаблонизаторе bemhtml. Сергей Бережной, Я...
Построение сложносоставных блоков в шаблонизаторе bemhtml. Сергей Бережной, Я...
 
i-bem.js: JavaScript в БЭМ-терминах. Елена Глухова, Варвара Степанова, Яндекс
i-bem.js: JavaScript в БЭМ-терминах. Елена Глухова, Варвара Степанова, Яндексi-bem.js: JavaScript в БЭМ-терминах. Елена Глухова, Варвара Степанова, Яндекс
i-bem.js: JavaScript в БЭМ-терминах. Елена Глухова, Варвара Степанова, Яндекс
 
Дом из готовых кирпичей. Библиотека блоков, тюнинг, инструменты. Елена Глухов...
Дом из готовых кирпичей. Библиотека блоков, тюнинг, инструменты. Елена Глухов...Дом из готовых кирпичей. Библиотека блоков, тюнинг, инструменты. Елена Глухов...
Дом из готовых кирпичей. Библиотека блоков, тюнинг, инструменты. Елена Глухов...
 
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
 
Администрирование небольших сервисов или один за всех и 100 на одного. Роман ...
Администрирование небольших сервисов или один за всех и 100 на одного. Роман ...Администрирование небольших сервисов или один за всех и 100 на одного. Роман ...
Администрирование небольших сервисов или один за всех и 100 на одного. Роман ...
 
Мониторинг со всех сторон. Алексей Симаков, Яндекс
Мониторинг со всех сторон. Алексей Симаков, ЯндексМониторинг со всех сторон. Алексей Симаков, Яндекс
Мониторинг со всех сторон. Алексей Симаков, Яндекс
 
Истории про разработку сайтов. Сергей Бережной, Яндекс
Истории про разработку сайтов. Сергей Бережной, ЯндексИстории про разработку сайтов. Сергей Бережной, Яндекс
Истории про разработку сайтов. Сергей Бережной, Яндекс
 
Разработка приложений для Android на С++. Юрий Береза, Shturmann
Разработка приложений для Android на С++. Юрий Береза, ShturmannРазработка приложений для Android на С++. Юрий Береза, Shturmann
Разработка приложений для Android на С++. Юрий Береза, Shturmann
 
Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...
Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...
Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...
 
Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав З...
Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав З...Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав З...
Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав З...
 
Сканирование уязвимостей со вкусом Яндекса. Тарас Иващенко, Яндекс
Сканирование уязвимостей со вкусом Яндекса. Тарас Иващенко, ЯндексСканирование уязвимостей со вкусом Яндекса. Тарас Иващенко, Яндекс
Сканирование уязвимостей со вкусом Яндекса. Тарас Иващенко, Яндекс
 
Масштабируемость Hadoop в Facebook. Дмитрий Мольков, Facebook
Масштабируемость Hadoop в Facebook. Дмитрий Мольков, FacebookМасштабируемость Hadoop в Facebook. Дмитрий Мольков, Facebook
Масштабируемость Hadoop в Facebook. Дмитрий Мольков, Facebook
 
Контроль зверей: инструменты для управления и мониторинга распределенных сист...
Контроль зверей: инструменты для управления и мониторинга распределенных сист...Контроль зверей: инструменты для управления и мониторинга распределенных сист...
Контроль зверей: инструменты для управления и мониторинга распределенных сист...
 
Юнит-тестирование и Google Mock. Влад Лосев, Google
Юнит-тестирование и Google Mock. Влад Лосев, GoogleЮнит-тестирование и Google Mock. Влад Лосев, Google
Юнит-тестирование и Google Mock. Влад Лосев, Google
 
C++11 (formerly known as C++0x) is the new C++ language standard. Dave Abraha...
C++11 (formerly known as C++0x) is the new C++ language standard. Dave Abraha...C++11 (formerly known as C++0x) is the new C++ language standard. Dave Abraha...
C++11 (formerly known as C++0x) is the new C++ language standard. Dave Abraha...
 
Зачем обычному программисту знать языки, на которых почти никто не пишет. Але...
Зачем обычному программисту знать языки, на которых почти никто не пишет. Але...Зачем обычному программисту знать языки, на которых почти никто не пишет. Але...
Зачем обычному программисту знать языки, на которых почти никто не пишет. Але...
 
В поисках математики. Михаил Денисенко, Нигма
В поисках математики. Михаил Денисенко, НигмаВ поисках математики. Михаил Денисенко, Нигма
В поисках математики. Михаил Денисенко, Нигма
 
Using classifiers to compute similarities between face images. Prof. Lior Wol...
Using classifiers to compute similarities between face images. Prof. Lior Wol...Using classifiers to compute similarities between face images. Prof. Lior Wol...
Using classifiers to compute similarities between face images. Prof. Lior Wol...
 

Распределенная система тестирования машинного перевода

  • 2. История возникновения системы •В проекте машинного перевода заняты несколько десятков человек. •И программисты, и лингвисты постоянно вносят изменения. •Для надежного тестирования изменений необходимо перевести более 10 тысяч предложений. •На одном компьютере эта задача невыполнима. Система распределенного тестирования машинного перевода
  • 3. Требования к системе •Производительность. Необходимо было обеспечить время получения результата при пиковой нагрузке около10 мин. •Масштабируемость. Система должна переносить увеличение числа переводящих ядер в 2 раза. •Надежность и отказоустойчивость. Про систему, состоящую из нескольких сотен элементов, с уверенностью можно сказать: “Если в системе есть ошибка, она обязательно проявится.” Т.к. цена простоя системы очень велика, особое внимание при проектировании уделялось надежности. Система распределенного тестирования машинного перевода
  • 4. Типичные проблемы, возникающие при построении больших распределенных систем •Конфликты при одновременном доступе к ресурсам Очень многим элементам системы может понадобиться один и тот же ресурс, например, файл. Способы решения: очереди к ресурсам, создание копий ресурсов. •Проблема тестирования При тестировании тяжело воспроизвести ситуацию экстремальной нагрузки. Т.е. часть проблем выясняется при пробном пуске. Система должна иметь очень развитую диагностику, чтобы за минимальное время выявить проблему. При пуске в эксплуатацию новой версии нужно предусматривать быстрый откат к предыдущей версии. Система распределенного тестирования машинного перевода
  • 5. Вариант архитектуры 1 Клиентские Переводящие машины станции База данных переводов Система распределенного тестирования машинного перевода
  • 6. Вариант архитектуры 2 Переводящие Клиентские станции машины База данных Сервер управления переводов распределенной системой. Система распределенного тестирования машинного перевода
  • 7. Вариант архитектуры 3 Клиентские Переводящие машины Центральный серевер, станции содержащий базу данных переводов и управление распределенной системой. Система распределенного тестирования машинного перевода
  • 8. Архитектура •В реальности был выбран 3-й вариант, содержащий в одной базе данных и переводы, и систему управления. •В такой системе клиенты ничего не знают о станциях перевода, знают только о базе данных переводов. •Если клиент что-то хочет перевести, он создает задание в базе. •Станции перевода ничего не знают о клиентах, знают только о базе данных переводов. •Основной цикл работы станции перевода: Запросить из базы задание и, если есть, – выполнить. Система распределенного тестирования машинного перевода
  • 9. Внутреннее устройство •Единица работы для клиента – задание. Задание состоит из множества примеров и бинарных компонентов, осуществляющих перевод. •Создание задания полностью лежит на клиенте. Т.к. кроме множества примеров задание содержит еще и бинарные компоненты, клиент отправляет бинарные компоненты на случайную станцию перевода. •В процессе создания задание режется на пакеты. •Пакет – единица работы для станции перевода. Система распределенного тестирования машинного перевода
  • 10. Очередь заданий и пул пакетов •Для того чтобы не работать одновременно с большим количеством заданий, задания ставятся в очередь. Активны, т.е. переводятся, только несколько первых в очереди. •Пул пакетов формируется из пакетов активных заданий. Станции перевода берут пакеты только из пула. Активные задания Пул пакетов Система распределенного тестирования машинного перевода
  • 11. Обеспечение надежности и борьба с отказами •Транзакционность Не должно существовать действий, про которые какой-нибудь элемент системы может подумать, что он завершен, а он на самом деле не завершен. Транзакционным должно быть, в том числе, и копирование файлов. •Повторение неудавшихся действий Например, если компьютер, на котором лежит нужный файл, вышел из строя, нужно просигнализировать, что такого файла в нужном месте нет, и запросить его еще раз. Конечно, таких попыток не должно быть слишком много. Система распределенного тестирования машинного перевода
  • 12. Обеспечение надежности и борьба с отказами •Восстановление инвариантов Пакет в нашей системе может находиться в трех состояниях: •Не поступил в обработку. •Отдан на обработку на станцию Х, и эта станция единственна. •Обработан. Если пакет отдан на обработку на станцию X, а станция не подает признаков жизни, пакет нужно вернуть в состояние “не поступил в обработку”. Система распределенного тестирования машинного перевода
  • 13. Обеспечение надежности и борьба с отказами •Формальное доказательство правильности важных алгоритмов. •Мы, например, доказывали следующее утверждение: Каждое задание, поступившее в систему, будет переведено. Это значит, что: •Каждое задание, поставленное в очередь, поступит в обработку. •Каждый пакет активного задания поступит в обработку. •Каждый пакет, поступивший в обработку, будет переведен. Система распределенного тестирования машинного перевода
  • 14. Оптимизация •Специфика нашей системы в том, что с одним заданием связан большой объем бинарных данных. Чтобы уменьшить количество копирований, мы стараемся минимизировать количество компьютеров, участвующих в одном задании. •Для устранения узких мест мы регистрируем все копии файлов, находящихся в системе. Станция, которой необходим файл, случайно выбирает одно из мест, где лежит этот файл. •Для борьбы с эффектом последнего пакета мы делаем пакеты двух размеров: большие и маленькие. Первыми в обработку поступают большие пакеты. Пакеты одного Пакеты двух размера разных размеров Система распределенного тестирования машинного перевода
  • 15. Администрирование •Для уменьшения затрат времени на администрирование, все основные операции автоматизированы. •Переустановка бинарных компонентов на переводящих станциях после выхода нового билда происходит полностью автоматически. •Включение в систему новой станции делается нажатием одной кнопки. Система распределенного тестирования машинного перевода
  • 16. Спасибо за внимание! Система распределенного тестирования машинного перевода