SlideShare une entreprise Scribd logo
1  sur  26
StarWars 
^ 
| *---+ 
|| 
|| +-----+ 
|| | | +-------+ 
|| | | | | +---------> 1000,000K 
0=| | | | | | msg/sec 
|| | | | | | 
|| | | | +--------+ 
|| | +------+ 
|+----+ 
| 
v 
BitMining
• 
• 
• 
• 
• 
• 
• 
•
3.MPI 
4.ØMQ, nanomsg, …
XYZ 
+---------+ +--------------+ +-----------+ 
| NGINX | | LINUX KERNEL | | TARANTOOL| 
|---------| |--------------| |-----------| 
| | | | | | 
| | | | | | 
+---------+ +--------------+ +-----------+ 
+--------------------------------------------+ 
| | 
| RAM, a lofof... | 
| DMA_RING| 
+--------------------------------------------+ 
+--------------------------------------------+ 
| PCI Express | 
+--------------------------------------------+ 
+-----+ +------+ +-------+ +----------+ 
| NIC | | DISK | | GPU | | Xeon Phi | 
+-----+ +------+ +-------+ +----------+ 
xyz 
xyz 
xyz
• ≈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

Contenu connexe

Similaire à Highload++2014: 1Hippeus - zerocopy messaging in the spirit of Sparta!

Window functions in MariaDB 10.2
Window functions in MariaDB 10.2Window functions in MariaDB 10.2
Window functions in MariaDB 10.2Sergey Petrunya
 
Homework Assignment 3 Chapter 3 St. Clair & Visick, Putting you.docx
Homework Assignment 3 Chapter 3 St. Clair & Visick, Putting you.docxHomework Assignment 3 Chapter 3 St. Clair & Visick, Putting you.docx
Homework Assignment 3 Chapter 3 St. Clair & Visick, Putting you.docxfideladallimore
 
Optimizing Queries Using Window Functions
Optimizing Queries Using Window FunctionsOptimizing Queries Using Window Functions
Optimizing Queries Using Window FunctionsI Goo Lee
 
Assembly programming on the nand2tetris architecture
Assembly programming on the nand2tetris architectureAssembly programming on the nand2tetris architecture
Assembly programming on the nand2tetris architectureAmy Hanlon
 
IP Addresses
IP AddressesIP Addresses
IP Addressesadil raja
 
Fulltext engine for non fulltext searches
Fulltext engine for non fulltext searchesFulltext engine for non fulltext searches
Fulltext engine for non fulltext searchesAdrian Nuta
 
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 Performanceoysteing
 
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.Mydbops
 
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 1mastertander
 
15 protips for mysql users pfz
15 protips for mysql users   pfz15 protips for mysql users   pfz
15 protips for mysql users pfzJoshua Thijssen
 
4. Data Manipulation.ppt
4. Data Manipulation.ppt4. Data Manipulation.ppt
4. Data Manipulation.pptKISHOYIANKISH
 
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 Shaun Domingo
 
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 queriesDamien Seguy
 
M|18 User Defined Function
M|18 User Defined FunctionM|18 User Defined Function
M|18 User Defined FunctionMariaDB plc
 
Undelete (and more) rows from the binary log
Undelete (and more) rows from the binary logUndelete (and more) rows from the binary log
Undelete (and more) rows from the binary logFrederic Descamps
 

Similaire à Highload++2014: 1Hippeus - zerocopy messaging in the spirit of Sparta! (20)

Window functions in MariaDB 10.2
Window functions in MariaDB 10.2Window functions in MariaDB 10.2
Window functions in MariaDB 10.2
 
Homework Assignment 3 Chapter 3 St. Clair & Visick, Putting you.docx
Homework Assignment 3 Chapter 3 St. Clair & Visick, Putting you.docxHomework Assignment 3 Chapter 3 St. Clair & Visick, Putting you.docx
Homework Assignment 3 Chapter 3 St. Clair & Visick, Putting you.docx
 
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
 
Explain2
Explain2Explain2
Explain2
 
IP Addresses
IP AddressesIP Addresses
IP Addresses
 
Fulltext engine for non fulltext searches
Fulltext engine for non fulltext searchesFulltext engine for non fulltext searches
Fulltext engine for non fulltext searches
 
Rfc 3412
Rfc 3412Rfc 3412
Rfc 3412
 
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
 
Inner Join In Ms Access
Inner Join In Ms AccessInner Join In Ms Access
Inner Join In Ms Access
 
Explain
ExplainExplain
Explain
 
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.
 
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
 
15 protips for mysql users pfz
15 protips for mysql users   pfz15 protips for mysql users   pfz
15 protips for mysql users pfz
 
4. Data Manipulation.ppt
4. Data Manipulation.ppt4. Data Manipulation.ppt
4. Data Manipulation.ppt
 
Chemlb27
Chemlb27Chemlb27
Chemlb27
 
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
 
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
 
M|18 User Defined Function
M|18 User Defined FunctionM|18 User Defined Function
M|18 User Defined Function
 
Undelete (and more) rows from the binary log
Undelete (and more) rows from the binary logUndelete (and more) rows from the binary log
Undelete (and more) rows from the binary log
 

Plus de Leonid Yuriev

libfpta: в памяти, с персистентностью, быстрее хайпа
libfpta: в памяти, с персистентностью, быстрее хайпаlibfpta: в памяти, с персистентностью, быстрее хайпа
libfpta: в памяти, с персистентностью, быстрее хайпаLeonid Yuriev
 
Сегментация и поиск совпадений в бинарном потоке
Сегментация и поиск совпадений в бинарном потокеСегментация и поиск совпадений в бинарном потоке
Сегментация и поиск совпадений в бинарном потокеLeonid Yuriev
 
OSSDEV-2015: ReOpenLDAP
OSSDEV-2015: ReOpenLDAPOSSDEV-2015: ReOpenLDAP
OSSDEV-2015: ReOpenLDAPLeonid Yuriev
 
DevConf-2015: Lightning Memory-Mapped Database (LMDB), ReOpen IT
DevConf-2015: Lightning Memory-Mapped Database (LMDB), ReOpen ITDevConf-2015: Lightning Memory-Mapped Database (LMDB), ReOpen IT
DevConf-2015: Lightning Memory-Mapped Database (LMDB), ReOpen ITLeonid Yuriev
 
Devconf-2014: Ноотропы для BigData
Devconf-2014: Ноотропы для BigDataDevconf-2014: Ноотропы для BigData
Devconf-2014: Ноотропы для BigDataLeonid Yuriev
 
РИТ-2014: Ноотропы RDF для BigData
РИТ-2014: Ноотропы RDF для BigDataРИТ-2014: Ноотропы RDF для BigData
РИТ-2014: Ноотропы RDF для BigDataLeonid Yuriev
 
Highload++2013: TopGun - архитектура терабитной платформы DPI
Highload++2013: TopGun - архитектура терабитной платформы DPIHighload++2013: TopGun - архитектура терабитной платформы DPI
Highload++2013: TopGun - архитектура терабитной платформы DPILeonid Yuriev
 

Plus de Leonid Yuriev (7)

libfpta: в памяти, с персистентностью, быстрее хайпа
libfpta: в памяти, с персистентностью, быстрее хайпаlibfpta: в памяти, с персистентностью, быстрее хайпа
libfpta: в памяти, с персистентностью, быстрее хайпа
 
Сегментация и поиск совпадений в бинарном потоке
Сегментация и поиск совпадений в бинарном потокеСегментация и поиск совпадений в бинарном потоке
Сегментация и поиск совпадений в бинарном потоке
 
OSSDEV-2015: ReOpenLDAP
OSSDEV-2015: ReOpenLDAPOSSDEV-2015: ReOpenLDAP
OSSDEV-2015: ReOpenLDAP
 
DevConf-2015: Lightning Memory-Mapped Database (LMDB), ReOpen IT
DevConf-2015: Lightning Memory-Mapped Database (LMDB), ReOpen ITDevConf-2015: Lightning Memory-Mapped Database (LMDB), ReOpen IT
DevConf-2015: Lightning Memory-Mapped Database (LMDB), ReOpen IT
 
Devconf-2014: Ноотропы для BigData
Devconf-2014: Ноотропы для BigDataDevconf-2014: Ноотропы для BigData
Devconf-2014: Ноотропы для BigData
 
РИТ-2014: Ноотропы RDF для BigData
РИТ-2014: Ноотропы RDF для BigDataРИТ-2014: Ноотропы RDF для BigData
РИТ-2014: Ноотропы RDF для BigData
 
Highload++2013: TopGun - архитектура терабитной платформы DPI
Highload++2013: TopGun - архитектура терабитной платформы DPIHighload++2013: TopGun - архитектура терабитной платформы DPI
Highload++2013: TopGun - архитектура терабитной платформы DPI
 

Dernier

%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park masabamasaba
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastPapp Krisztián
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...masabamasaba
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...Shane Coughlan
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareJim McKeeth
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrandmasabamasaba
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...masabamasaba
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...masabamasaba
 
tonesoftg
tonesoftgtonesoftg
tonesoftglanshi9
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...masabamasaba
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024VictoriaMetrics
 

Dernier (20)

%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 

Highload++2014: 1Hippeus - zerocopy messaging in the spirit of Sparta!

  • 1.
  • 2. StarWars ^ | *---+ || || +-----+ || | | +-------+ || | | | | +---------> 1000,000K 0=| | | | | | msg/sec || | | | | | || | | | +--------+ || | +------+ |+----+ | v BitMining
  • 3. • • • • • • • •
  • 5. 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