riak_core nodes on Heroku?

Samuel Elliott sam at lenary.co.uk
Thu Jun 14 09:37:31 EDT 2012


It's actually very much not possible.

Erlang nodes need to listen on one port for the EPMD, and then another
for HTTP (and maybe more for other coordination). Heroku only lets you
listen on a single node per process, and you can't guarantee scaled
processes occur on the same dyno or even machine to another, so you
can't explicitly run epmd separately.

Yes, distribution via other means seems sensible.

As for the routing mesh issues, they seem to have support for
websockets etc in the proxy, so presumably it is possible somehow to
route TCP messages through.

Sam

On Wed, Jun 13, 2012 at 9:51 PM, Jonathan Baudanza <jon at jonb.org> wrote:
> Getting dynos to communicate might be tricky.  When you make an HTTP request
> to heroku, the request first hits the heroku "routing mesh".  The mesh is
> responsible for deciding which dyno will service the request. I don't know
> of any way to explicitly send a request to a specific dyno.
>
> Dynos are also expected to use no more than 512MB of memory.
>
> This article gives more information on how dynos operate and their
> restrictions.
> https://devcenter.heroku.com/articles/dynos
>
> Despite all of this, it might be fun to try anyway just to see the results!
> Let us know how it goes.
>
> On Wed, Jun 13, 2012 at 1:01 PM, Jon Brisbin <jon at jbrisbin.com> wrote:
>>
>> So long as the dynos can communicate with one another and cooperate via
>> node communication, the stateless nature of the application doesn't really
>> matter. I don't need to persist anything once a dyno is shut down.
>>
>> The thing that makes me curious is whether the things riak_core (not
>> riak_kv) depends on (handoff particularly) could be shoehorned into this
>> environment using the stock tools. I suspect not but wanted to scratch an
>> intellectual itch. :)
>>
>> Thanks!
>>
>> Jon Brisbin
>> http://about.me/jbrisbin
>>
>> On Jun 13, 2012, at 2:44 PM, Jonathan Baudanza wrote:
>>
>> Hi Jeff,
>>
>> Dynos on Heroku don't have access to any permanent disk storage.  They can
>> read and write to /tmp, but that is not guaranteed to stick around.
>>
>> Dynos are also restricted to only accept HTTP connections.  This would
>> rule out any ProtocolBuffer connections.
>>
>>>
>>> Curious if anyone is able to use clustered nodes on Heroku using the
>>> Erlang buildpack [1]? Seems like it should at least be theoretically
>>> possible to launch new dynos that become part of your node cluster. How
>>> reliable/easy/hard is node communication on EC2?
>>> [1] - https://github.com/heroku/heroku-buildpack-erlang
>>
>> _______________________________________________
>> riak-users mailing list
>> riak-users at lists.basho.com
>> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
>>
>>
>>
>> _______________________________________________
>> riak-users mailing list
>> riak-users at lists.basho.com
>> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
>>
>
>
>
> _______________________________________________
> riak-users mailing list
> riak-users at lists.basho.com
> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
>



-- 
Samuel Elliott
sam at lenary.co.uk
http://lenary.co.uk/
+44 (0)7891 993 664




More information about the riak-users mailing list