Concurrency — на самом деле важно, заняты ли параллельные треды совместной работой.
Все знают, что разделяемое состояние — плохая идея. Альтернатива — передача immutable-сообщений для обмена данными.
Эксепшены в многопоточной программе — головная боль. Альтернатива — supervision hierarchies.
Переход от одной машины к кластеру.
Точки расширения: mailboxes, dispatchers.
Дополнительные возможности: транзакционная память.
Why to Consider Account Based Marketing?SMARTe Inc.
If you are interested in boosting your Sales & Marketing B2B campaigns, we at SMARTe Inc ensure that your marketing and sales teams work in sync-marketing executing successful programs and feeding qualified leads into the pipeline; sales hitting with the right value proposition to the right prospects, thus putting more efforts in closing deals rather than pondering whom to target.
For more information, please visit our website:
www.smarteinc.com
Why to Consider Account Based Marketing?SMARTe Inc.
If you are interested in boosting your Sales & Marketing B2B campaigns, we at SMARTe Inc ensure that your marketing and sales teams work in sync-marketing executing successful programs and feeding qualified leads into the pipeline; sales hitting with the right value proposition to the right prospects, thus putting more efforts in closing deals rather than pondering whom to target.
For more information, please visit our website:
www.smarteinc.com
Николай Красноярский: "Секретный доклад" (Немного о безопасности и анонимности в сети Интернет. Epic fails последнего времени. Что не так с security. Что не так с нами. Upgrade your mind)
Rust: абстракции и безопасность, совершенно бесплатноOpen-IT
Владимир Матвеев: "Rust: абстракции и безопасность, совершенно бесплатно" (Обзор языка Rust: для чего он предназначен, его ключевые особенности, инфраструктура)
Saratov open it teach talk.
Дамир Яраев:
Введение в Apache Cassandra (В ходе презентации Дамир расскажет, когда и почему стоит переходить с проверенных временем реляционных баз данных на ставшие модными в последнее время решения на базе NoSQL. В качестве примера рассмотрит колоночную NoSQL базу данных Apache Cassandra)
It consists of 3 major parts:
1) Cassandra architecture / how reads and writes work - It is almost in alignment with official C* book by DataStax (pictures are from there) - It can be useful for those who either never used Cassandra or has some questions. During my presentation on-site I found that it makes sense to listen to this even for those who already read it sometime ago
2) Data Modeling on CQL3 - it can be helpful for those who never used Cassandra to learn CQL3 a little - as well as for those who worked with pre-CQL3 approach to understand what happens under the sweet CQL3 structures
3) Remaining things like DataStax Java Driver, C* known bugs
Fuel's current use cases, architecture and next stepsOpen-IT
Fuel is open source initiative which provides great automation and flexibility for:
* CentOS and Ubuntu provisioning on bare metal servers
* Disk partitioning, including software RAIDs. Support of hardware RAIDs is in the roadmap
* Complex network configurations, including VLANs, GRE and bonding
* Network verification (VLANs, DHCP) before deployment
* Automated deployment of OpenStack components and Ceph
* Health Check - a set of short-running tests to ensure functionality of deployed environment
Vagrant - поднимаем проект на рабочей машине
Vagrant может быть еще проще (Vagrant plugins)
Как Ansible упрощает разворачивание проекта в Vagrant
А вы пробовали Docker?
Николай Красноярский: "Секретный доклад" (Немного о безопасности и анонимности в сети Интернет. Epic fails последнего времени. Что не так с security. Что не так с нами. Upgrade your mind)
Rust: абстракции и безопасность, совершенно бесплатноOpen-IT
Владимир Матвеев: "Rust: абстракции и безопасность, совершенно бесплатно" (Обзор языка Rust: для чего он предназначен, его ключевые особенности, инфраструктура)
Saratov open it teach talk.
Дамир Яраев:
Введение в Apache Cassandra (В ходе презентации Дамир расскажет, когда и почему стоит переходить с проверенных временем реляционных баз данных на ставшие модными в последнее время решения на базе NoSQL. В качестве примера рассмотрит колоночную NoSQL базу данных Apache Cassandra)
It consists of 3 major parts:
1) Cassandra architecture / how reads and writes work - It is almost in alignment with official C* book by DataStax (pictures are from there) - It can be useful for those who either never used Cassandra or has some questions. During my presentation on-site I found that it makes sense to listen to this even for those who already read it sometime ago
2) Data Modeling on CQL3 - it can be helpful for those who never used Cassandra to learn CQL3 a little - as well as for those who worked with pre-CQL3 approach to understand what happens under the sweet CQL3 structures
3) Remaining things like DataStax Java Driver, C* known bugs
Fuel's current use cases, architecture and next stepsOpen-IT
Fuel is open source initiative which provides great automation and flexibility for:
* CentOS and Ubuntu provisioning on bare metal servers
* Disk partitioning, including software RAIDs. Support of hardware RAIDs is in the roadmap
* Complex network configurations, including VLANs, GRE and bonding
* Network verification (VLANs, DHCP) before deployment
* Automated deployment of OpenStack components and Ceph
* Health Check - a set of short-running tests to ensure functionality of deployed environment
Vagrant - поднимаем проект на рабочей машине
Vagrant может быть еще проще (Vagrant plugins)
Как Ansible упрощает разворачивание проекта в Vagrant
А вы пробовали Docker?
2. Зачем
• Акторы — объекты, которые вместо того чтобы
просто хранить состояние еще и выполняют код
конкурентно.
• Разделяемое состояние — это плохо, только
иммутабельные сообщения.
• Ручная синхронизация — это утомительно
3. !
class MyActor extends Actor {!
val log = Logging(context.system, this)!
def receive = {!
case "test" => log.info("received test")!
case _ => sender ! “what’s this?”!
}!
}
6. Supervision hierarchies
• Акторы образуют иерархию
• Родитель следит за детьми и может либо
перезапускать их в ответ на ошибку, не делать
ничего, либо передавать управление наверх.
7. Индивидуальные ошибки
!
val breaker =
new CircuitBreaker(context.system.scheduler,
maxFailures = 5,
callTimeout = 10.seconds,
resetTimeout = 1.minute).onOpen(notifyMeOnOpen())
def notifyMeOnOpen(): Unit =
log.warning("My CircuitBreaker is now open, and will not
close for one minute")
9. Кластеризация
• Кластер — совокупность узлов, которые с
заранее известной степенью точности находятся
в соглашении относительно того, кто входит в
кластер, и кто его возглавляет.
• Amazon Dynamo
11. Dispatchers
• Дают акторам процессорное время.
• Например, можно балансировать нагрузку между
акторами.
• Изолировать пулы потоков, потребляемые
группами акторов (Bulkheading).
12. STM
• Атомарные обновления внутреннего состояния.
Например, для случаев, когда вы не хотите
рестартовать актор целиком.
• Выглядит как блок atomic {…}, внутри которого
присваивания внутри особого вида контейнеров
(агентов) атомарны.
13. Agents
def transfer(from: Agent[Int], to: Agent[Int], amount: Int): Boolean =
{!
atomic { txn =>!
if (from.get < amount) false!
else {!
from send (_ - amount)!
to send (_ + amount)!
true!
}!
}!
}