Модель параллельных вычислений на основе акторов была предложена в 1973 г. Модель предоставляет собой элегантный и выразительный формализм для описания и разработки асинхронных параллельных распределённых систем. Одной из наиболее популярных и зарекомендовавших себя реализаций модели является среда выполнения Erlang, успешно использующаяся во многих промышленных системах.
Мы рассмотрим модель акторов и опыт промышленного использования её реализации на языке Scala в фреймворке Akka, позаимствовавшем успешные решения из мира Erlang, на примере систем потоковой обработки данных, разрабатываемых в Яндекс.
Несмотря на многие достоинства, которыми обладает модель акторов, разработчикам приходится самостоятельно решать задачи, возникающие на практике и связанные с ограничениями и допущениями модели акторов, её конкретной реализации и распределенных систем в целом.
2024 State of Marketing Report – by HubspotMarius Sescu
https://www.hubspot.com/state-of-marketing
· Scaling relationships and proving ROI
· Social media is the place for search, sales, and service
· Authentic influencer partnerships fuel brand growth
· The strongest connections happen via call, click, chat, and camera.
· Time saved with AI leads to more creative work
· Seeking: A single source of truth
· TLDR; Get on social, try AI, and align your systems.
· More human marketing, powered by robots
ChatGPT is a revolutionary addition to the world since its introduction in 2022. A big shift in the sector of information gathering and processing happened because of this chatbot. What is the story of ChatGPT? How is the bot responding to prompts and generating contents? Swipe through these slides prepared by Expeed Software, a web development company regarding the development and technical intricacies of ChatGPT!
2024 State of Marketing Report – by HubspotMarius Sescu
https://www.hubspot.com/state-of-marketing
· Scaling relationships and proving ROI
· Social media is the place for search, sales, and service
· Authentic influencer partnerships fuel brand growth
· The strongest connections happen via call, click, chat, and camera.
· Time saved with AI leads to more creative work
· Seeking: A single source of truth
· TLDR; Get on social, try AI, and align your systems.
· More human marketing, powered by robots
ChatGPT is a revolutionary addition to the world since its introduction in 2022. A big shift in the sector of information gathering and processing happened because of this chatbot. What is the story of ChatGPT? How is the bot responding to prompts and generating contents? Swipe through these slides prepared by Expeed Software, a web development company regarding the development and technical intricacies of ChatGPT!
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
The realm of product design is a constantly changing environment where technology and style intersect. Every year introduces fresh challenges and exciting trends that mold the future of this captivating art form. In this piece, we delve into the significant trends set to influence the look and functionality of product design in the year 2024.
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
Mental health has been in the news quite a bit lately. Dozens of U.S. states are currently suing Meta for contributing to the youth mental health crisis by inserting addictive features into their products, while the U.S. Surgeon General is touring the nation to bring awareness to the growing epidemic of loneliness and isolation. The country has endured periods of low national morale, such as in the 1970s when high inflation and the energy crisis worsened public sentiment following the Vietnam War. The current mood, however, feels different. Gallup recently reported that national mental health is at an all-time low, with few bright spots to lift spirits.
To better understand how Americans are feeling and their attitudes towards mental health in general, ThinkNow conducted a nationally representative quantitative survey of 1,500 respondents and found some interesting differences among ethnic, age and gender groups.
Technology
For example, 52% agree that technology and social media have a negative impact on mental health, but when broken out by race, 61% of Whites felt technology had a negative effect, and only 48% of Hispanics thought it did.
While technology has helped us keep in touch with friends and family in faraway places, it appears to have degraded our ability to connect in person. Staying connected online is a double-edged sword since the same news feed that brings us pictures of the grandkids and fluffy kittens also feeds us news about the wars in Israel and Ukraine, the dysfunction in Washington, the latest mass shooting and the climate crisis.
Hispanics may have a built-in defense against the isolation technology breeds, owing to their large, multigenerational households, strong social support systems, and tendency to use social media to stay connected with relatives abroad.
Age and Gender
When asked how individuals rate their mental health, men rate it higher than women by 11 percentage points, and Baby Boomers rank it highest at 83%, saying it’s good or excellent vs. 57% of Gen Z saying the same.
Gen Z spends the most amount of time on social media, so the notion that social media negatively affects mental health appears to be correlated. Unfortunately, Gen Z is also the generation that’s least comfortable discussing mental health concerns with healthcare professionals. Only 40% of them state they’re comfortable discussing their issues with a professional compared to 60% of Millennials and 65% of Boomers.
Race Affects Attitudes
As seen in previous research conducted by ThinkNow, Asian Americans lag other groups when it comes to awareness of mental health issues. Twenty-four percent of Asian Americans believe that having a mental health issue is a sign of weakness compared to the 16% average for all groups. Asians are also considerably less likely to be aware of mental health services in their communities (42% vs. 55%) and most likely to seek out information on social media (51% vs. 35%).
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
This article is all about what AI trends will emerge in the field of creative operations in 2024. All the marketers and brand builders should be aware of these trends for their further use and save themselves some time!
A report by thenetworkone and Kurio.
The contributing experts and agencies are (in an alphabetical order): Sylwia Rytel, Social Media Supervisor, 180heartbeats + JUNG v MATT (PL), Sharlene Jenner, Vice President - Director of Engagement Strategy, Abelson Taylor (USA), Alex Casanovas, Digital Director, Atrevia (ES), Dora Beilin, Senior Social Strategist, Barrett Hoffher (USA), Min Seo, Campaign Director, Brand New Agency (KR), Deshé M. Gully, Associate Strategist, Day One Agency (USA), Francesca Trevisan, Strategist, Different (IT), Trevor Crossman, CX and Digital Transformation Director; Olivia Hussey, Strategic Planner; Simi Srinarula, Social Media Manager, The Hallway (AUS), James Hebbert, Managing Director, Hylink (CN / UK), Mundy Álvarez, Planning Director; Pedro Rojas, Social Media Manager; Pancho González, CCO, Inbrax (CH), Oana Oprea, Head of Digital Planning, Jam Session Agency (RO), Amy Bottrill, Social Account Director, Launch (UK), Gaby Arriaga, Founder, Leonardo1452 (MX), Shantesh S Row, Creative Director, Liwa (UAE), Rajesh Mehta, Chief Strategy Officer; Dhruv Gaur, Digital Planning Lead; Leonie Mergulhao, Account Supervisor - Social Media & PR, Medulla (IN), Aurelija Plioplytė, Head of Digital & Social, Not Perfect (LI), Daiana Khaidargaliyeva, Account Manager, Osaka Labs (UK / USA), Stefanie Söhnchen, Vice President Digital, PIABO Communications (DE), Elisabeth Winiartati, Managing Consultant, Head of Global Integrated Communications; Lydia Aprina, Account Manager, Integrated Marketing and Communications; Nita Prabowo, Account Manager, Integrated Marketing and Communications; Okhi, Web Developer, PNTR Group (ID), Kei Obusan, Insights Director; Daffi Ranandi, Insights Manager, Radarr (SG), Gautam Reghunath, Co-founder & CEO, Talented (IN), Donagh Humphreys, Head of Social and Digital Innovation, THINKHOUSE (IRE), Sarah Yim, Strategy Director, Zulu Alpha Kilo (CA).
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
The search marketing landscape is evolving rapidly with new technologies, and professionals, like you, rely on innovative paid search strategies to meet changing demands.
It’s important that you’re ready to implement new strategies in 2024.
Check this out and learn the top trends in paid search advertising that are expected to gain traction, so you can drive higher ROI more efficiently in 2024.
You’ll learn:
- The latest trends in AI and automation, and what this means for an evolving paid search ecosystem.
- New developments in privacy and data regulation.
- Emerging ad formats that are expected to make an impact next year.
Watch Sreekant Lanka from iQuanti and Irina Klein from OneMain Financial as they dive into the future of paid search and explore the trends, strategies, and technologies that will shape the search marketing landscape.
If you’re looking to assess your paid search strategy and design an industry-aligned plan for 2024, then this webinar is for you.
5 Public speaking tips from TED - Visualized summarySpeakerHub
From their humble beginnings in 1984, TED has grown into the world’s most powerful amplifier for speakers and thought-leaders to share their ideas. They have over 2,400 filmed talks (not including the 30,000+ TEDx videos) freely available online, and have hosted over 17,500 events around the world.
With over one billion views in a year, it’s no wonder that so many speakers are looking to TED for ideas on how to share their message more effectively.
The article “5 Public-Speaking Tips TED Gives Its Speakers”, by Carmine Gallo for Forbes, gives speakers five practical ways to connect with their audience, and effectively share their ideas on stage.
Whether you are gearing up to get on a TED stage yourself, or just want to master the skills that so many of their speakers possess, these tips and quotes from Chris Anderson, the TED Talks Curator, will encourage you to make the most impactful impression on your audience.
See the full article and more summaries like this on SpeakerHub here: https://speakerhub.com/blog/5-presentation-tips-ted-gives-its-speakers
See the original article on Forbes here:
http://www.forbes.com/forbes/welcome/?toURL=http://www.forbes.com/sites/carminegallo/2016/05/06/5-public-speaking-tips-ted-gives-its-speakers/&refURL=&referrer=#5c07a8221d9b
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
Everyone is in agreement that ChatGPT (and other generative AI tools) will shape the future of work. Yet there is little consensus on exactly how, when, and to what extent this technology will change our world.
Businesses that extract maximum value from ChatGPT will use it as a collaborative tool for everything from brainstorming to technical maintenance.
For individuals, now is the time to pinpoint the skills the future professional will need to thrive in the AI age.
Check out this presentation to understand what ChatGPT is, how it will shape the future of work, and how you can prepare to take advantage.
A brief introduction to DataScience with explaining of the concepts, algorithms, machine learning, supervised and unsupervised learning, clustering, statistics, data preprocessing, real-world applications etc.
It's part of a Data Science Corner Campaign where I will be discussing the fundamentals of DataScience, AIML, Statistics etc.
Time Management & Productivity - Best PracticesVit Horky
Here's my presentation on by proven best practices how to manage your work time effectively and how to improve your productivity. It includes practical tips and how to use tools such as Slack, Google Apps, Hubspot, Google Calendar, Gmail and others.
The six step guide to practical project managementMindGenius
The six step guide to practical project management
If you think managing projects is too difficult, think again.
We’ve stripped back project management processes to the
basics – to make it quicker and easier, without sacrificing
the vital ingredients for success.
“If you’re looking for some real-world guidance, then The Six Step Guide to Practical Project Management will help.”
Dr Andrew Makar, Tactical Project Management
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
During this webinar, Anand Bagmar demonstrates how AI tools such as ChatGPT can be applied to various stages of the software development life cycle (SDLC) using an eCommerce application case study. Find the on-demand recording and more info at https://applitools.info/b59
Key takeaways:
• Learn how to use ChatGPT to add AI power to your testing and test automation
• Understand the limitations of the technology and where human expertise is crucial
• Gain insight into different AI-based tools
• Adopt AI-based tools to stay relevant and optimize work for developers and testers
* ChatGPT and OpenAI belong to OpenAI, L.L.C.
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
The realm of product design is a constantly changing environment where technology and style intersect. Every year introduces fresh challenges and exciting trends that mold the future of this captivating art form. In this piece, we delve into the significant trends set to influence the look and functionality of product design in the year 2024.
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
Mental health has been in the news quite a bit lately. Dozens of U.S. states are currently suing Meta for contributing to the youth mental health crisis by inserting addictive features into their products, while the U.S. Surgeon General is touring the nation to bring awareness to the growing epidemic of loneliness and isolation. The country has endured periods of low national morale, such as in the 1970s when high inflation and the energy crisis worsened public sentiment following the Vietnam War. The current mood, however, feels different. Gallup recently reported that national mental health is at an all-time low, with few bright spots to lift spirits.
To better understand how Americans are feeling and their attitudes towards mental health in general, ThinkNow conducted a nationally representative quantitative survey of 1,500 respondents and found some interesting differences among ethnic, age and gender groups.
Technology
For example, 52% agree that technology and social media have a negative impact on mental health, but when broken out by race, 61% of Whites felt technology had a negative effect, and only 48% of Hispanics thought it did.
While technology has helped us keep in touch with friends and family in faraway places, it appears to have degraded our ability to connect in person. Staying connected online is a double-edged sword since the same news feed that brings us pictures of the grandkids and fluffy kittens also feeds us news about the wars in Israel and Ukraine, the dysfunction in Washington, the latest mass shooting and the climate crisis.
Hispanics may have a built-in defense against the isolation technology breeds, owing to their large, multigenerational households, strong social support systems, and tendency to use social media to stay connected with relatives abroad.
Age and Gender
When asked how individuals rate their mental health, men rate it higher than women by 11 percentage points, and Baby Boomers rank it highest at 83%, saying it’s good or excellent vs. 57% of Gen Z saying the same.
Gen Z spends the most amount of time on social media, so the notion that social media negatively affects mental health appears to be correlated. Unfortunately, Gen Z is also the generation that’s least comfortable discussing mental health concerns with healthcare professionals. Only 40% of them state they’re comfortable discussing their issues with a professional compared to 60% of Millennials and 65% of Boomers.
Race Affects Attitudes
As seen in previous research conducted by ThinkNow, Asian Americans lag other groups when it comes to awareness of mental health issues. Twenty-four percent of Asian Americans believe that having a mental health issue is a sign of weakness compared to the 16% average for all groups. Asians are also considerably less likely to be aware of mental health services in their communities (42% vs. 55%) and most likely to seek out information on social media (51% vs. 35%).
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
This article is all about what AI trends will emerge in the field of creative operations in 2024. All the marketers and brand builders should be aware of these trends for their further use and save themselves some time!
A report by thenetworkone and Kurio.
The contributing experts and agencies are (in an alphabetical order): Sylwia Rytel, Social Media Supervisor, 180heartbeats + JUNG v MATT (PL), Sharlene Jenner, Vice President - Director of Engagement Strategy, Abelson Taylor (USA), Alex Casanovas, Digital Director, Atrevia (ES), Dora Beilin, Senior Social Strategist, Barrett Hoffher (USA), Min Seo, Campaign Director, Brand New Agency (KR), Deshé M. Gully, Associate Strategist, Day One Agency (USA), Francesca Trevisan, Strategist, Different (IT), Trevor Crossman, CX and Digital Transformation Director; Olivia Hussey, Strategic Planner; Simi Srinarula, Social Media Manager, The Hallway (AUS), James Hebbert, Managing Director, Hylink (CN / UK), Mundy Álvarez, Planning Director; Pedro Rojas, Social Media Manager; Pancho González, CCO, Inbrax (CH), Oana Oprea, Head of Digital Planning, Jam Session Agency (RO), Amy Bottrill, Social Account Director, Launch (UK), Gaby Arriaga, Founder, Leonardo1452 (MX), Shantesh S Row, Creative Director, Liwa (UAE), Rajesh Mehta, Chief Strategy Officer; Dhruv Gaur, Digital Planning Lead; Leonie Mergulhao, Account Supervisor - Social Media & PR, Medulla (IN), Aurelija Plioplytė, Head of Digital & Social, Not Perfect (LI), Daiana Khaidargaliyeva, Account Manager, Osaka Labs (UK / USA), Stefanie Söhnchen, Vice President Digital, PIABO Communications (DE), Elisabeth Winiartati, Managing Consultant, Head of Global Integrated Communications; Lydia Aprina, Account Manager, Integrated Marketing and Communications; Nita Prabowo, Account Manager, Integrated Marketing and Communications; Okhi, Web Developer, PNTR Group (ID), Kei Obusan, Insights Director; Daffi Ranandi, Insights Manager, Radarr (SG), Gautam Reghunath, Co-founder & CEO, Talented (IN), Donagh Humphreys, Head of Social and Digital Innovation, THINKHOUSE (IRE), Sarah Yim, Strategy Director, Zulu Alpha Kilo (CA).
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
The search marketing landscape is evolving rapidly with new technologies, and professionals, like you, rely on innovative paid search strategies to meet changing demands.
It’s important that you’re ready to implement new strategies in 2024.
Check this out and learn the top trends in paid search advertising that are expected to gain traction, so you can drive higher ROI more efficiently in 2024.
You’ll learn:
- The latest trends in AI and automation, and what this means for an evolving paid search ecosystem.
- New developments in privacy and data regulation.
- Emerging ad formats that are expected to make an impact next year.
Watch Sreekant Lanka from iQuanti and Irina Klein from OneMain Financial as they dive into the future of paid search and explore the trends, strategies, and technologies that will shape the search marketing landscape.
If you’re looking to assess your paid search strategy and design an industry-aligned plan for 2024, then this webinar is for you.
5 Public speaking tips from TED - Visualized summarySpeakerHub
From their humble beginnings in 1984, TED has grown into the world’s most powerful amplifier for speakers and thought-leaders to share their ideas. They have over 2,400 filmed talks (not including the 30,000+ TEDx videos) freely available online, and have hosted over 17,500 events around the world.
With over one billion views in a year, it’s no wonder that so many speakers are looking to TED for ideas on how to share their message more effectively.
The article “5 Public-Speaking Tips TED Gives Its Speakers”, by Carmine Gallo for Forbes, gives speakers five practical ways to connect with their audience, and effectively share their ideas on stage.
Whether you are gearing up to get on a TED stage yourself, or just want to master the skills that so many of their speakers possess, these tips and quotes from Chris Anderson, the TED Talks Curator, will encourage you to make the most impactful impression on your audience.
See the full article and more summaries like this on SpeakerHub here: https://speakerhub.com/blog/5-presentation-tips-ted-gives-its-speakers
See the original article on Forbes here:
http://www.forbes.com/forbes/welcome/?toURL=http://www.forbes.com/sites/carminegallo/2016/05/06/5-public-speaking-tips-ted-gives-its-speakers/&refURL=&referrer=#5c07a8221d9b
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
Everyone is in agreement that ChatGPT (and other generative AI tools) will shape the future of work. Yet there is little consensus on exactly how, when, and to what extent this technology will change our world.
Businesses that extract maximum value from ChatGPT will use it as a collaborative tool for everything from brainstorming to technical maintenance.
For individuals, now is the time to pinpoint the skills the future professional will need to thrive in the AI age.
Check out this presentation to understand what ChatGPT is, how it will shape the future of work, and how you can prepare to take advantage.
A brief introduction to DataScience with explaining of the concepts, algorithms, machine learning, supervised and unsupervised learning, clustering, statistics, data preprocessing, real-world applications etc.
It's part of a Data Science Corner Campaign where I will be discussing the fundamentals of DataScience, AIML, Statistics etc.
Time Management & Productivity - Best PracticesVit Horky
Here's my presentation on by proven best practices how to manage your work time effectively and how to improve your productivity. It includes practical tips and how to use tools such as Slack, Google Apps, Hubspot, Google Calendar, Gmail and others.
The six step guide to practical project managementMindGenius
The six step guide to practical project management
If you think managing projects is too difficult, think again.
We’ve stripped back project management processes to the
basics – to make it quicker and easier, without sacrificing
the vital ingredients for success.
“If you’re looking for some real-world guidance, then The Six Step Guide to Practical Project Management will help.”
Dr Andrew Makar, Tactical Project Management
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
During this webinar, Anand Bagmar demonstrates how AI tools such as ChatGPT can be applied to various stages of the software development life cycle (SDLC) using an eCommerce application case study. Find the on-demand recording and more info at https://applitools.info/b59
Key takeaways:
• Learn how to use ChatGPT to add AI power to your testing and test automation
• Understand the limitations of the technology and where human expertise is crucial
• Gain insight into different AI-based tools
• Adopt AI-based tools to stay relevant and optimize work for developers and testers
* ChatGPT and OpenAI belong to OpenAI, L.L.C.
Потоковая обработка данных с помощью модели акторов (Actor Model)
1. Потоковая обработка данных с
помощью Actor Model
Вадим Цесько
incubos@yandex.ru
twitter.com/incubos
12 мая 2012 г.
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 1 / 42
2. Введение Система
Класс систем
Мы разрабатываем
Яндекс.Авто
Яндекс.Недвижимость
Яндекс.Работа
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 2 / 42
3. Введение Система
Класс систем
Мы разрабатываем
Яндекс.Авто
Яндекс.Недвижимость
Яндекс.Работа
ETL-процесс:
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 2 / 42
4. Введение Система
Класс систем
Мы разрабатываем
Яндекс.Авто
Яндекс.Недвижимость
Яндекс.Работа
ETL-процесс:
1 Extract — загрузка внешних данных
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 2 / 42
5. Введение Система
Класс систем
Мы разрабатываем
Яндекс.Авто
Яндекс.Недвижимость
Яндекс.Работа
ETL-процесс:
1 Extract — загрузка внешних данных
2 Transform — унификация, кластеризация, ...
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 2 / 42
6. Введение Система
Класс систем
Мы разрабатываем
Яндекс.Авто
Яндекс.Недвижимость
Яндекс.Работа
ETL-процесс:
1 Extract — загрузка внешних данных
2 Transform — унификация, кластеризация, ...
3 Load — построение и раскладка индекса
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 2 / 42
7. Введение Система
Статистика
Данные:
До 104 источников
До 107 сущностей
20% обновляется ежедневно
2x рост за год
1
http://stat.yandex.ru
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 3 / 42
8. Введение Система
Статистика
Данные:
До 104 источников
До 107 сущностей
20% обновляется ежедневно
2x рост за год
Пользователи1 :
Яндекс.Авто — 4.5 млн. чел.
Яндекс.Недвижимость — 2 млн. чел.
Яндекс.Работа — 3.3 млн. чел.
1
http://stat.yandex.ru
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 3 / 42
9. Введение Система
Было
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 4 / 42
10. Введение Система
За кадром
Кластер поисковых машин
Раскладка
Балансировка
Дополнительные процессы и данные
Статистика
Картинки
Цены
Качество
Админки/партнёрки
История
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 5 / 42
11. Введение Система
Мотивация
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 6 / 42
12. Введение Система
Мотивация
Масштабируемость с ростом объёма данных
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 6 / 42
13. Введение Система
Мотивация
Масштабируемость с ростом объёма данных
Инкрементальная индексация
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 6 / 42
14. Введение Система
Мотивация
Масштабируемость с ростом объёма данных
Инкрементальная индексация
(мягкий) real-time
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 6 / 42
15. Введение Система
Стало
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 7 / 42
16. Введение Распределённые системы
Свойства must have
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 8 / 42
17. Введение Распределённые системы
Свойства must have
Масштабируемость
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 8 / 42
18. Введение Распределённые системы
Свойства must have
Масштабируемость
Гибкость
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 8 / 42
19. Введение Распределённые системы
Свойства must have
Масштабируемость
Гибкость
Устойчивость к сбоям
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 8 / 42
20. Введение Распределённые системы
Свойства must have
Масштабируемость
Гибкость
Устойчивость к сбоям
Тестируемость
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 8 / 42
21. Введение Распределённые системы
Свойства must have
Масштабируемость
Гибкость
Устойчивость к сбоям
Тестируемость
Наблюдаемость
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 8 / 42
22. Введение Actor Model
Происхождение
Carl Hewitt, Peter Bishop and Richard Steiger. A
Universal Modular Actor Formalism for Artificial
Intelligence. 1973.
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 9 / 42
23. Введение Actor Model
Происхождение
Carl Hewitt, Peter Bishop and Richard Steiger. A
Universal Modular Actor Formalism for Artificial
Intelligence. 1973.
Изначально для описания параллельных
вычислений
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 9 / 42
24. Введение Actor Model
Происхождение
Carl Hewitt, Peter Bishop and Richard Steiger. A
Universal Modular Actor Formalism for Artificial
Intelligence. 1973.
Изначально для описания параллельных
вычислений
Позднее основа для реализаций
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 9 / 42
25. Введение Actor Model
Происхождение
Carl Hewitt, Peter Bishop and Richard Steiger. A
Universal Modular Actor Formalism for Artificial
Intelligence. 1973.
Изначально для описания параллельных
вычислений
Позднее основа для реализаций
Don’t panic
Алгебры, логики, семантики и остальное оставим за
кадром.
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 9 / 42
26. Введение Actor Model
Что такое Actor
Всё это актор2
2
http://letitcrash.com/post/20964174345/
carl-hewitt-explains-the-essence-of-the-actor
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 10 / 42
27. Введение Actor Model
Что такое Actor
Всё это актор2
Функционируют параллельно
2
http://letitcrash.com/post/20964174345/
carl-hewitt-explains-the-essence-of-the-actor
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 10 / 42
28. Введение Actor Model
Что такое Actor
Всё это актор2
Функционируют параллельно
Асинхронно обмениваются сообщениями
2
http://letitcrash.com/post/20964174345/
carl-hewitt-explains-the-essence-of-the-actor
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 10 / 42
29. Введение Actor Model
Что такое Actor
Всё это актор2
Функционируют параллельно
Асинхронно обмениваются сообщениями
При обработке сообщения актор может
отправить конечное число сообщений другим акторам
создать конечное число новых акторов
назначить поведение для обработки следующего
сообщения
2
http://letitcrash.com/post/20964174345/
carl-hewitt-explains-the-essence-of-the-actor
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 10 / 42
30. Введение Actor Model
Что такое Actor
Всё это актор2
Функционируют параллельно
Асинхронно обмениваются сообщениями
При обработке сообщения актор может
отправить конечное число сообщений другим акторам
создать конечное число новых акторов
назначить поведение для обработки следующего
сообщения
Порядок доставки сообщений не специфицирован
2
http://letitcrash.com/post/20964174345/
carl-hewitt-explains-the-essence-of-the-actor
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 10 / 42
31. Введение Actor Model
Что такое Actor
Всё это актор2
Функционируют параллельно
Асинхронно обмениваются сообщениями
При обработке сообщения актор может
отправить конечное число сообщений другим акторам
создать конечное число новых акторов
назначить поведение для обработки следующего
сообщения
Порядок доставки сообщений не специфицирован
Акторы имеют «адреса»
2
http://letitcrash.com/post/20964174345/
carl-hewitt-explains-the-essence-of-the-actor
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 10 / 42
32. Введение Actor Model
Реализации Actor Model
3
http://en.wikipedia.org/wiki/Actor_model
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 11 / 42
33. Введение Actor Model
Реализации Actor Model
Языки3 с «родной» поддержкой:
Erlang
Scala
...
3
http://en.wikipedia.org/wiki/Actor_model
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 11 / 42
34. Введение Actor Model
Реализации Actor Model
Языки3 с «родной» поддержкой:
Erlang
Scala
...
Библиотеки для языков:
Scala
Java
F#
...
3
http://en.wikipedia.org/wiki/Actor_model
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 11 / 42
35. Введение Actor Model
Реализации Actor Model
Языки3 с «родной» поддержкой:
Erlang
Scala
...
Библиотеки для языков:
Scala
Java
F#
...
Мы выбрали
Akka (Scala API).
3
http://en.wikipedia.org/wiki/Actor_model
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 11 / 42
36. Практика Akka
О проекте
Jonas Bon´r:
e
Java Champion
Terracotta JVM clustering, JRockit JVM,
AspectWerkz AOP, Eclipse AspectJ
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 12 / 42
37. Практика Akka
О проекте
Jonas Bon´r:
e
Java Champion
Terracotta JVM clustering, JRockit JVM,
AspectWerkz AOP, Eclipse AspectJ
Ресурсы:
http://akka.io/docs/
http://letitcrash.com/
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 12 / 42
38. Практика Akka
О проекте
Jonas Bon´r:
e
Java Champion
Terracotta JVM clustering, JRockit JVM,
AspectWerkz AOP, Eclipse AspectJ
Ресурсы:
http://akka.io/docs/
http://letitcrash.com/
Код:
https://github.com/akka/akka
Apache V2 license
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 12 / 42
39. Практика Akka
Производительность
Внимание
Синтетические тесты
4
http://letitcrash.com/post/14783691760/akka-vs-erlang
5
http://letitcrash.com/post/20397701710/
50-million-messages-per-second-on-a-single-machine
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 13 / 42
40. Практика Akka
Производительность
Внимание
Синтетические тесты
Erlang R14B04 vs Akka 2.0-SNAPSHOT4 :
4
http://letitcrash.com/post/14783691760/akka-vs-erlang
5
http://letitcrash.com/post/20397701710/
50-million-messages-per-second-on-a-single-machine
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 13 / 42
41. Практика Akka
Производительность
Внимание
Синтетические тесты
Erlang R14B04 vs Akka 2.0-SNAPSHOT4 :
1M mps vs 2.1M mps
4
http://letitcrash.com/post/14783691760/akka-vs-erlang
5
http://letitcrash.com/post/20397701710/
50-million-messages-per-second-on-a-single-machine
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 13 / 42
42. Практика Akka
Производительность
Внимание
Синтетические тесты
Erlang R14B04 vs Akka 2.0-SNAPSHOT4 :
1M mps vs 2.1M mps
Akka 2.05 :
4
http://letitcrash.com/post/14783691760/akka-vs-erlang
5
http://letitcrash.com/post/20397701710/
50-million-messages-per-second-on-a-single-machine
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 13 / 42
43. Практика Akka
Производительность
Внимание
Синтетические тесты
Erlang R14B04 vs Akka 2.0-SNAPSHOT4 :
1M mps vs 2.1M mps
Akka 2.05 :
50M mps
4
http://letitcrash.com/post/14783691760/akka-vs-erlang
5
http://letitcrash.com/post/20397701710/
50-million-messages-per-second-on-a-single-machine
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 13 / 42
44. Практика Akka
Производительность
Внимание
Синтетические тесты
Erlang R14B04 vs Akka 2.0-SNAPSHOT4 :
1M mps vs 2.1M mps
Akka 2.05 :
50M mps
48-core, 128 GB, ForkJoinPool
4
http://letitcrash.com/post/14783691760/akka-vs-erlang
5
http://letitcrash.com/post/20397701710/
50-million-messages-per-second-on-a-single-machine
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 13 / 42
45. Практика Akka
Особенности реализации Actor Model
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 14 / 42
46. Практика Akka
Особенности реализации Actor Model
300 байт на актор
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 14 / 42
47. Практика Akka
Особенности реализации Actor Model
300 байт на актор
Актор: состояние, поведение, почтовый ящик,
список детей, стратегия супервизора
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 14 / 42
48. Практика Akka
Особенности реализации Actor Model
300 байт на актор
Актор: состояние, поведение, почтовый ящик,
список детей, стратегия супервизора
Множество акторов на множестве нитей
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 14 / 42
49. Практика Akka
Особенности реализации Actor Model
300 байт на актор
Актор: состояние, поведение, почтовый ящик,
список детей, стратегия супервизора
Множество акторов на множестве нитей
Нет гарантированной доставки, семантика
at-most-once, порядок сохраняется
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 14 / 42
50. Практика Akka
Особенности реализации Actor Model
300 байт на актор
Актор: состояние, поведение, почтовый ящик,
список детей, стратегия супервизора
Множество акторов на множестве нитей
Нет гарантированной доставки, семантика
at-most-once, порядок сохраняется
Сообщения обрабатываются строго по порядку
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 14 / 42
51. Практика Akka
Особенности реализации Actor Model
300 байт на актор
Актор: состояние, поведение, почтовый ящик,
список детей, стратегия супервизора
Множество акторов на множестве нитей
Нет гарантированной доставки, семантика
at-most-once, порядок сохраняется
Сообщения обрабатываются строго по порядку
Иерархия: создаваемые акторы — дети,
родитель — супервизор
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 14 / 42
52. Практика Akka
Особенности реализации Actor Model
300 байт на актор
Актор: состояние, поведение, почтовый ящик,
список детей, стратегия супервизора
Множество акторов на множестве нитей
Нет гарантированной доставки, семантика
at-most-once, порядок сохраняется
Сообщения обрабатываются строго по порядку
Иерархия: создаваемые акторы — дети,
родитель — супервизор
Актор скрыт за переносимой ActorRef
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 14 / 42
53. Практика Akka
Ссылки
Чисто локальные
Локальные ссылки
Ссылки для маршрутизации (Router)
Ссылки на удалённых акторов
Особые: PromiseActorRef, DeadLetterActorRef,
EmptyLocalActorRef (DeadLetterActorRef)
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 15 / 42
54. Практика Akka
Ссылки
Чисто локальные
Локальные ссылки
Ссылки для маршрутизации (Router)
Ссылки на удалённых акторов
Особые: PromiseActorRef, DeadLetterActorRef,
EmptyLocalActorRef (DeadLetterActorRef)
Примеры путей
akka://system/user/service/worker
akka://system@server.yandex.ru:2552/user/service
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 15 / 42
55. Практика Akka
Конструирование ссылок
Создание акторов: ActorSystem.actorOf или
ActorContext.actorOf
Поиск акторов: ActorSystem.actorFor или
ActorContext.actorFor
Каждый актор знает себя, родителя и детей
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 16 / 42
56. Практика Akka
Конструирование ссылок
Создание акторов: ActorSystem.actorOf или
ActorContext.actorOf
Поиск акторов: ActorSystem.actorFor или
ActorContext.actorFor
Каждый актор знает себя, родителя и детей
Можно делать так:
1 context.actorFor("../brother") ! msg
2 context.actorFor("/user/service") ! msg
3 context.actorSelection("../*") ! msg
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 16 / 42
57. Практика Akka
Именование в локальной системе
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 17 / 42
58. Практика Akka
Пути
Типы путей:
Логический
Физический
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 18 / 42
59. Практика Akka
Пути
Типы путей:
Логический
Физический
Особые пути:
/user
/system
/deadLetters
/temp
/remote
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 18 / 42
60. Практика Akka
Удалённое развёртывание
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 19 / 42
61. Практика Akka
Actor Best Practices
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 20 / 42
62. Практика Akka
Actor Best Practices
Не блокироваться
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 20 / 42
63. Практика Akka
Actor Best Practices
Не блокироваться
Неизменяемые сообщения
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 20 / 42
64. Практика Akka
Actor Best Practices
Не блокироваться
Неизменяемые сообщения
Нет разделяемому состоянию
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 20 / 42
65. Практика Akka
Actor Best Practices
Не блокироваться
Неизменяемые сообщения
Нет разделяемому состоянию
«Опасные» подзадачи в дочерние акторы
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 20 / 42
66. Практика Akka
Actor Best Practices
Не блокироваться
Неизменяемые сообщения
Нет разделяемому состоянию
«Опасные» подзадачи в дочерние акторы
События жизненного цикла
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 20 / 42
67. Практика Akka
Используемые фичи
Actors
Logging
Scheduler
Dispatchers
Routing
Remoting
Serialization
Testing
FSM
Fault Tolerance
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 21 / 42
68. Практика Akka
Неиспользуемые фичи
Typed Actors
Event Bus
Futures
Dataflow Concurrency
STM
Agents
Transactors
Durable Mailboxes (file, Redis, ZooKeeper, Mongo)
Akka Cluster
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 22 / 42
69. Практика Примеры
Определение актора
1 class Partitioner(partitionStorage: ActorRef) extends Actor {
2
3 lazy val log = Logging(context.system, this)
4
5 def receive = {
6 case PartitionFeed(partner, offers) =>
7 partition(partner, offers)
8 case msg =>
9 log.error("Unsupported message received: {}", msg)
10 }
11
12 def partition(partner: Partner, offers: Traversable[Offer]) {
13 ...
14
15 partitionStorage ! UpdatePartitions(partner, partitioning)
16 }
17 }
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 23 / 42
70. Практика Примеры
Создание актора
1 val system = ActorSystem("sharder")
2
3 val partitionStorage = ...
4
5 val partitioner = system.actorOf(Props(
6 new Partitioner(
7 partitionStorage
8 )).withDispatcher("dispatcher.cpu")
9 .withRouter(FromConfig()),
10 "partitioner")
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 24 / 42
71. Практика Примеры
Конфигурация диспетчера
Конфигурация в HOCON6 :
1 dispatcher {
2 cpu {
3 type = Dispatcher
4 executor = "fork-join-executor"
5 mailbox-capacity = 4
6 mailbox-push-timeout-time = 5m
7
8 fork-join-executor {
9 parallelism-min = 4
10 parallelism-factor = 1.0
11 }
12 }
13 }
6
Human-Optimized Config Object Notation:
https://github.com/typesafehub/config
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 25 / 42
72. Практика Примеры
Диспетчеры и ящики
Диспетчеры:
Dispatcher
PinnedDispatcher
BalancingDispatcher
CallingThreadDispatcher
Почтовые ящики:
UnboundedMailbox
BoundedMailbox
UnboundedPriorityMailbox
BoundedPriorityMailbox
Durable Mailboxes
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 26 / 42
74. Практика Примеры
Маршрутизаторы
RoundRobinRouter
RandomRouter
SmallestMailboxRouter
BroadcastRouter
ScatterGatherFirstCompletedRouter
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 28 / 42
75. Практика Примеры
Конфигурирование из кода
1 val shardActors =
2 shards.map(system.actorFor(_)).toIndexedSeq
3
4 val shard = system.actorOf(
5 Props[PartitionReceiver]
6 .withRouter(RoundRobinRouter(shardActors))
7 .withDispatcher("dispatcher.shard"),
8 "shard")
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 29 / 42
76. Практика Примеры
Распределённые акторы
1 akka {
2 actor {
3 provider = "akka.remote.RemoteActorRefProvider"
4 }
5
6 remote {
7 transport = "akka.remote.netty.NettyRemoteTransport"
8
9 netty {
10 hostname = "server.yandex.ru"
11 port = 2553
12 }
13 }
14 }
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 30 / 42
77. Практика Примеры
Пример теста
1 val probe = TestProbe()
2 val burstScaler = TestActorRef(new BurstScaler(probe.ref))
3
4 before {
5 burstScaler.underlyingActor.sent =
6 burstScaler.underlyingActor.sent.empty
7 }
8
9 "A BurstScaler" should {
10 "always forward the first message" in {
11 probe.within(1 second) {
12 burstScaler ! 1
13 probe.expectMsg(1)
14 }
15 }
16 }
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 31 / 42
78. Практика Примеры
Тестирование акторов
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 32 / 42
79. Практика Примеры
Тестирование акторов
Модульное тестирование с TestActorRef
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 32 / 42
80. Практика Примеры
Тестирование акторов
Модульное тестирование с TestActorRef
Интеграционное тестирование с Probe
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 32 / 42
81. Практика Примеры
Тестирование акторов
Модульное тестирование с TestActorRef
Интеграционное тестирование с Probe
Проверки с сопоставлением по шаблону
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 32 / 42
82. Практика Примеры
Тестирование акторов
Модульное тестирование с TestActorRef
Интеграционное тестирование с Probe
Проверки с сопоставлением по шаблону
Замедление времени
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 32 / 42
83. Практика Примеры
Тестирование акторов
Модульное тестирование с TestActorRef
Интеграционное тестирование с Probe
Проверки с сопоставлением по шаблону
Замедление времени
Детализированные логи akka.actor.debug.*
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 32 / 42
84. Практика Примеры
Тестирование акторов
Модульное тестирование с TestActorRef
Интеграционное тестирование с Probe
Проверки с сопоставлением по шаблону
Замедление времени
Детализированные логи akka.actor.debug.*
CallingThreadDispatcher
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 32 / 42
85. Практика Примеры
Супервизор
Решение при сбое:
1 Resume
2 Restart
3 Stop
4 Escalate
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 33 / 42
86. Практика Примеры
Супервизор
Решение при сбое:
1 Resume
2 Restart
3 Stop
4 Escalate
Принятое решение (1-3) действует рекурсивно
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 33 / 42
87. Практика Примеры
Супервизор
Решение при сбое:
1 Resume
2 Restart
3 Stop
4 Escalate
Принятое решение (1-3) действует рекурсивно
Функция Exception ⇒ Directive
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 33 / 42
88. Практика Примеры
Супервизор
Решение при сбое:
1 Resume
2 Restart
3 Stop
4 Escalate
Принятое решение (1-3) действует рекурсивно
Функция Exception ⇒ Directive
Terminated, preStart, preRestart, postStop,
postRestart
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 33 / 42
89. Практика Примеры
Супервизор
Решение при сбое:
1 Resume
2 Restart
3 Stop
4 Escalate
Принятое решение (1-3) действует рекурсивно
Функция Exception ⇒ Directive
Terminated, preStart, preRestart, postStop,
postRestart
OneForOneStrategy и AllForOneStrategy
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 33 / 42
90. Практика Примеры
Супервизор
Решение при сбое:
1 Resume
2 Restart
3 Stop
4 Escalate
Принятое решение (1-3) действует рекурсивно
Функция Exception ⇒ Directive
Terminated, preStart, preRestart, postStop,
postRestart
OneForOneStrategy и AllForOneStrategy
Ограничение количества перезапусков
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 33 / 42
91. Практика Примеры
Супервизор по умолчанию
1 final val defaultStrategy: SupervisorStrategy = {
2 def defaultDecider: Decider = {
3 case _: ActorInitializationException => Stop
4 case _: ActorKilledException => Stop
5 case _: Exception => Restart
6 case _ => Escalate
7 }
8 OneForOneStrategy()(defaultDecider)
9 }
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 34 / 42
92. Практика Примеры
Наблюдаемость
Typesafe Console для мониторинга
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 35 / 42
93. Практика Примеры
Наблюдаемость
Typesafe Console для мониторинга
Graphite + statsd + statsd-over-slf4j
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 35 / 42
94. Практика Примеры
Свойства must have
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 36 / 42
95. Практика Примеры
Свойства must have
Масштабируемость
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 36 / 42
96. Практика Примеры
Свойства must have
Масштабируемость
Гибкость
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 36 / 42
97. Практика Примеры
Свойства must have
Масштабируемость
Гибкость
Устойчивость к сбоям
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 36 / 42
98. Практика Примеры
Свойства must have
Масштабируемость
Гибкость
Устойчивость к сбоям
Тестируемость
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 36 / 42
99. Практика Примеры
Свойства must have
Масштабируемость
Гибкость
Устойчивость к сбоям
Тестируемость
Наблюдаемость
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 36 / 42
100. Практика Опыт
Акторы
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 37 / 42
101. Практика Опыт
Акторы
Храните состояние вовне
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 37 / 42
102. Практика Опыт
Акторы
Храните состояние вовне
Стройте всю систему на акторах
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 37 / 42
103. Практика Опыт
Акторы
Храните состояние вовне
Стройте всю систему на акторах
Пишите асинхронный код
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 37 / 42
104. Практика Опыт
Акторы
Храните состояние вовне
Стройте всю систему на акторах
Пишите асинхронный код
Избегайте косвенного взаимодействия акторов
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 37 / 42
105. Практика Опыт
Акторы
Храните состояние вовне
Стройте всю систему на акторах
Пишите асинхронный код
Избегайте косвенного взаимодействия акторов
Баги есть, но быстро чинят
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 37 / 42
106. Практика Опыт
Память и ящики
7
http://letitcrash.com/post/17707262394/
why-no-mailboxsize-in-akka-2
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 38 / 42
107. Практика Опыт
Память и ящики
Неограниченные ящики ⇒ неограниченная память
при перегрузке
7
http://letitcrash.com/post/17707262394/
why-no-mailboxsize-in-akka-2
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 38 / 42
108. Практика Опыт
Память и ящики
Неограниченные ящики ⇒ неограниченная память
при перегрузке
Ограниченные ящики ⇒ возможные deadlock’и
при наличии циклов
7
http://letitcrash.com/post/17707262394/
why-no-mailboxsize-in-akka-2
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 38 / 42
109. Практика Опыт
Память и ящики
Неограниченные ящики ⇒ неограниченная память
при перегрузке
Ограниченные ящики ⇒ возможные deadlock’и
при наличии циклов
⇒ стройте системы без циклов
7
http://letitcrash.com/post/17707262394/
why-no-mailboxsize-in-akka-2
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 38 / 42
110. Практика Опыт
Память и ящики
Неограниченные ящики ⇒ неограниченная память
при перегрузке
Ограниченные ящики ⇒ возможные deadlock’и
при наличии циклов
⇒ стройте системы без циклов
Существует диспетчер по умолчанию
7
http://letitcrash.com/post/17707262394/
why-no-mailboxsize-in-akka-2
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 38 / 42
111. Практика Опыт
Память и ящики
Неограниченные ящики ⇒ неограниченная память
при перегрузке
Ограниченные ящики ⇒ возможные deadlock’и
при наличии циклов
⇒ стройте системы без циклов
Существует диспетчер по умолчанию
Нет доступа к размеру ящика7
7
http://letitcrash.com/post/17707262394/
why-no-mailboxsize-in-akka-2
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 38 / 42
112. Практика Опыт
Удалённые акторы
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 39 / 42
113. Практика Опыт
Удалённые акторы
Remote deploy пока не работает в полной мере
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 39 / 42
114. Практика Опыт
Удалённые акторы
Remote deploy пока не работает в полной мере
На клиенте нужно иметь код удалённо
развёртываемого актора (WTF?!)
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 39 / 42
115. Практика Опыт
Удалённые акторы
Remote deploy пока не работает в полной мере
На клиенте нужно иметь код удалённо
развёртываемого актора (WTF?!)
Маршрутизатор smallest-mailbox не работает
для удалённых акторов
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 39 / 42
116. Заключение Недостатки реализации
Недостатки реализации
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 40 / 42
117. Заключение Недостатки реализации
Недостатки реализации
Отсутствует явная структура системы
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 40 / 42
118. Заключение Недостатки реализации
Недостатки реализации
Отсутствует явная структура системы
Нет статической проверки протоколов
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 40 / 42
119. Заключение Недостатки реализации
Недостатки реализации
Отсутствует явная структура системы
Нет статической проверки протоколов
Пока неполноценная реализация удалённого
деплоя и апгрейда
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 40 / 42
120. Заключение Недостатки реализации
Недостатки реализации
Отсутствует явная структура системы
Нет статической проверки протоколов
Пока неполноценная реализация удалённого
деплоя и апгрейда
Нет развитых средств анализа
производительности системы
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 40 / 42
121. Заключение Достоинства подхода
Достоинства подхода
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 41 / 42
122. Заключение Достоинства подхода
Достоинства подхода
Выразительное описание поведения и
взаимодействия
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 41 / 42
123. Заключение Достоинства подхода
Достоинства подхода
Выразительное описание поведения и
взаимодействия
Простое конфигурирование
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 41 / 42
124. Заключение Достоинства подхода
Достоинства подхода
Выразительное описание поведения и
взаимодействия
Простое конфигурирование
Гибкое управления выполнением
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 41 / 42
125. Заключение Достоинства подхода
Достоинства подхода
Выразительное описание поведения и
взаимодействия
Простое конфигурирование
Гибкое управления выполнением
Масштабируется локально и распределённо
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 41 / 42
126. Заключение Достоинства подхода
Достоинства подхода
Выразительное описание поведения и
взаимодействия
Простое конфигурирование
Гибкое управления выполнением
Масштабируется локально и распределённо
Работает
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 41 / 42
127. Заключение Alan Kay on OOP, 1967
Alan Kay on OOP, 1967
I thought of objects being like biological cells and/or
individual computers on a network, only able to
communicate with messages (so messaging came at the
very beginning – it took a while to see how to do
messaging in a programming language efficiently enough
to be useful).
OOP to me means only messaging, local retention and
protection and hiding of state-process, and extreme
late-binding of all things. It can be done in Smalltalk and
in LISP. There are possibly other systems in which this is
possible, but I’m not aware of them.
Вадим Цесько (Яндекс) Потоковая обработка на Actor Model 12 мая 2012 г. 42 / 42