Archive for April, 2008

Phusion Passenger (mod_rails) version 1.0.2 released, and more

Passenger version 1.0.2 has been released. :) We’ve finally finished our corporate blog now, so visit http://blog.phusion.nl/ for the release announcement, overview of changes, upgrade instructions, and more.

Now that we finally have an official corporate blog, people can stop complaining about my blog template. ;) Note that our corporate blog’s template isn’t finished yet: it still needs some polish.

Comments (5)

The hidden corners of Passenger

There are a few technical achievements in Passenger that we haven’t actively marketed. But we’d like the community to be aware of them, so we’ve written this blog post. :)

Unix domain sockets

Not too long ago, Thin announced support for Unix domain sockets. This gave Thin an incredible speed boost. Switchpipe soon followed, with alpha support for Unix domain sockets.

It has always surprised me that the Ruby/Rails web containers didn’t support Unix domain sockets until early 2008. Unix domain sockets aren’t exactly rocket science or exotic: the X Window System has used them for client-server communication on localhost for as long as I can remember. Database systems such as MySQL prefer to use Unix domain sockets on localhost as well. It’s also well-known that Unix domain sockets are faster than TCP sockets.

There’s one down side to Unix domain sockets though: you have to remove them. Usually, server processes remove them during exit. But if the system crashes, or if those processes crash, then the socket files are never removed, and the system administrator will have to do that manually. Ouch, maintenance overhead.

Passenger uses Unix sockets extensively, and has done so since the first release. But there’s one difference compared to Thin and Switchpipe: Passenger uses Unix sockets in the abstract namespace (as opposed to on the filesystem) whenever possible. Abstract namespace Unix sockets have filenames, just like regular Unix sockets, but they do not appear as files on the filesystem. This means that after a reboot, or if Apache crashes, no stale files will be left on the filesystem. This way, the system administrator doesn’t have to manually remove stale files if something went wrong.

Passenger strives for a concept that we call “zero maintenance”. We believe that software should Just Work(tm), and system maintenance overhead should be as low as possible. The system administrator shouldn’t have to worry about stuff like stale files, if he doesn’t have to. Ideally, the system administrator should be able to forget that he ever installed Passenger at all. The usage of abstract namespace Unix sockets is one of the mechanisms that we use to achieve that goal.

PID files (or the lack thereof)

Mongrel and Thin write so-called PID files to the filesystem. PID files contain the PIDs of background processes, and are used for shutting down those processes. But if the system crashes, or if those background processes crash, then the PID files will never be removed, and they become stale PID files. Early Mongrel versions refuse to start if there are stale PID files, forcing the system administrator to remove them manually. Passenger on the other hand doesn’t use PID files at all. If one shuts down Apache, then all Rails processes are shut down as well.

So what happens if Apache crashes? The Rails processes will exit as well. We use so-called “owner pipes” in Passenger, pipes that are shared between Apache and the Rails processes. Owner pipes are essentially a mechanism for reference counting processes. If Apache crashes, then the owner pipe is automatically closed. The Rails processes will detect this, and will shut down gracefully.

Comments (3)

Passenger (mod_rails): community response, donations, InfoQ interview

Community response: one week after the release

It has been a little more than one week since the first public release of Passenger. In this one week, lots and lots of people have blogged about us, including even O’Reilly. The feedback has been overwhelmingly positive! :)

A few nice quotes from the community:

  • “As many of you have already done, I hopped on board to see how it worked and was amazed on how easy it was to get up and going.” — O’Reilly
  • “So far I’m happy to report that, as advertised, it’s dead easy to use… and the performance seems solid.” — zerosum.com
  • “Mod_rails seems to be a surprising stable and finished product, and this for a first public release! I’m anxious to check out their Ruby Enterprise Edition.” — Handermann.be

Thanks for the praise, everybody. :)

“Enterprise licenses” (a.k.a. donations)

One may wonder why our “Enterprise”/Donation page was taken down so soon. It’s because people have been very, very generous with regard to donating to us. :) In fact, so generous that Paypal decided to block our account under the guise of “anti-money laundering investigation”. But everything has been cleared up now, so the donations page is once again online.

If you’d like to help us survive the coming winters, or just want to support Passenger’s development, then please consider getting an “enterprise” license. ;)

InfoQ interview

We’ve been interviewed by InfoQ. This interview elaborates some things about the name and the license. It also elaborates our upcoming memory optimizations for Passenger/Ruby, which allows them to use less memory. More information about this soon, honestly. ;)

On a side note, we’re preparing the release of Passenger 1.0.2. It will soon be available.

Comments (1)

Phusion Passenger Enterprise Licensees, check your mail

Hi there,

Our apologies for the later than usual update, but things are getting really busy here at Phusion and this has been the first opportunity that we’ve been able to blog about the latest developments again! First off, we’d like to take the opportunity to ask all enterprise licensees to check their mail as they’re bound to find something nice there ;-)

Also, the next batch of enterprise licenses will become available very soon. We just wanted to let you guys know that we’re still alive and are working around the clock on some very interesting projects for our clients. Regardless of this, we want you guys to know that we’re still actively involved in the development of Phusion Passenger and Ruby Enterprise Edition and for those who want to know a bit more about Phusion Passenger and Ruby Enterprise Edition, we’ve recently done a mini interview with the fine people at infoq, and we encourage you to go check it out over here.

Even though we try to stay as actively involved as possible, we would also like to encourage the community to submit patches for the improvement of Phusion Passenger. We’re confident that we can make Passenger even better together (wow, that even rhymes so it must be true right? ;-) ).

Also, it has come to our attention that some of you guys have expressed a concern about the memory use of Phusion Passenger and we have reason to believe that the memory wasn’t always measured in an accurate way. This is for the greater part the result of a well known problem with the innacurate display of memory usage by ps and/or top.

We’ll try to write an article on this as soon as possible where we will address this ‘issue’ with the appropriate measuring tools as well. Hopefully, this should set the record straight and take away any reluctance to try out Phusion Passenger as we’re pretty confident that Phusion Passenger uses a lot less memory than some people seemed to have inferred. :-)

We’d like to leave it at this for now, and we’ll keep you guys posted and would love to stay in touch with you guys :-) .

Cheers,
Hongli Lai
Ninh Bui

Comments (1)

PHUSION PASSENGER (MOD_RAILS) PUBLIC RELEASE, HECK, IT’S ABOUT TIME :-)

After weeks of teaching it hardcore computer science kung-fu, we’ve finally reached a stage in that we think our little baby is now all grown up. It is no longer solely dependent of our care, and from this moment on, Phusion Passenger is available for the masses.

Phusion Passenger has been the result of many many many (did I say many? I mean MANY) hours of hard work by both Hongli and I ( Ninh ), but it couldn’t have been made possible without the help of our beta testers. In particular, we’d like to thank Dallas of Dreamhost for being so patient and we’re looking forward to seeing Passenger being fully integrated in your hosting plans. Also, we’d like to thank Alex of Twitter for trying his best to test Passenger in time.

Also, we’d like to thank the Ruby on Rails core team for their insightful feedback and support, and in particular, we’d like to thank David Heinemeier Hansson, Jeremy Kemper and Pratik Naik for this.

Yukihiro Matsumoto (matz), thank you for the kind words on our project, it really kept us motivated.

Ryan Bates of Railscasts, thank you so much for doing the screencast on Phusion Passenger. We’re looking forward to meeting you in person at Railsconf and being able to thank you properly :-) Depending on the paint we’re allowed to carry with us, shaking a green hand may be involved ;-)

Antonio Cangiano, thanks for the coverage. It was when we saw that a technical evangelist at IBM had written about us that it truly hit us that we were doing something important.

Russel Norris, you really should not underestimate the importance of your great sense of humor for an open source project :-D .

Since we’re from the Netherlands, we’d also like to thank our fellow dutchmen Stefan Fountain of Soocial and Thijs van der Vossen of Fingertips for their support on this project.

Also, thank you Weyert de Boer for being a great friend and helping us streamline the markup of our website. Even though we haven’t been able to complete it yet, we’re confident that we’ll be able to finish this with your help and we thank you for this.

Lastly, we’d like to thank Hans Scholten of the University of Twente for offering to help us on writing a scientific paper on our work with Ruby Enterprise Edition and Phusion Passenger.

To you the reader, we hope that you’ll enjoy using Passenger and we thank you for your patience. We’ll be seeing you guys at Railsconf USA 2008 :-) (and probably Apachecon USA 2008 as well! :-) )

Be sure to check us out there, since we’ll be doing a talk on Phusion Passenger (mod_rails) and our garbage collector optimization work on MRI. The talk material will be based on our scientific paper to be published on eprints, so the tech savvy among you guys will be in for a treat :-) .

For science and all things pragmatic, this was Hongli Lai and Ninh Bui of Phusion, The Computer Science Company, wishing you a good weekend as we’ll be seeing you guys monday again. We’re going to take that well-deserved time off now ;-) .

P.S. Even though we’re currently getting swamped with clients, that shouldn’t stop you from contacting us for business enquiries. As a matter of fact, we’re planning on expanding our team, so if you’re a computer scientist / developer located in the Netherlands with a lot of work experience and interested in working with us, please contact us as well :-)

Comments (49)

Phusion Passenger Screencast 2.0 (With Ryan Bates, 100% Scary Hand Free), plus something more…

Ninh wrote this a while ago:

“Lastly, we’d like to take the opportunity to thank Ryan Bates of Railscasts for creating an excellent screencast on Passenger, and you’ll be able to see this for yourselves at the public release of Passenger this week. Needless to say, it totally kicks the *censored* out of our initial screencast :-D

Are you guys ready? ;)

Comments (2)

Phusion Passenger (mod_rails) update

So you guys are probably still waiting for the release of Passenger, and I’m pleased to say that we’ve been able to include the test results from Dreamhost (thanks Dallas :D ) in the first public release that you’ll see within this week. (Hold on just a little longer guys ;-) , with a bit of luck, Twitter’s results will come in as well prior to the release of Passenger this week).

Instead of writing an elaborate blog post, I’ll keep it concise for the time being as we’re currently getting swamped at Phusion.

Today, after planning to do this for quite a long time now, we went to go see our Operating Systems/Computer Architecture teacher, Ir. Hans Scholten to discuss the possibilities for receiving ECTS for our work on both Passenger and Ruby Enterprise Edition (our ruby branch containing our garbage collector optimization).

From this, it became clear that our work wasn’t something trivial and Hans elaborated on the possibilities for publishing this work scientifically. Needless to say, we’re more than thrilled about this. After all, we’re “Phusion, the computer science company” right? ;-)

All kidding aside though, we do intend on taking Hans up on his offer to write a scientific paper on our work, seeing as this is just too great an opportunity to ignore. With his help, we’re more than confident about the quality of its contents.

Lastly, we’d like to take the opportunity to thank Ryan Bates of Railscasts for creating an excellent screencast on Passenger, and you’ll be able to see this for yourself at the public release of Passenger this week. Needless to say, it totally kicks the *censored* out of our initial screencast :-D .

To all the people that have submitted a voice sample, we’ll be crediting you on the screencast section of the Passenger as well :-) .

Hang on in there for just a little longer people ;-) , we’re almost there!

Thanks,

Hongli Lai
Ninh Bui

Comments (11)

Robustness comparison between Phusion Passenger, Thin, Ebb and Mongrel

Comments

The moment you’ve all been waiting for (and so have we)

Comments (2)

An update on Passenger (mod_rails) related stuff

Since we’re almost nearing the weekend, we thought we’d give you guys a little heads-up on the things we’re currently doing.

As you may have recalled from several days ago, we’ve asked for your voice in the most literal sense of the word for our new (series of) screencasts that we’re planning on doing.

We’re pleased to say that a lot of you guys out there have been sending in your voice samples, and to our great surprise, it wasn’t just guys who were sending in their voices :D . More on that later though, and for now, we’d like to again take the opportunity to thank you all.

Among those submissions, we’ve also received one from Ryan Bates which you may already know from his excellent Railscasts website. Greatly impressed by the quality of his previous work, we’re pleased to announce that Ryan Bates has agreed on doing the first ‘official’ screencast on Passenger. This screencast will be based on the latest beta that we’ve provided him with: don’t even bother asking him to leak it though, as he has assured us that such attempts will be in vain ;-) .

But what about all those submitted voice samples? Well, we’re currently planning on doing a demo reel on Phusion as a company as well, and needless to say, we’re going to need a voice over for this as well.

It is for this reason that we’ve decided to take the people who’ve submitted their voice samples into consideration for this, since you all sounded more than suitable for this. Needless to say, this is only possible if you’re willing to do this, and we’ll be sure to contact you guys on this soon. Due to our busy schedules however, we may not be able to contact each and every one of you, and we ask for your understanding on this.

Whichever the case may be, we will however be crediting each and everyone of you on the Passenger screencast site. :-)

Regarding the demo reel, we’re currently in talks with several video production companies and individuals for helping us create this, and we’ll probably be able to share some more information on this with you guys soon.

Concerning Passenger, we’ve decided to increase our sample space by accepting some additional large Ruby on Rails hosts for beta testing, in the hopes of being able to release it to the public even sooner. If you’re attending Railsconf like we’re planning on doing, then you’ll probably be able to ask them about their findings on Passenger as well ;)

Also, you may have read our article on the performance of Passenger compared to other popular solutions out there. However, we haven’t touched the subject of stability/robustness yet, and since Passenger was designed for this as well, we’ve also tested this on the other popular solutions. We’ve been able to infer some interesting results, and we’ll be posting a detailed article on this as soon as we’re done doing administrative work for Phusion.

Lastly, even though we’re getting swamped at Phusion, this shouldn’t stop you from contacting us in case of a question/fanmail ;) . We’d be more than happy to receive/answer them :)

With kind regards we are, your friends at Phusion,
- Hongli Lai
- Ninh Bui

Comments (7)

« Previous entries Next Page » Next Page »