SlideShare ist ein Scribd-Unternehmen logo
1 von 26
Downloaden Sie, um offline zu lesen
StarWars 
^ 
| *---+ 
|| 
|| +-----+ 
|| | | +-------+ 
|| | | | | +---------> 1000,000K 
0=| | | | | | msg/sec 
|| | | | | | 
|| | | | +--------+ 
|| | +------+ 
|+----+ 
| 
v 
BitMining
• 
• 
• 
• 
• 
• 
• 
•
XYZ 
+---------+ +--------------+ +-----------+ 
| NGINX | | LINUX KERNEL | | TARANTOOL| 
|---------| |--------------| |-----------| 
| | | | | | 
| | | | | | 
+---------+ +--------------+ +-----------+ 
+--------------------------------------------+ 
| | 
| RAM, a lofof... | 
| DMA_RING| 
+--------------------------------------------+ 
+--------------------------------------------+ 
| PCI Express | 
+--------------------------------------------+ 
+-----+ +------+ +-------+ +----------+ 
| NIC | | DISK | | GPU | | Xeon Phi | 
+-----+ +------+ +-------+ +----------+ 
xyz 
xyz 
xyz
3.MPI 
4.ØMQ, nanomsg, …
• ≈2 
•libt1h.1.0.so 
•
+----------+ 
| PRODUCER| 
|----------| 
| push() | 
+----------+ 
|| 
/ 
+----------+ 
| | 
| QUEUE| 
| | 
+----------+ 
|| 
/ 
+----------+ 
| pull() | 
|----------| 
| CONSUMER| 
+----------+ ↔ ↔ ↔
+----------+ 
| PRODUCER| 
|----------| 
| push() | 
+----------+ 
|| 
/ 
+----------+ 
| | 
| QUEUE| 
| | 
+----------+ 
|| 
/ 
+----------+ 
| pull() | 
|----------| 
| CONSUMER| 
+----------+
HOST_A 
HOST_B 
+----------+ SHARED MEMORY #1 
| PRODUCER| +-------+ 
| push() | ==>> | QUEUE| 
+----------+ +-------+ 
|| 
/ 
+-----------+ 
| pull() | 
| TRANSPORT| 
| push() | 
+-----------+ 
|| 
/ 
+-------+ +----------+ 
| QUEUE| ==>> | CONSUMER| 
+-------+ | pull() | 
SHARED MEMORY #2 +----------+
+---------+ +--------+ 
| QUEUE | | BUFFER | 
|---------| | | 
| 0 | | begin##| 
| 0 | |########| +--------+ 
TAIL-> PTR------->|####end | | BUFFER | 
| PTR| +--------+ | | 
| ... | | begin##| 
| PTR------->+--------+ |########| 
HEAD-> 0 | | BUFFER | |########| 
| 0 | | chunk1----->|####end | 
| 0 | | chunk2| +--------+ 
| 0 | | ... | 
+---------+ | chunkN----->+--------+ 
| | | BUFFER | 
+--------+ | | 
| begin##| 
|####end | 
+--------+
TAGGET_POINTER:= pointer | flags 
+---------+ 
| POINTER | 
|---------| 
| | ALIEN 
| bit_0 | SLIM 
| bit_1 | => PARCEL 
| bit_2 | INCORPOREAL 
| | ... 
| bit_3 |  
| ... | +--------+ 
| | ------------->| BUFFER | 
| | / |--------| 
| | / | | 
+---------+ | data | 
| | 
+--------+
+-------------+ +-------------+ +-------------+ 
| 1) SOLID| | 2) INDIRECT| | 3) WEAK| 
|-------------| |-------------| |-------------| 
| ref_counter| | ref_counter| | ref_counter| 
| tag | | tag | | tag | 
| _data >---------+ | _data>---------+ | _data>-----|--> ?.. 
| | | +-------------+ | | VMT| 
| -----------| | | +----------+--+ 
| |<--+ +-----------+ | | 
| | | | | | 
| space | | sk_buff|<--+ v 
| | | | class my_buffer 
| | +-----------+ : public T1H::buffer { 
| | 
| | 
| | virtual~my_buffer(); 
| | }; 
| | 
+-------------+
SERVERCOMMON / SHARED 
+--------+ +----------------+ 
| OBJECT | = CreateObject(TypeId,------>| BINDER| 
|--------| "libprovider.so"); |----------------| 
| Body |<----------------------------------------| | 
| TypeId| | TypeId| 
| Handle >----------------+ | Handle | 
+--------+ | | libprovider.so| 
| | Body ---------------+ 
|| | | 
| | | v 
CLIENT| | +----------------------+ 
+--------+ v | | OBJECT's SHARED BODY | 
| OBJECT | = TakeObject(Handle); ----------------->| |----------------------| 
|--------| | | oxoo.... .... .... | 
| TypeId|<------------------------------o---------| | xxox.... .... .... | 
| Body | | +--| oooo.... .... .... | 
| Handle | +----------------+ | | | 
| Code |<---| libprovider.so |<--load--+ | data .... .... .... | 
+--------+ +----------------+ +----------------------+
t1h::thread_assign_policy(HIPPEUS_WAITFREE); 
v 
| 
+---------+ | 
| TLS| | 
|---------| | 
| policy| <-----------+ 
+----index| 
| +---------+ 
| 
| 
| +--------------------------- 
| | QUEUE 
| |------------------------- 
| | 
| | +------------+ 
+---->| ACTOR SLOT| 
| |------------| 
| | futex| 
| | tid| 
| | ... | 
| +------------+ 
| 
|
void my_service::process(t1h::junction &io) 
{ 
t1h::batcher batch(io); 
while(msg= batch.pull()) { 
/* ... */ 
batch.push(msg); ----------------+ 
} | 
/* batcher's destructorhere */ | 
} | 
| 
| 
commit/flush* | 
| +---------------+ | 
| | ON STACK FIFO |<---+ 
| +---------------+ 
v 
+-------+ 
| QUEUE | 
+-------+
+-------------------------------------+ 
| ALLOT | 
|-------------------------------------| 
| battery | 
+---------+ +---------+ +---------+ 
| DEPOT_1| | DEPOT_2 | | DEPOT16 | 
|---------| |---------| ... |---------| 
| 256 | | 512 | | 16M | 
+---------+ +---------+ +---------+ 
+----------+ +------------+ +----+ +----+ 
| BASKET_1| | ACTOR SLOT |+ |TILE| |TILE| 
|----------|+ |------------||+ |----|...|----| 
| usual || | |||+ | | | | 
+----------+|+ | CACHE FIFO |||| +----+ +----+ 
| reserve || | ........ |||| 
+----------+|+ | ..BBBBBB |||| +----+ +----+ 
|dedicated || | BBBBB... |||| |TILE| |TILE| 
+----------+| | |||| |----|...|----| 
| offline | +------------+||| |BBBB| |BBBB| 
+----------+ +------------+|| +----+ +----+ 
+------------+| 
+------------+
+----------+ +----------+ 
| JUNCTION | | JUNCTION | 
|----------| |----------| 
| | | | 
| in <<<<<<<<<<<QUEUE<<<<<<<<<<< out | 
| | | | 
| out >>>>>>>>>>>QUEUE>>>>>>>>>>>in| 
| | | | 
| allot ------------+ +----------allot | 
| | | | | | 
| options| | | | options| 
| | v v| | 
+----------+ +-------------+ +----------+ 
| ALLOCATOR | 
|-------------| 
| BUF BUFBUF| 
| BUF BUFBUF| 
| | 
| BUF BUFBUF| 
| BUF BUFBUF| 
+-------------+ 
• 
• 
• 
•
+----------1 +----------1 
| PRODUCER |2 | CONSUMER |2 
|----------||3 |----------||3 
| push()|||4 | pull()|||4 
+----------+||| +----------+||| 
+----------+|| +----------+|| 
+----------+| +----------+| 
+----------+ +----------+ 
v ^ 
| | 
| | 
| +-------+ | 
| | QUEUE| | 
| |-------| | 
+-------> | | >------+ 
| | 
+-------+
ØMQ,
•R&D подразделение в Сколково 
•решения для крупных операторов связи: BSS,Telcoprotocols, BigData, HA & Highload 
•≈ 21 годполного цикла: разработка, внедрение и сопровождение 
•более 100 миллионов абонентовобслуживается при участии наших систем 
http://www.billing.ru
https://github.com/1Hippeus

Weitere ähnliche Inhalte

Ähnlich wie 1Hippeus - zerocopy messaging по законам Спарты, Леонид Юрьев (ПЕТЕР-СЕРВИС)

Li jie carlo domeniconi - koyunbaba op 19 - parte 1
Li jie   carlo domeniconi - koyunbaba op 19 - parte 1Li jie   carlo domeniconi - koyunbaba op 19 - parte 1
Li jie carlo domeniconi - koyunbaba op 19 - parte 1
mastertander
 
15 protips for mysql users pfz
15 protips for mysql users   pfz15 protips for mysql users   pfz
15 protips for mysql users pfz
Joshua Thijssen
 

Ähnlich wie 1Hippeus - zerocopy messaging по законам Спарты, Леонид Юрьев (ПЕТЕР-СЕРВИС) (20)

Optimizing Queries Using Window Functions
Optimizing Queries Using Window FunctionsOptimizing Queries Using Window Functions
Optimizing Queries Using Window Functions
 
Assembly programming on the nand2tetris architecture
Assembly programming on the nand2tetris architectureAssembly programming on the nand2tetris architecture
Assembly programming on the nand2tetris architecture
 
IP Addresses
IP AddressesIP Addresses
IP Addresses
 
Explain
ExplainExplain
Explain
 
Inner Join In Ms Access
Inner Join In Ms AccessInner Join In Ms Access
Inner Join In Ms Access
 
Fulltext engine for non fulltext searches
Fulltext engine for non fulltext searchesFulltext engine for non fulltext searches
Fulltext engine for non fulltext searches
 
Li jie carlo domeniconi - koyunbaba op 19 - parte 1
Li jie   carlo domeniconi - koyunbaba op 19 - parte 1Li jie   carlo domeniconi - koyunbaba op 19 - parte 1
Li jie carlo domeniconi - koyunbaba op 19 - parte 1
 
Using Optimizer Hints to Improve MySQL Query Performance
Using Optimizer Hints to Improve MySQL Query PerformanceUsing Optimizer Hints to Improve MySQL Query Performance
Using Optimizer Hints to Improve MySQL Query Performance
 
Rfc 3412
Rfc 3412Rfc 3412
Rfc 3412
 
Modern query optimisation features in MySQL 8.
Modern query optimisation features in MySQL 8.Modern query optimisation features in MySQL 8.
Modern query optimisation features in MySQL 8.
 
15 protips for mysql users pfz
15 protips for mysql users   pfz15 protips for mysql users   pfz
15 protips for mysql users pfz
 
CoreOS in anger : firing up wordpress across a 3 machine CoreOS cluster
CoreOS in anger : firing up wordpress across a 3 machine CoreOS cluster CoreOS in anger : firing up wordpress across a 3 machine CoreOS cluster
CoreOS in anger : firing up wordpress across a 3 machine CoreOS cluster
 
Functional Database Strategies
Functional Database StrategiesFunctional Database Strategies
Functional Database Strategies
 
The two little bugs that almost brought down Booking.com
The two little bugs that almost brought down Booking.comThe two little bugs that almost brought down Booking.com
The two little bugs that almost brought down Booking.com
 
M|18 User Defined Function
M|18 User Defined FunctionM|18 User Defined Function
M|18 User Defined Function
 
MySQL Kitchen : spice up your everyday SQL queries
MySQL Kitchen : spice up your everyday SQL queriesMySQL Kitchen : spice up your everyday SQL queries
MySQL Kitchen : spice up your everyday SQL queries
 
4. Data Manipulation.ppt
4. Data Manipulation.ppt4. Data Manipulation.ppt
4. Data Manipulation.ppt
 
Columnstore
ColumnstoreColumnstore
Columnstore
 
Machine learning for developers
Machine learning for developersMachine learning for developers
Machine learning for developers
 
Chemlb27
Chemlb27Chemlb27
Chemlb27
 

Mehr von Ontico

Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Ontico
 

Mehr von 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...
 

Kürzlich hochgeladen

一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
pxcywzqs
 
Russian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Russian Escort Abu Dhabi 0503464457 Abu DHabi EscortsRussian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Russian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Monica Sydney
 
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
gajnagarg
 
Abu Dhabi Escorts Service 0508644382 Escorts in Abu Dhabi
Abu Dhabi Escorts Service 0508644382 Escorts in Abu DhabiAbu Dhabi Escorts Service 0508644382 Escorts in Abu Dhabi
Abu Dhabi Escorts Service 0508644382 Escorts in Abu Dhabi
Monica Sydney
 
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdfpdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
JOHNBEBONYAP1
 
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
ayvbos
 
一比一原版田纳西大学毕业证如何办理
一比一原版田纳西大学毕业证如何办理一比一原版田纳西大学毕业证如何办理
一比一原版田纳西大学毕业证如何办理
F
 
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girlsRussian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
Monica Sydney
 
call girls in Anand Vihar (delhi) call me [🔝9953056974🔝] escort service 24X7
call girls in Anand Vihar (delhi) call me [🔝9953056974🔝] escort service 24X7call girls in Anand Vihar (delhi) call me [🔝9953056974🔝] escort service 24X7
call girls in Anand Vihar (delhi) call me [🔝9953056974🔝] escort service 24X7
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 

Kürzlich hochgeladen (20)

一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
 
Ballia Escorts Service Girl ^ 9332606886, WhatsApp Anytime Ballia
Ballia Escorts Service Girl ^ 9332606886, WhatsApp Anytime BalliaBallia Escorts Service Girl ^ 9332606886, WhatsApp Anytime Ballia
Ballia Escorts Service Girl ^ 9332606886, WhatsApp Anytime Ballia
 
Russian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Russian Escort Abu Dhabi 0503464457 Abu DHabi EscortsRussian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Russian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
 
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
 
20240508 QFM014 Elixir Reading List April 2024.pdf
20240508 QFM014 Elixir Reading List April 2024.pdf20240508 QFM014 Elixir Reading List April 2024.pdf
20240508 QFM014 Elixir Reading List April 2024.pdf
 
Abu Dhabi Escorts Service 0508644382 Escorts in Abu Dhabi
Abu Dhabi Escorts Service 0508644382 Escorts in Abu DhabiAbu Dhabi Escorts Service 0508644382 Escorts in Abu Dhabi
Abu Dhabi Escorts Service 0508644382 Escorts in Abu Dhabi
 
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdfpdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
 
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
 
Best SEO Services Company in Dallas | Best SEO Agency Dallas
Best SEO Services Company in Dallas | Best SEO Agency DallasBest SEO Services Company in Dallas | Best SEO Agency Dallas
Best SEO Services Company in Dallas | Best SEO Agency Dallas
 
Call girls Service in Ajman 0505086370 Ajman call girls
Call girls Service in Ajman 0505086370 Ajman call girlsCall girls Service in Ajman 0505086370 Ajman call girls
Call girls Service in Ajman 0505086370 Ajman call girls
 
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
 
一比一原版田纳西大学毕业证如何办理
一比一原版田纳西大学毕业证如何办理一比一原版田纳西大学毕业证如何办理
一比一原版田纳西大学毕业证如何办理
 
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime NagercoilNagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
 
Tadepalligudem Escorts Service Girl ^ 9332606886, WhatsApp Anytime Tadepallig...
Tadepalligudem Escorts Service Girl ^ 9332606886, WhatsApp Anytime Tadepallig...Tadepalligudem Escorts Service Girl ^ 9332606886, WhatsApp Anytime Tadepallig...
Tadepalligudem Escorts Service Girl ^ 9332606886, WhatsApp Anytime Tadepallig...
 
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
 
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girlsRussian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
 
Local Call Girls in Seoni 9332606886 HOT & SEXY Models beautiful and charmin...
Local Call Girls in Seoni  9332606886 HOT & SEXY Models beautiful and charmin...Local Call Girls in Seoni  9332606886 HOT & SEXY Models beautiful and charmin...
Local Call Girls in Seoni 9332606886 HOT & SEXY Models beautiful and charmin...
 
"Boost Your Digital Presence: Partner with a Leading SEO Agency"
"Boost Your Digital Presence: Partner with a Leading SEO Agency""Boost Your Digital Presence: Partner with a Leading SEO Agency"
"Boost Your Digital Presence: Partner with a Leading SEO Agency"
 
call girls in Anand Vihar (delhi) call me [🔝9953056974🔝] escort service 24X7
call girls in Anand Vihar (delhi) call me [🔝9953056974🔝] escort service 24X7call girls in Anand Vihar (delhi) call me [🔝9953056974🔝] escort service 24X7
call girls in Anand Vihar (delhi) call me [🔝9953056974🔝] escort service 24X7
 
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
 

1Hippeus - zerocopy messaging по законам Спарты, Леонид Юрьев (ПЕТЕР-СЕРВИС)

  • 1.
  • 2. StarWars ^ | *---+ || || +-----+ || | | +-------+ || | | | | +---------> 1000,000K 0=| | | | | | msg/sec || | | | | | || | | | +--------+ || | +------+ |+----+ | v BitMining
  • 3. • • • • • • • •
  • 4. XYZ +---------+ +--------------+ +-----------+ | NGINX | | LINUX KERNEL | | TARANTOOL| |---------| |--------------| |-----------| | | | | | | | | | | | | +---------+ +--------------+ +-----------+ +--------------------------------------------+ | | | RAM, a lofof... | | DMA_RING| +--------------------------------------------+ +--------------------------------------------+ | PCI Express | +--------------------------------------------+ +-----+ +------+ +-------+ +----------+ | NIC | | DISK | | GPU | | Xeon Phi | +-----+ +------+ +-------+ +----------+ xyz xyz xyz
  • 6.
  • 7.
  • 9. +----------+ | PRODUCER| |----------| | push() | +----------+ || / +----------+ | | | QUEUE| | | +----------+ || / +----------+ | pull() | |----------| | CONSUMER| +----------+ ↔ ↔ ↔
  • 10. +----------+ | PRODUCER| |----------| | push() | +----------+ || / +----------+ | | | QUEUE| | | +----------+ || / +----------+ | pull() | |----------| | CONSUMER| +----------+
  • 11. HOST_A HOST_B +----------+ SHARED MEMORY #1 | PRODUCER| +-------+ | push() | ==>> | QUEUE| +----------+ +-------+ || / +-----------+ | pull() | | TRANSPORT| | push() | +-----------+ || / +-------+ +----------+ | QUEUE| ==>> | CONSUMER| +-------+ | pull() | SHARED MEMORY #2 +----------+
  • 12. +---------+ +--------+ | QUEUE | | BUFFER | |---------| | | | 0 | | begin##| | 0 | |########| +--------+ TAIL-> PTR------->|####end | | BUFFER | | PTR| +--------+ | | | ... | | begin##| | PTR------->+--------+ |########| HEAD-> 0 | | BUFFER | |########| | 0 | | chunk1----->|####end | | 0 | | chunk2| +--------+ | 0 | | ... | +---------+ | chunkN----->+--------+ | | | BUFFER | +--------+ | | | begin##| |####end | +--------+
  • 13. TAGGET_POINTER:= pointer | flags +---------+ | POINTER | |---------| | | ALIEN | bit_0 | SLIM | bit_1 | => PARCEL | bit_2 | INCORPOREAL | | ... | bit_3 | | ... | +--------+ | | ------------->| BUFFER | | | / |--------| | | / | | +---------+ | data | | | +--------+
  • 14. +-------------+ +-------------+ +-------------+ | 1) SOLID| | 2) INDIRECT| | 3) WEAK| |-------------| |-------------| |-------------| | ref_counter| | ref_counter| | ref_counter| | tag | | tag | | tag | | _data >---------+ | _data>---------+ | _data>-----|--> ?.. | | | +-------------+ | | VMT| | -----------| | | +----------+--+ | |<--+ +-----------+ | | | | | | | | | space | | sk_buff|<--+ v | | | | class my_buffer | | +-----------+ : public T1H::buffer { | | | | | | virtual~my_buffer(); | | }; | | +-------------+
  • 15. SERVERCOMMON / SHARED +--------+ +----------------+ | OBJECT | = CreateObject(TypeId,------>| BINDER| |--------| "libprovider.so"); |----------------| | Body |<----------------------------------------| | | TypeId| | TypeId| | Handle >----------------+ | Handle | +--------+ | | libprovider.so| | | Body ---------------+ || | | | | | v CLIENT| | +----------------------+ +--------+ v | | OBJECT's SHARED BODY | | OBJECT | = TakeObject(Handle); ----------------->| |----------------------| |--------| | | oxoo.... .... .... | | TypeId|<------------------------------o---------| | xxox.... .... .... | | Body | | +--| oooo.... .... .... | | Handle | +----------------+ | | | | Code |<---| libprovider.so |<--load--+ | data .... .... .... | +--------+ +----------------+ +----------------------+
  • 16. t1h::thread_assign_policy(HIPPEUS_WAITFREE); v | +---------+ | | TLS| | |---------| | | policy| <-----------+ +----index| | +---------+ | | | +--------------------------- | | QUEUE | |------------------------- | | | | +------------+ +---->| ACTOR SLOT| | |------------| | | futex| | | tid| | | ... | | +------------+ | |
  • 17. void my_service::process(t1h::junction &io) { t1h::batcher batch(io); while(msg= batch.pull()) { /* ... */ batch.push(msg); ----------------+ } | /* batcher's destructorhere */ | } | | | commit/flush* | | +---------------+ | | | ON STACK FIFO |<---+ | +---------------+ v +-------+ | QUEUE | +-------+
  • 18.
  • 19. +-------------------------------------+ | ALLOT | |-------------------------------------| | battery | +---------+ +---------+ +---------+ | DEPOT_1| | DEPOT_2 | | DEPOT16 | |---------| |---------| ... |---------| | 256 | | 512 | | 16M | +---------+ +---------+ +---------+ +----------+ +------------+ +----+ +----+ | BASKET_1| | ACTOR SLOT |+ |TILE| |TILE| |----------|+ |------------||+ |----|...|----| | usual || | |||+ | | | | +----------+|+ | CACHE FIFO |||| +----+ +----+ | reserve || | ........ |||| +----------+|+ | ..BBBBBB |||| +----+ +----+ |dedicated || | BBBBB... |||| |TILE| |TILE| +----------+| | |||| |----|...|----| | offline | +------------+||| |BBBB| |BBBB| +----------+ +------------+|| +----+ +----+ +------------+| +------------+
  • 20. +----------+ +----------+ | JUNCTION | | JUNCTION | |----------| |----------| | | | | | in <<<<<<<<<<<QUEUE<<<<<<<<<<< out | | | | | | out >>>>>>>>>>>QUEUE>>>>>>>>>>>in| | | | | | allot ------------+ +----------allot | | | | | | | | options| | | | options| | | v v| | +----------+ +-------------+ +----------+ | ALLOCATOR | |-------------| | BUF BUFBUF| | BUF BUFBUF| | | | BUF BUFBUF| | BUF BUFBUF| +-------------+ • • • •
  • 21.
  • 22. +----------1 +----------1 | PRODUCER |2 | CONSUMER |2 |----------||3 |----------||3 | push()|||4 | pull()|||4 +----------+||| +----------+||| +----------+|| +----------+|| +----------+| +----------+| +----------+ +----------+ v ^ | | | | | +-------+ | | | QUEUE| | | |-------| | +-------> | | >------+ | | +-------+
  • 23.
  • 24. ØMQ,
  • 25. •R&D подразделение в Сколково •решения для крупных операторов связи: BSS,Telcoprotocols, BigData, HA & Highload •≈ 21 годполного цикла: разработка, внедрение и сопровождение •более 100 миллионов абонентовобслуживается при участии наших систем http://www.billing.ru