• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Erlang: Bult for concurrent, distributed systems
 

Erlang: Bult for concurrent, distributed systems

on

  • 1,623 views

Quick overview of Erlang presented to the Vancouver Graph Database meetup on July 27, 2011.

Quick overview of Erlang presented to the Vancouver Graph Database meetup on July 27, 2011.

Statistics

Views

Total Views
1,623
Views on SlideShare
1,619
Embed Views
4

Actions

Likes
1
Downloads
23
Comments
0

2 Embeds 4

http://twitter.com 3
http://www.linkedin.com 1

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Erlang: Bult for concurrent, distributed systems Erlang: Bult for concurrent, distributed systems Presentation Transcript

    • Erlang Built for concurrent, distributed systems July 27, 2011 Ken Pratt http://kenpratt.net/Wednesday, July 27, 2011
    • The philosophy "Erlang was designed for writing concurrent programs that "run forever"" - Joe ArmstrongWednesday, July 27, 2011
    • The philosophy Simple language Ultra-lightweight concurrency No shared state Local & remote communication via messagingWednesday, July 27, 2011
    • The language Functional Pattern matching No variables! (well, they don’t vary, anyway) Compiled to bytecode, runs on VMWednesday, July 27, 2011
    • The VM Processes Pre-emptive scheduler Memory manager Mesh networkingWednesday, July 27, 2011
    • Erlang == distributed OS? Erlang is not so much a programming language as it is a distributed Operating System. It’s like an ant colony with thousands of ants performing all sorts of different tasks. Erlang is to threads what garbage collection is to manual memory management -- it brings concurrent programming into the 21st century.Wednesday, July 27, 2011
    • Local architecture = light-weight process with a built-in mailboxWednesday, July 27, 2011
    • Distributed architecture = light-weight process with a built-in mailboxWednesday, July 27, 2011
    • Interesting architectures Having thousands of lightweight “threads” really opens up the architecture options. The main example application on the “Erlang and OTP in Action” book is a cache using one process per cache entry!Wednesday, July 27, 2011
    • Standard library Common patterns do all the concurrency heavy lifting for you (gen_server, rpc) Supervision trees Hot code deploymentWednesday, July 27, 2011
    • In production Chat backend SimpleDB Orchestration of Ruby services Routing mesh, logging systemWednesday, July 27, 2011
    • Erlang + Neo4j Erlang has graphs: http://www.erlang.org/doc/man/ digraph.html BUT, it’s no Graph DBWednesday, July 27, 2011
    • Erlang + Neo4j Nerlo: http://github.com/nerlo/nerlo (Jinterface-based) Cali: http://github.com/dmitriid/cali (Jinterface-based) Both look pretty dead-in-the-water (no commits on either project in ~1 yr) BUT, Jinterface works well, so does Mule ESB. So in the worst case you could write your Neo4j adapters in the JVM and bridge to Erlang with a biz-logic-level API.Wednesday, July 27, 2011
    • ResourcesWednesday, July 27, 2011