Метка «Realtime»

Photon – масштабируемая, отказоустойчивая и географически распределенная система обработки потоковых данных в режиме реального времени. Система является внутренним продуктом Google и используется в Google Advertising System. Research paper [5], описывающие базовые принципы и архитектуру Photon, был представлен на научной конференции ACM SIGMOD в 2013 году.

В paper [5] заявлено, что пиковая нагрузка на систему может составлять миллионы событий в минуту со средней end-to-end задержкой менее 10 секунд.
* 'Скорость света' в заголовке — наглая ложь гипербола.

Google Photon. Обработка данных со скоростью света*
Читать полностью »

Dremelмасштабируемая система обработки запросов в режиме близком к режиму реального времени (near-real-time), предназначенная для анализа неизменяемых данных [4].

Авторы research paper [4] (среди которых, судя по всему, и наши соотечественники — Сергей Мельник и Андрей Губарев), в котором описываются базовые принципы и архитектура Dremel, заявляют, что система в силах:

  • выполнять агрегирующие запросы над боле чем над триллионом строк за секунды;
  • масштабируется на тысячи CPU;
  • предназначена для работы с петабайтами данных;
  • имеет тысячи пользователей внутри Google (дословно «at Google» [4]).

Dremel. Как Google считает в real time?
Читать полностью »

Недавно я выложил под BSD лицензией небольшой проект на 8 килострочек C кода. Официально это коллекция бенчмарков для моих клиентов — вендоров промавтоматики. Код очень специфический, и, на первый взгляд, малоприменим за пределами узкой области PLC и motion control. Но есть небольшая изюминка, на которой я не очень акцентировал внимание в статье на IDZ. В поставку бенчмарков включена baremetal среда для их исполнения. В этом посте я опишу, что это такое, и как ее можно использовать.
Читать полностью »

Промышленные сети в контексте четвертой промышленной революции
Сначала небольшое историческое отступление о том, что такое четвертая промышленная революция, анонсированная в прошлом году.

  • Появление промышленности. Первая промышленная революция произошла в начале XIX века и была связана с массовым переходом от использования мускульной силы к энергии парового двигателя. Ключевые технологии — паровой двигатель, фабрика. Появилась возможность массового производства, но его продукты стоили дорого.
  • Массовое производство. Вторая революция случилась в начале 20 века, и ознаменовала начало дешевого массового производства. Ключевые технологии — конвейер и Тейлоризм. Продукты массового производства подешевели на порядок.
  • Автоматизация. Третий переворот в промышленности произошел в 80-е годы. Станки с ЧПУ и роботы сделали современные фабрики практически безлюдными. (Аутсорсинг ручного труда в развивающиеся страны сгладил эту тенденцию.) Продукты массового производства подешевели еще на порядок (стало дешевле выкинуть, чем чинить).
  • Децентрализация. Революция четыре точка ноль происходит сейчас. Ключевая технология — конвергенция промышленности и IT, 3д принтеры. Появляется возможность производства мелкой серии или уникального продукта по цене, приближающейся к стоимости того же самого в крупной серии.

Это немецкий взгляд на 4 четыре фазы развития промышленности. Существует еще и американский, который не разделяет третью и четвертую фазы.

Мне кажется, во вступлении я написал слишком много общих фраз и слишком мало технического хардкора. Исправлю это под катом, описав некоторые технические детали о промышленных сетях и продуктах Intel, связанных с ними (+ еще одна картинка с роботом).
Читать полностью »

У современных процессоров архитектуры Core i7 существует очевидный, документированный, но отчего-то не очень известный даже среди многих специалистов сценарий priority inversion. Его я опишу в этом посте. В нем есть код на С, три диаграммы, и некоторые подробности работы кэшей в процессорах архитектуры Core i7. Никаких покровов не срывается, вся информация давно общедоступна.

Priority inversion – ситуация, когда низкоприоритетный процесс может блокировать или замедлять высокоприоритетный. Обычно имеется в виду очередность доступа к исполнению на ядре для высокоприоритетного кода относительно низкоприоритетного. С этим должно неплохо справляться ядро ОС. Однако помимо вычислительных ядер, которые несложно распределять посредством affinity и MSI-X, в процессоре есть ресурсы, общие для всех задач – контроллер памяти, QPI, общий кэш третьего уровня, PCIe устройства. В вопросы PCIe я углубляться не буду, т.к. не являюсь экспертом в данной теме. Priority inversion на почве доступа к памяти и QPI я давно не наблюдал – пропускной способности современного многоканального контроллера как правило хватает и высокоприоритетным, и низкоприоритетным задачам. Остановлюсь на кэшах.
Читать полностью »

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

В общем, хотим поделиться своим экспериментом. Знаю, для гейм-девелоперов это детский лепет. Но для тех, кто раньше боялся подойти к реалтайм презентациям, возможно, наш опыт будет интересен.

image
Читать полностью »

Есть такой не очень корректный термин: PC based industrial automation. Я думаю, что он не совсем точен, так как никто, конечно, не подсоединяет станок к обычному персональному компьютеру. А то вдруг зависнет, и станок отрежет что-нибудь ненужное. Но рациональное зерно в этом термине есть — уже много лет среди управляющих устройств промышленной автоматизации встречаются устройства, напоминающие ПК.

Simatic S7Напоминающие, конечно, не внешне.

Как и в вашем ноутбуке, в контроллере может стоять процессор Core i5, обыкновенная DRAM (только обычно с ECC), SSD диск, обычный Ethernet. Процесс загрузки тоже не отличается — BIOS загружает операционку. Как правило, операционка — RTOS. Однако иногда бывает даже Windows. Причем не всегда это Windows Embedded Compact (бывшая CE). Используется даже Windows Embedded 7, а это полноценная семерка. (Линуксы тоже встречаются)

Читать полностью »

Meteor представляет собой набор новых технологий для быстрого создания высококачественных Веб-приложений, с которым справятся не только опытные разработчики но даже и новички.

Чистый JavaScript.

Пишите всё приложение полностью на чистом JavaScript. Все API, доступны на клиенте и на сервере — в том числе API базы данных! — Так что один код может легко работать на клиенте и на сервере.

Живые обновления страниц.

Просто напишите ваши шаблоны. Они автоматически обновляются при изменении данных. Meteor поддерживает любой язык шаблонов.

Чистая, мощная синхронизация данных.

Пишите ваш код клиентской части, как если бы она была запущена на сервере, и имела прямой доступ к базе данных. Больше не придется получать данные через REST.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js