SlideShare a Scribd company logo
1 of 80
JavaScript на сервере,
1ms на трансформацию
   Андрей Сумин, Mail.ru
Зачем?
Зачем?
— Пишут одни, а используют другие
Зачем?
— Пишут одни а используют другие
— JavaScript специалисты
Зачем?
— Пишут одни а используют другие
— JavaScript специалисты
— Шаблонизация на клиенте
Что нужно
XSLT JS
XSLT JS
XSLT
/head.xml
      <title><fest:get name="title"/></title>
      <fest:set name="title">Mail.ru</fest:set>
XSLT
/head.xml
      <title><fest:get name="title"/></title>
      <fest:set name="title">Mail.ru</fest:set>
/mail.xml
      <fest:include src="head.xml"/>
      <fest:set name="title">Почта</fest:set>
JavaScript
<fest:script>
       var text = "mail.ru"
</fest:script>
<fest:value>text</fest:value>
JavaScript
<fest:script>
       var text = "mail.ru"
</fest:script>
<fest:value>text</fest:value>

mail.ru
XML
XML
— IDE
XML
— IDE
— Валидация из коробки
XML
— IDE
— Валидация из коробки
— Name spaces
XML
— IDE
— Валидация из коробки
— Name spaces
— SAX, XSLT, XSD, DTD …
XML
— IDE
— Валидация из коробки
— Name spaces
— SAX, XSLT, XSD, DTD ...
— XML to XML
Реализация
Ковбойство
Структура
    vs
Функция
Структура vs функция
[   {action:"template"},
    "<html>...",
    {action:"value"},
    "json.value"]
Структура vs функция
[   {action:"template"},
    "<html>....”,
    {action:"if"},
    "json.value",
    "<span>true</span>",
    "<span>false</span>"]
Структура vs функция
function template(json){
      var html = "";
      html += "<html>…";
      html += json.value;
      return html;
}
Структура vs функция
200ms
3ms
Структура vs функция
fest:forearch   for(i = 0; i < l; i++) {}
fest:if         if(value) {}
fest:choose     if(value) {} else {}

fest:set        set[name] = function
                set[name] = function
Структура vs функция
<span>        html += "<span>";
    mail.ru   html += "mail.ru";
</span>       html += "</span>";
Структура vs функция
<span>                 html += "<span>";
    mail.ru            html += "mail.ru";
</span>                html += "</span>";

html += "<span>mail.ru</span>";
30%
Безопасность
try catch
try catch
 escape
Безопасность
<fest:value>json.name</fest:value>
try {
       html += escape(json.name);
} catch(e) {
       log(e.message);
}
Интеграция
Интеграция
—С
— Perl
— Python
— NodeJS
Интеграция
—С           fest_log
— Perl       fest_file
— Python     fest_dirname
— NodeJS
Интеграция
—С           fest_log
— Perl       fest_file
— Python     fest_dirname
— NodeJS

— Браузер
Реальные
пользователи
4ms
Реальные пользователи
msg_length = 5
msg_1_title = "letter"
msg_1_Unread = 1
Реальные пользователи
msg_length = 5
msg_1_title = "letter"
msg_1_Unread = 1

msg = [ {title: "letter", Unread: true} ]
Реальные пользователи
hash -> v8 api -> JavaScript
hash -> string -> JSON.parse -> JavaScript
hash -> string -> compile -> Javascript
Реальные пользователи
Local<String> script = String::new(
      "template("{value:'mail.ru'}")"
);
Local<Script> cs = Script::Compile( script );
Local<Value> result = cs->Run();
2 + 4 = 6ms
67%
NodeJS
NodeJS 4ms
Реальные пользователи
msg_length = 5
msg_1_title = "letter"
msg_1_Unread = 1
Реальные пользователи
msg_length = 5
msg_1_title = "letter"
msg_1_Unread = 1


get('msg_' + i + '_title')
3ms
Реальные пользователи
30 часов одно ядро 2.2 ГГц Xeon
10 000 000+ хитов
1.6ms среднее время трансформации
992 422     10% между         2 и 5ms
208 464     2% между          5 и 10ms
396 49      0,4% больше       10ms
Продакшен,
  главная
50% x3
65+100=165кб
RB lite v8 lite
Почти продакшен
html += "foo";
html += rb(id);
html += "bar";
Почти продакшен
html += "foo";    push_string("foo");
html += rb(id);   push_rb(id);
html += "bar";    push_string("bar");
50% x2
440 000 000
440 000 000
110 000 000
Данные на сегодня
Размер HTML, который генерирует v8 65кб.

Время, работы v8 на запрос 1ms.

В среднем v8 требует 40MB на контекст.
Проблемы v8
http://sysoev.ru/prog/v8.html
Полезные ссылки
— http://code.google.com/p/v8/
— https://github.com/mailru/fest
— http://sysoev.ru/prog/v8.html

Андрей Сумин, andrewsumin@corp.mail.ru
Возможности
    fest
fest:value
<fest:value>json.name</fest:value>
try {
       html += escape(json.name);
} catch(e) {
       log(e.message);
}
fest:value
<fest:value output="text">json.name</fest:value>
try {
       html += json.name;
} catch(e) {
       log(e.message);
}
fest:value
<fest:value safe="true">json.name</fest:value>

html += json.name;
fest:if
<fest:if test="json.condition">…</fest:if>

try{ condition = json.condition } catch(e) { log(e) }

If (condition){ … }
fest:choose
<fest:choose>
       <fest:when test="json.condition">…</fest:when>
       <fest:when test="false">…</fest:when>
       <fest:otherwise>…</fest:otherwise>
</fest:choose>
fest:choose
try{ condition = json.condition } catch(e) { log(e) }
If (condition){…}
else{
       try{ condition = false } catch(e) { log(e) }
       if (condition){}
       else {} }
fest:foreach
<fest:foreach iterate="list" index="i"></fest:foreach>
var i;
try{ foreach = list } catch(e) { foreach=[]; log(e) }
var l = list.length;
for(i = 0; i < l ; i++) { … }
fest:for
<fest:for iterate="hash" index="i"></fest:for>
var i;
try{ for = hash } catch(e) { for={}; log(e) }
for(i in for) { … }
fest:space
<fest:space/>

html += " ";
fest:script
<fest:script> … </fest:script>

try{ … } catch (e) { log(e) }
fest:insert
<script>
       <fest:insert src="script.js"/>
</script>

html += "<script>…</script>";

More Related Content

What's hot

17 - Web-технологии. Real Time сообщения
17 - Web-технологии. Real Time сообщения17 - Web-технологии. Real Time сообщения
17 - Web-технологии. Real Time сообщенияRoman Brovko
 
Everything you wanted to know about writing async, high-concurrency HTTP apps...
Everything you wanted to know about writing async, high-concurrency HTTP apps...Everything you wanted to know about writing async, high-concurrency HTTP apps...
Everything you wanted to know about writing async, high-concurrency HTTP apps...JavaDayUA
 
Примеры быстрой разработки API на масштабируемом сервере приложений Impress д...
Примеры быстрой разработки API на масштабируемом сервере приложений Impress д...Примеры быстрой разработки API на масштабируемом сервере приложений Impress д...
Примеры быстрой разработки API на масштабируемом сервере приложений Impress д...Timur Shemsedinov
 
Компиляция скриптов PHP. Алексей Романенко
Компиляция скриптов PHP. Алексей РоманенкоКомпиляция скриптов PHP. Алексей Романенко
Компиляция скриптов PHP. Алексей РоманенкоFuenteovejuna
 
Владислав Животнев - Основы DNS
Владислав Животнев - Основы DNSВладислав Животнев - Основы DNS
Владислав Животнев - Основы DNSYandex
 
CSSO — сжимаем CSS
CSSO — сжимаем CSSCSSO — сжимаем CSS
CSSO — сжимаем CSSFDConf
 
"Fault tolerant workflow orchestration on PHP", Anton Tsitou
"Fault tolerant workflow orchestration on PHP", Anton Tsitou"Fault tolerant workflow orchestration on PHP", Anton Tsitou
"Fault tolerant workflow orchestration on PHP", Anton TsitouFwdays
 
Алексей Морозов (Россия), Rambler.ru. ASP.NET в помощь хакеру и не только....
Алексей Морозов (Россия), Rambler.ru. ASP.NET в помощь хакеру и не только....Алексей Морозов (Россия), Rambler.ru. ASP.NET в помощь хакеру и не только....
Алексей Морозов (Россия), Rambler.ru. ASP.NET в помощь хакеру и не только....KazHackStan
 
Node.JS: возможности для РНР-разработчика
Node.JS: возможности для РНР-разработчикаNode.JS: возможности для РНР-разработчика
Node.JS: возможности для РНР-разработчикаAlexei Smolyanov
 
Eugene Lisitsky Web Sockets
Eugene Lisitsky Web SocketsEugene Lisitsky Web Sockets
Eugene Lisitsky Web Socketsrit2010
 
Стажировка 2016-07-14 02 Евгений Тарасенко. JavaScript
Стажировка 2016-07-14 02 Евгений Тарасенко. JavaScriptСтажировка 2016-07-14 02 Евгений Тарасенко. JavaScript
Стажировка 2016-07-14 02 Евгений Тарасенко. JavaScriptSmartTools
 
Нейронные сети на JS
Нейронные сети на JSНейронные сети на JS
Нейронные сети на JSVsevolod Rodionov
 
Thumbtack Expertise Days # 5 - Ansible
Thumbtack Expertise Days # 5 - AnsibleThumbtack Expertise Days # 5 - Ansible
Thumbtack Expertise Days # 5 - AnsibleAlexey Remnev
 
04 web server_deployment_ru
04 web server_deployment_ru04 web server_deployment_ru
04 web server_deployment_rumcroitor
 
FrontTalks: Алексей Андросов (Яндекс), «Ошибки, которые мы любим»
FrontTalks: Алексей Андросов (Яндекс), «Ошибки, которые мы любим»FrontTalks: Алексей Андросов (Яндекс), «Ошибки, которые мы любим»
FrontTalks: Алексей Андросов (Яндекс), «Ошибки, которые мы любим»Yandex
 

What's hot (20)

Chef
ChefChef
Chef
 
17 - Web-технологии. Real Time сообщения
17 - Web-технологии. Real Time сообщения17 - Web-технологии. Real Time сообщения
17 - Web-технологии. Real Time сообщения
 
Everything you wanted to know about writing async, high-concurrency HTTP apps...
Everything you wanted to know about writing async, high-concurrency HTTP apps...Everything you wanted to know about writing async, high-concurrency HTTP apps...
Everything you wanted to know about writing async, high-concurrency HTTP apps...
 
Wordpress Cron
Wordpress CronWordpress Cron
Wordpress Cron
 
Примеры быстрой разработки API на масштабируемом сервере приложений Impress д...
Примеры быстрой разработки API на масштабируемом сервере приложений Impress д...Примеры быстрой разработки API на масштабируемом сервере приложений Impress д...
Примеры быстрой разработки API на масштабируемом сервере приложений Impress д...
 
Компиляция скриптов PHP. Алексей Романенко
Компиляция скриптов PHP. Алексей РоманенкоКомпиляция скриптов PHP. Алексей Романенко
Компиляция скриптов PHP. Алексей Романенко
 
Владислав Животнев - Основы DNS
Владислав Животнев - Основы DNSВладислав Животнев - Основы DNS
Владислав Животнев - Основы DNS
 
CSSO — сжимаем CSS
CSSO — сжимаем CSSCSSO — сжимаем CSS
CSSO — сжимаем CSS
 
"Fault tolerant workflow orchestration on PHP", Anton Tsitou
"Fault tolerant workflow orchestration on PHP", Anton Tsitou"Fault tolerant workflow orchestration on PHP", Anton Tsitou
"Fault tolerant workflow orchestration on PHP", Anton Tsitou
 
php frameworks
php frameworksphp frameworks
php frameworks
 
Алексей Морозов (Россия), Rambler.ru. ASP.NET в помощь хакеру и не только....
Алексей Морозов (Россия), Rambler.ru. ASP.NET в помощь хакеру и не только....Алексей Морозов (Россия), Rambler.ru. ASP.NET в помощь хакеру и не только....
Алексей Морозов (Россия), Rambler.ru. ASP.NET в помощь хакеру и не только....
 
Node.JS: возможности для РНР-разработчика
Node.JS: возможности для РНР-разработчикаNode.JS: возможности для РНР-разработчика
Node.JS: возможности для РНР-разработчика
 
WWW
WWWWWW
WWW
 
Eugene Lisitsky Web Sockets
Eugene Lisitsky Web SocketsEugene Lisitsky Web Sockets
Eugene Lisitsky Web Sockets
 
Web sockets
Web socketsWeb sockets
Web sockets
 
Стажировка 2016-07-14 02 Евгений Тарасенко. JavaScript
Стажировка 2016-07-14 02 Евгений Тарасенко. JavaScriptСтажировка 2016-07-14 02 Евгений Тарасенко. JavaScript
Стажировка 2016-07-14 02 Евгений Тарасенко. JavaScript
 
Нейронные сети на JS
Нейронные сети на JSНейронные сети на JS
Нейронные сети на JS
 
Thumbtack Expertise Days # 5 - Ansible
Thumbtack Expertise Days # 5 - AnsibleThumbtack Expertise Days # 5 - Ansible
Thumbtack Expertise Days # 5 - Ansible
 
04 web server_deployment_ru
04 web server_deployment_ru04 web server_deployment_ru
04 web server_deployment_ru
 
FrontTalks: Алексей Андросов (Яндекс), «Ошибки, которые мы любим»
FrontTalks: Алексей Андросов (Яндекс), «Ошибки, которые мы любим»FrontTalks: Алексей Андросов (Яндекс), «Ошибки, которые мы любим»
FrontTalks: Алексей Андросов (Яндекс), «Ошибки, которые мы любим»
 

Viewers also liked

Rapid upgrades with pg upgrade (Bruce Momjian)
Rapid upgrades with pg upgrade (Bruce Momjian)Rapid upgrades with pg upgrade (Bruce Momjian)
Rapid upgrades with pg upgrade (Bruce Momjian)Ontico
 
Зачем переписывать то, что и так работает (Сергей Константинов)
Зачем переписывать то, что и так работает (Сергей Константинов)Зачем переписывать то, что и так работает (Сергей Константинов)
Зачем переписывать то, что и так работает (Сергей Константинов)Ontico
 
Практическое применение семантического анализа для фильтрации трафика (Яков М...
Практическое применение семантического анализа для фильтрации трафика (Яков М...Практическое применение семантического анализа для фильтрации трафика (Яков М...
Практическое применение семантического анализа для фильтрации трафика (Яков М...Ontico
 
Путь самурая: от скрама до канбана (Евгений Кобзев, Александр Кудымов)
Путь самурая: от скрама до канбана (Евгений Кобзев, Александр Кудымов)Путь самурая: от скрама до канбана (Евгений Кобзев, Александр Кудымов)
Путь самурая: от скрама до канбана (Евгений Кобзев, Александр Кудымов)Ontico
 
The next generation of google APIs (Ade Oshineye)
The next generation of google APIs (Ade Oshineye)The next generation of google APIs (Ade Oshineye)
The next generation of google APIs (Ade Oshineye)Ontico
 
Инженерный дзен. Непрерывные изменения (Александр Титов)
Инженерный дзен. Непрерывные изменения (Александр Титов)Инженерный дзен. Непрерывные изменения (Александр Титов)
Инженерный дзен. Непрерывные изменения (Александр Титов)Ontico
 
История одной кнопки или b-form-button.css и b-form-button.js (Елена Глухова,...
История одной кнопки или b-form-button.css и b-form-button.js (Елена Глухова,...История одной кнопки или b-form-button.css и b-form-button.js (Елена Глухова,...
История одной кнопки или b-form-button.css и b-form-button.js (Елена Глухова,...Ontico
 
«Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий П...
«Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий П...«Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий П...
«Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий П...Ontico
 

Viewers also liked (8)

Rapid upgrades with pg upgrade (Bruce Momjian)
Rapid upgrades with pg upgrade (Bruce Momjian)Rapid upgrades with pg upgrade (Bruce Momjian)
Rapid upgrades with pg upgrade (Bruce Momjian)
 
Зачем переписывать то, что и так работает (Сергей Константинов)
Зачем переписывать то, что и так работает (Сергей Константинов)Зачем переписывать то, что и так работает (Сергей Константинов)
Зачем переписывать то, что и так работает (Сергей Константинов)
 
Практическое применение семантического анализа для фильтрации трафика (Яков М...
Практическое применение семантического анализа для фильтрации трафика (Яков М...Практическое применение семантического анализа для фильтрации трафика (Яков М...
Практическое применение семантического анализа для фильтрации трафика (Яков М...
 
Путь самурая: от скрама до канбана (Евгений Кобзев, Александр Кудымов)
Путь самурая: от скрама до канбана (Евгений Кобзев, Александр Кудымов)Путь самурая: от скрама до канбана (Евгений Кобзев, Александр Кудымов)
Путь самурая: от скрама до канбана (Евгений Кобзев, Александр Кудымов)
 
The next generation of google APIs (Ade Oshineye)
The next generation of google APIs (Ade Oshineye)The next generation of google APIs (Ade Oshineye)
The next generation of google APIs (Ade Oshineye)
 
Инженерный дзен. Непрерывные изменения (Александр Титов)
Инженерный дзен. Непрерывные изменения (Александр Титов)Инженерный дзен. Непрерывные изменения (Александр Титов)
Инженерный дзен. Непрерывные изменения (Александр Титов)
 
История одной кнопки или b-form-button.css и b-form-button.js (Елена Глухова,...
История одной кнопки или b-form-button.css и b-form-button.js (Елена Глухова,...История одной кнопки или b-form-button.css и b-form-button.js (Елена Глухова,...
История одной кнопки или b-form-button.css и b-form-button.js (Елена Глухова,...
 
«Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий П...
«Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий П...«Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий П...
«Рамблер Касса» как пример высокопроизводительного проекта на .Net (Дмитрий П...
 

Similar to JavaScript на сервере, 1ms на трансформацию (Андрей Сумин)

Типичный стек технологий для использования с Node.js
Типичный стек технологий для использования с Node.jsТипичный стек технологий для использования с Node.js
Типичный стек технологий для использования с Node.jsSerge Shirokov
 
Js Http Request дмитрий котеров
Js Http Request   дмитрий котеровJs Http Request   дмитрий котеров
Js Http Request дмитрий котеровMedia Gorod
 
ASP.NET MVC - как построить по-настоящему гибкое веб-приложение
ASP.NET MVC - как построить по-настоящему гибкое веб-приложениеASP.NET MVC - как построить по-настоящему гибкое веб-приложение
ASP.NET MVC - как построить по-настоящему гибкое веб-приложениеAlexander Byndyu
 
ZFConf 2010: Zend Framework and Multilingual
ZFConf 2010: Zend Framework and MultilingualZFConf 2010: Zend Framework and Multilingual
ZFConf 2010: Zend Framework and MultilingualZFConf Conference
 
Тестирование программных фильтров безопасности
Тестирование программных фильтров безопасностиТестирование программных фильтров безопасности
Тестирование программных фильтров безопасностиSQALab
 
ZFConf 2010: Zend Framework and Doctrine
ZFConf 2010: Zend Framework and DoctrineZFConf 2010: Zend Framework and Doctrine
ZFConf 2010: Zend Framework and DoctrineZFConf Conference
 
Тестирование программных фильтров безопасности
Тестирование программных фильтров безопасностиТестирование программных фильтров безопасности
Тестирование программных фильтров безопасностиZestranec
 
Взломать Web-сайт на ASP.NET? Сложно, но можно!
Взломать Web-сайт на ASP.NET? Сложно, но можно!Взломать Web-сайт на ASP.NET? Сложно, но можно!
Взломать Web-сайт на ASP.NET? Сложно, но можно!Vladimir Kochetkov
 
Зачем нужна Scala?
Зачем нужна Scala?Зачем нужна Scala?
Зачем нужна Scala?Vasil Remeniuk
 
PHP Tricks
PHP TricksPHP Tricks
PHP TricksBlackFan
 
Семинар-практикум по Drupal
Семинар-практикум по DrupalСеминар-практикум по Drupal
Семинар-практикум по Drupalit-people
 
Unit test быстрый старт
Unit test быстрый стартUnit test быстрый старт
Unit test быстрый стартAntonio
 
Zend Framework и мультиязычность
Zend Framework и мультиязычностьZend Framework и мультиязычность
Zend Framework и мультиязычностьStepan Tanasiychuk
 
Js templating stepan_reznikov
Js templating stepan_reznikovJs templating stepan_reznikov
Js templating stepan_reznikovyaevents
 
Степан Резников "Шаблонизация на клиенте"
Степан Резников "Шаблонизация на клиенте"Степан Резников "Шаблонизация на клиенте"
Степан Резников "Шаблонизация на клиенте"Yandex
 
Формальные методы защиты приложений
Формальные методы защиты приложенийФормальные методы защиты приложений
Формальные методы защиты приложенийPositive Hack Days
 

Similar to JavaScript на сервере, 1ms на трансформацию (Андрей Сумин) (20)

бегун
бегунбегун
бегун
 
бегун
бегунбегун
бегун
 
Типичный стек технологий для использования с Node.js
Типичный стек технологий для использования с Node.jsТипичный стек технологий для использования с Node.js
Типичный стек технологий для использования с Node.js
 
Js Http Request дмитрий котеров
Js Http Request   дмитрий котеровJs Http Request   дмитрий котеров
Js Http Request дмитрий котеров
 
ASP.NET MVC - как построить по-настоящему гибкое веб-приложение
ASP.NET MVC - как построить по-настоящему гибкое веб-приложениеASP.NET MVC - как построить по-настоящему гибкое веб-приложение
ASP.NET MVC - как построить по-настоящему гибкое веб-приложение
 
ZFConf 2010: Zend Framework and Multilingual
ZFConf 2010: Zend Framework and MultilingualZFConf 2010: Zend Framework and Multilingual
ZFConf 2010: Zend Framework and Multilingual
 
Тестирование программных фильтров безопасности
Тестирование программных фильтров безопасностиТестирование программных фильтров безопасности
Тестирование программных фильтров безопасности
 
ZFConf 2010: Zend Framework and Doctrine
ZFConf 2010: Zend Framework and DoctrineZFConf 2010: Zend Framework and Doctrine
ZFConf 2010: Zend Framework and Doctrine
 
Тестирование программных фильтров безопасности
Тестирование программных фильтров безопасностиТестирование программных фильтров безопасности
Тестирование программных фильтров безопасности
 
Взломать Web-сайт на ASP.NET? Сложно, но можно!
Взломать Web-сайт на ASP.NET? Сложно, но можно!Взломать Web-сайт на ASP.NET? Сложно, но можно!
Взломать Web-сайт на ASP.NET? Сложно, но можно!
 
Зачем нужна Scala?
Зачем нужна Scala?Зачем нужна Scala?
Зачем нужна Scala?
 
PHP Tricks
PHP TricksPHP Tricks
PHP Tricks
 
Семинар-практикум по Drupal
Семинар-практикум по DrupalСеминар-практикум по Drupal
Семинар-практикум по Drupal
 
Unit test быстрый старт
Unit test быстрый стартUnit test быстрый старт
Unit test быстрый старт
 
Zend Framework и мультиязычность
Zend Framework и мультиязычностьZend Framework и мультиязычность
Zend Framework и мультиязычность
 
Js templating stepan_reznikov
Js templating stepan_reznikovJs templating stepan_reznikov
Js templating stepan_reznikov
 
Степан Резников "Шаблонизация на клиенте"
Степан Резников "Шаблонизация на клиенте"Степан Резников "Шаблонизация на клиенте"
Степан Резников "Шаблонизация на клиенте"
 
XML Magic
XML MagicXML Magic
XML Magic
 
course js day 2
course js day 2course js day 2
course js day 2
 
Формальные методы защиты приложений
Формальные методы защиты приложенийФормальные методы защиты приложений
Формальные методы защиты приложений
 

More from Ontico

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...Ontico
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Ontico
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Ontico
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Ontico
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Ontico
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)Ontico
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Ontico
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Ontico
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)Ontico
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)Ontico
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Ontico
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Ontico
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Ontico
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Ontico
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)Ontico
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Ontico
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Ontico
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...Ontico
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Ontico
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Ontico
 

More from Ontico (20)

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
 

JavaScript на сервере, 1ms на трансформацию (Андрей Сумин)