9 How we ended up using Erlang Discovered Erlang when getting WiFi rabbits to talk to each other over XMPP (ejabberd) in 2007 Taught OCaml in 2004 Three reasons why we chose Erlang : - hot code change and inspection - fault-tolerance - happy to do functional programming (gave us a break from Java and C++)

13 A few things we wish we had known about Erlang Mistake #2: Creating a lot of processes for parallelized computing - having more worker processes than schedulers does not make sense - it can actually hurt, because processes waiting for a reply may not have it in time and will fail with a timeout

14 Thinking OTP Thinking OTP

15 Thinking OTP Mistake #3: Starting processes outside the supervision tree - gen_server & co. should be used everywhere, except for very short lived processes (that won t be upgraded) - Every gen_server should be started from a supervisor - A real-world supervision design requires process_flag(trap_exit, true), monitor/2 and link/1, as well as some thinking

17 Thinking OTP Mistake #5: Putting everything in a single virtual machine (node) per server - Virtual machines may crash - Code changes can fail and take down the whole node - It s better to separate critical code - even per server if a crashing node can take a huge amount of RAM and make other nodes swap

21 Foreign code Mistake #6: Using linked-in drivers for open source code that could crash/abort E.g.: ImageMagick will abort on bad input - External drivers are more suitable when external library is large, crash-prone or could leak (sometimes, the leak is in the glue ) - Passing pointers is possible but requires some logic, typically binding a pointer to the port

22 Foreign code Mistake #7: Using linked-in drivers for I/O intensive code E.g.: sqlite - Linked-in driver code is executed within a scheduler thread. Running for too long will starve other processes that will timeout, waiting for messages - Theoretically, we can use async threads (and we do with sqlite). However, enabling async threads (+A) has a huge impact on built-in I/O drivers - Performance could be worse with external drivers

25 Erlang technologies we love hate snmp - makes it really easy to integrate erlang nodes within a monitoring solution (we use nagios and munin) HiPE OTP installed with --enable-native-lib and all our code compiled with +native - helps with CPU-bound work (including dialyzer ) - most patches we submitted were HiPE-related We are also grateful to the authors of: erlsom, mochiweb, nitrogen, zotonic

Building highly available systems in Erlang Joe Armstrong How can we get 10 nines reliability? Why Erlang? Erlang was designed to program fault-tolerant systems Overview n Types of HA systems n Architecture/Algorithms

a framework OTP OTP, Open Telecom Platform, the system that we have used Johan Montelius KTH VT16 compiler and run-time system set of libraries generic templates to implement servers tools and services

THE BASIC SERVER IN ERLANG The first common pattern I'll describe is one we've already used. When writing the event server, we had what could be called a client-server model. The event server would calls

Lua as a business logic language in high load application Ilya Martynov ilya@iponweb.net CTO at IPONWEB Company background Ad industry Custom development Technical platform with multiple components Custom

Erlang in Production I wish I'd known that when I started Or This is nothing like the brochure :-( Who the Hell are you? ShoreTel Sky http://shoretelsky.com Enterprise Grade VoIP Elevator Pitch Our Systems

What s new and what s cooking in otp service release r15b01 4:TH APRIL major release r16b service release r15b01 Mainly bug fixes 146 distinct fixes 25 directly from Open Source users A lot of fixes are

Graylog2 Lennart Koopmann, OSDC 2014 @_lennart / www.graylog2.org About me 25 years old Living in Hamburg, Germany @_lennart on Twitter Co-Founder of TORCH - The Graylog2 company. Graylog2 history Started

http:// Erlang Factory Lite Kraków 2009 25 November 2009 What is Erlang Factory Lite? 2 day conference Erlang Factory More than 40 speakers London and San Francisco Bay Area 1 day conference Erlang Factory

16 Example of Standard API System Call Implementation Typically, a number associated with each system call System call interface maintains a table indexed according to these numbers The system call interface

A (Web) Face for Radio NPR and Drupal7 David Moore Who am I? David Moore Developer at NPR Using Drupal since 4.7 Focus on non-profit + Drupal CrookedNumber on drupal.org, twitter, etc. What is NPR? A non-profit

Bertrand Mermet Sylvain Ract Linux Driver Devices. Why, When, Which, How? Since its creation in the early 1990 s Linux has been installed on millions of computers or embedded systems. These systems may

Functional Programming In Real Life Erik Stenman CTO Klarna Creative Payment Solutions Introduction I will talk about klarna, a company that bet it's future on Erlang, a functional programming language

Evaluating parallel file system security 1. Motivation After successful Internet attacks on HPC centers worldwide, there has been a paradigm shift in cluster security strategies. Clusters are no longer

Effective Java Programming efficient software development Structure efficient software development what is efficiency? development process profiling during development what determines the performance of

Research and Design of Universal and Open Software Development Platform for Digital Home CaiFeng Cao School of Computer Wuyi University, Jiangmen 529020, China cfcao@126.com Abstract. With the development

We've seen examples (servers, actors) where the essential behavior is written once and then instantiated with different functions. The Erlang OTP (Open Telecommunication Platform) pursues this idea aggressively

Using NSM for Event Notification with DM3, R4, and Win32 Devices Abstract This document explains why Native Synchronization Methods (NSM) is the best solution for controlling synchronization of DM3, R4,

THE WINDOWS AZURE PROGRAMMING MODEL DAVID CHAPPELL OCTOBER 2010 SPONSORED BY MICROSOFT CORPORATION CONTENTS Why Create a New Programming Model?... 3 The Three Rules of the Windows Azure Programming Model...

Open telecom platform Seved Torstendahl The open telecom platform (OTP) is a development system platform for building telecommunications applications, and a control system platform for running them. The

nomorerack RELIABILITY AND AVAILABILITY WITH FAST GROWTH IN THE CLOUD CUSTOMER SUCCESS STORY Nomorerack is one of the fastest growing e-commerce companies in the US with 1023% growth in revenue and 15-20x

MANJRASOFT PTY LTD Aneka 3.0 Manjrasoft 5/13/2013 This document describes in detail the steps involved in installing and configuring an Aneka Cloud. It covers the prerequisites for the installation, the

Introduction To WebLogic Server Property of Web 10.3 Age Solutions Inc. Objectives At the end of this chapter, participants should be able to: Understand basic WebLogic Server architecture Understand the

By Ostap Elyashevskyy Automated Performance Testing of Desktop Applications Introduction For the most part, performance testing is associated with Web applications. This area is more or less covered by

Lesson 9: Challenges in Embedded System Design: Optimizing the Design Metrics and Formalism of System Design 1 Amount and type of hardware needed Optimizing the microprocessors, ASIPs and single purpose

Embedded MegaRAID SATA User's Guide Areas Covered Before Reading This Manual This section explains the notes for your safety and conventions used in this manual. Chapter 1 Overview This chapter introduces

MySQL Strategy Morten Andersen, MySQL Enterprise Sales Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes only, and may not

To ensure the functioning of the site, we use cookies. We share information about your activities on the site with our partners and Google partners: social networks and companies engaged in advertising and web analytics. For more information, see the Privacy Policy and Google Privacy &amp Terms.
Your consent to our cookies if you continue to use this website.