Steve Vinoski

steve.vinoski.net · Personal blog · on HN since 2008

Steve Vinoski writes about Erlang, distributed systems, web server benchmarks, and the tradeoffs of programming languages and RPC.

What HN saysHN commenters call his distributed systems paper the best introduction to the topic, and link him for Erlang concurrency and web server benchmarks.
30HN people shared it
9linked it in comments
28stories submitted
177story points
2 years agolast shared
2008people per year2026

Most-shared posts

  1. 1
    Convenience over Correctness (2008) [pdf]
    4 people · 17 points · first shared 2008 · 2 comments on HN
  2. 2
    Erlang Web Server Benchmarking
    3 people · 30 points · first shared 2011 · discussion on HN
  3. 3
    Erlang: It’s About Reliability
    2 people · 22 points · first shared 2008 · 1 comments on HN
  4. 4
    Protocol Buffers == Leaky RPC
    2 people · 6 points · first shared 2008 · discussion on HN
  5. 5
    Static Languages: Rationalizations and Myths
    2 people · 4 points · first shared 2008 · 1 comments on HN
  6. 6
    Google App Engine and Clojure[pdf]
    2 people · 3 points · first shared 2010 · discussion on HN
  7. 7
    A Chat Application in Lift Framework [pdf]
    2 people · 1 points · first shared 2010 · discussion on HN
  8. 8
    Concurrency and Message Passing in Erlang [pdf]
    1 people · 34 points · first shared 2012 · discussion on HN
  9. 9
    You Have to Experience It
    1 people · 16 points · first shared 2008 · 5 comments on HN
  10. 10
    Just What We Need: Another RPC Package
    1 people · 8 points · first shared 2008 · 8 comments on HN
  11. 11
    Process Bottlenecks in Erlang Web Apps
    1 people · 8 points · first shared 2011 · discussion on HN
  12. 12
    Thinking in Language, But Not Clearly (Erlang vs JVM)
    1 people · 7 points · first shared 2008 · discussion on HN
  13. 13
  14. 14
    Scala Web Frameworks: Looking Beyond Lift
    1 people · 4 points · first shared 2011 · discussion on HN
  15. 15
    Bob Ippolito's Erlang Presentation
    1 people · 3 points · first shared 2008 · discussion on HN

What HN people wrote when they linked it

bochi · 2014-08-10
This article is the best introduction to the topic in my opinion: http://steve.vinoski.net/pdf/IC-Rediscovering-Distributed-Systems.pdf Another good reference for understanding distributed databases is: http://cs-www.cs.yale.edu/homes/dna/papers/abadi-pacelc.pdf
mbrubeck · 2009-10-04
It's not the scale, it's the reliability. When I worked at Amazon.com we had a deeply-ingrained hatred for all of the SQL databases in our systems. Now, we knew perfectly well how to scale them through partitioning and other means. But making them highly available was another matter. Replication and failover give you basic reliability, but it's very limited and inflexible compared to a real distributed datastore with master-master replication, partition tolerance, consensus and/or eventual consistency, or other availability-oriented features. I think everyone is missing the boat by evaluating datastores in terms of scalability. Even at Amazon's size, database scaling is only occasionally a problem. By the time your site is that big, hopefully you've split your software into independent services, each with its own (relatively) small database. And for the services that do need a distributed cache or persistence layer, there's now a huge body of literature and software that solves those problems. Reliability is another matter. Every business can benefit from improved reliability, regardless of size. And reliability is harder. Scaling is basically an engineering problem, which can be solved with the right architecture and algorithms. Reliability is more like security: it's a weakest-link problem and requires constant vigilance in all areas, including engineering, testing, operations, and deployment. Adding redundant components improves reliability against hardware…
whalesalad · 2021-12-24
I shared this because I was trying to find "Virding's Rule" but came up short. Finally found it (http://steve.vinoski.net/blog/2008/02/07/wiger-on-erlang-style-concurr… Any sufficiently complicated concurrent program in another language contains an ad hoc informally-specified bug-ridden slow implementation of half of Erlang. raises hand guilty as charged
knutin · 2012-08-31
Hi, Author of elli here. It is very hard to create real and meaningful benchmarks. The "Hello world" benchmarks are very useful when writing a webserver and you are curious about where to optimize it, if necessary. Even though they are very superficial, they can also help you compare two webservers. It is very easy to run the benchmarks on your own hardware. Get elli, then run "elli:start_link()" and hit "/hello?name=john" with apachebench or your tool of choice. Elli is only useful if you want to write an Erlang application that exposes a HTTP API. If you want raw performance, Haskell has some servers which does 300k+ rps. Here is a very good article from Steve Vinoski who is overall a very smart and experienced guy on the topic of benchmarking Erlang webservers: http://steve.vinoski.net/blog/2011/05/09/erlang-web-server-benchmarkin… Knut
lincolnq · 2012-04-27
I agree that the priors would suggest that you are correct, however, let me give some evidence to update you: The Warp web server for Haskell is the fastest Web application server that exists. http://steve.vinoski.net/pdf/IC-Warp_a_Haskell_Web_Server.pdf [pdf, but easy to read] -- in the comparison on page 2, php handled 3400 requests per second, and Warp 81000.
cbf · 2011-05-16
I found Steve Vinoski's comment on this exercise interesting: http://steve.vinoski.net/blog/2011/05/09/erlang-web-server-benchmarkin…
pietrofmaggi · 2010-07-24
Another nice example can be found in the last "Functional Web" column on IEEE Internet Computing by Steve Vinosky: http://steve.vinoski.net/pdf/IC-Getting_Started_with_Google_App_Engine… In the July/August 2010 column, Getting Started with Google App Engine and Clojure, guest columnist Aaron Bedra shows how to use Clojure, a relatively new but robust Lisp implementation on the Java Virtual Machine, create and deploy an application using the Compojure web framework on the Google App Engine platform.
dsickles · 2010-05-05

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close