Some thoughts I've had last night while handling a beer:

A web UI for Cassandra, will be sometimes querying remote APIs (JMX,
Thrift), for every node in the cluster.

So, about the non-blocking/blocking issue that Brandon pointed out:

---------

In a totally synchronous/blocking approach, I expect this scenario:

request_some_value_for_every_node:
   for every_node
      request_value_from_api_and_wait (this is a request itself)
      add_value_to_some_list
return list_of_values

------

In a more async/non-blocking approach, this other case:

request_some_value_for_every_node(callback: when_its_done):
   for every_node
      request_value_from_api_and_wait
      add_value_to_some_list

when_its_done:
   return list_of_values

-----------

I wast just wondering if we should leave async servers/frameworks out
of the question, or, in the opposite, think about how we can get a
benefit out of them, having in mind that the UI will be querying API
methods for nodes in an entire cluster sometimes.

Here's some info about various servers including Tornado:

http://nichol.as/asynchronous-servers-in-python




On Mon, Apr 12, 2010 at 9:05 AM, Pablo Cuadrado <pablocuadr...@gmail.com> wrote:
> So far, I think I'm going for Pylons, the discussion gave this "pseudo-votes":
>
> Pylons +3
> Tornado +1
> Django +1
> Undetermined +2
>
> Any further comments on this issue will be appreciated!
>
> Thanks!
>
>
> On Sun, Apr 11, 2010 at 4:58 AM, Eric Florenzano <flo...@gmail.com> wrote:
>> Bottom line with this kind of a project is to go with what you're most
>> familiar with.  If you're equally unfamiliar with all frameworks, then the
>> quality of documentation becomes more important.
>>
>> Personally, I'd take a hard look at Werkzeug--it's a library, not a
>> framework.  Which means you get to pick and choose what bits you want in a
>> sort of a-la-carte way.  In the end, similarly to Pylons or Django, you get
>> a WSGI app that can be served out of the many different WSGI-aware web
>> servers like Apache's mod_wsgi, gunicorn, cherrypy, or even the builtin
>> wsgiref from the standard library.
>>
>> Anyway, I'm not sure if that helps or makes things more confusing :)
>>
>> Thanks,
>> Eric Florenzano
>>
>> On Fri, Apr 9, 2010 at 10:23 AM, Pablo Cuadrado 
>> <pablocuadr...@gmail.com>wrote:
>>
>>> It is indeed a web framework, and made for sys admins to interact with
>>> Cassandra, not for hosting millions of users concurrently.
>>>
>>> And you're right: those are helloworld benchmarks.
>>>
>>> I was concerned a few days ago about the sync/async issue, browsing
>>> over examples on Telephus, Twissandra, Lazyboy, Pycassa... then I
>>> thought that Lazyboy is largely being used in production AFAIK, so
>>> I've just kept it in my mind.
>>>
>>> However, the communication layer for the web UI, should (and hopefully
>>> it will) be independent, in case we want to make this changes in the
>>> future.
>>>
>>> On Fri, Apr 9, 2010 at 2:10 PM, Joseph Bowman <bowman.jos...@gmail.com>
>>> wrote:
>>> > I don't really consider any hello world benchmarks valid, you'd want to
>>> > investigate what your implementation would entail in different frameworks
>>> > and do mini-benchmarks to validate which is faster. But, if it's just a
>>> web
>>> > framework, as Brandon said, I doubt performance will matter to any great
>>> > degree. You'd be more concerned about Cassandra's performance, which is
>>> > pretty darn good.
>>> >
>>> > On Fri, Apr 9, 2010 at 1:07 PM, Brandon Williams <dri...@gmail.com>
>>> wrote:
>>> >
>>> >> On Fri, Apr 9, 2010 at 12:04 PM, Pablo Cuadrado <
>>> pablocuadr...@gmail.com
>>> >> >wrote:
>>> >>
>>> >> > Yes, I'm planning on Lazyboy.
>>> >> >
>>> >> > The Performance part on the Tornado wiki is quite impressive. Do you
>>> >> > think it's accurate?
>>> >> >
>>> >> > http://www.tornadoweb.org/documentation#performance
>>> >>
>>> >>
>>> >> Using Lazyboy, you'd be mixing blocking sockets with a nonblocking event
>>> >> loop, so performance is likely less than optimal.  That said, I doubt
>>> >> performance is a concern with a web UI.
>>> >>
>>> >> -Brandon
>>> >>
>>> >
>>>
>>
>

Reply via email to