3

I am planning to make some big project (1 000 000 users, approximately 500 request pre second - in hot time). For performance I'm going to use no relational dbms (each request could cost lot of instructions in relational dbms like mysql) - so i can't use DAL.

My question is:

  1. how web2py is working with a big traffic, is it work concurrently? I'm consider to use web2py or Gork - Zope,
  2. How is working zodb(Z Object Database) with a lot of data? Is there some comparison with object-relational postgresql?

Could you advice me please.

Robert
  • 81
  • 2
  • IMHO, parameters are too vague for a performance-related question. Can you re-phrase in terms of number of the average likelihood of specific kinds of transactions (write, read, blocking) per-request? What kind of data are you storing? How frequently does it change? How expensive is invalidating and repopulating something cached (and how frequently must that happen)? – sdupton Apr 03 '12 at 17:10

3 Answers3

7

First, don't assume that a data abstraction layer will have unacceptable performance, until you actually see it in practice. It is pretty easy to switch to RAW sql if and when you run into a problem.

Second, most users who worry about there server technology handling a million users never finish their applications. Pick whatever technology you think will enable you to build the best application in the shortest time. Any technology can be scaled, at the very least, through clustering.

mikerobi
  • 20,527
  • 5
  • 46
  • 42
  • +1 and I would add that memcached appears to be *the* drop-in solution for reducing DB hits in general. Much better to focus on getting the app to actually work first, than to worry about scaling upfront. – Caleb Hattingh Mar 17 '10 at 07:42
  • Thanks for responding, but i thing GAE is not what i going to use. I going to model object relational DB on postgresql. So I will need to go without DAL. Am I right? – Robert Mar 17 '10 at 23:14
  • Postgresql isn't really object relational. It does support a form of table inheritance, but it has its limitations, and in any case you will still end up using it like any other relational database. Write a small app with both approaches and figure out which one is best for you. – mikerobi Mar 17 '10 at 23:41
  • so i can't use fully nested tables in postgresql? – Robert Mar 18 '10 at 17:38
  • "most users who worry about there server technology handling a million users never finish their applications." soooooooooo true. – Tom Willis Apr 03 '12 at 03:31
4

I agree with mikerobi - pick what will let you develop fastest. For me that is web2py.

web2py runs on Google App Engine, so if you don't want to use a relational database then you can use Google's datastore.

hoju
  • 28,392
  • 37
  • 134
  • 178
  • Thanks for responding, but i thing GAE is not what i going to use. I going to model object relational DB on postgresql. So I will need to go without DAL. Am I right? – Robert Mar 17 '10 at 23:13
  • what ORD features do you need? web2py DAL supports table inheritance. Probably best to deal directly with postgres though. – hoju Mar 18 '10 at 00:19
  • i need nesting tables. Something like in oracle: create type ListaLineasCompra_TipoAnidada AS TABLE OF LineasCompra_TipoObjeto --(constraint ListaLineasCompra_pk primary key(IdLineaCompra) ) ; / CREATE type OrdenCompra_TipoObjeto AS OBJECT ( IdCompra number, ClienteRef REF Clientes_TipoObjeto, FechaCompra date, FechaEnvio date, ObjDireccionEnvio Direccion_TipoObjeto, ListaLineasCompra_Anidada ListaLineasCompra_TipoAnidada, ); – Robert Mar 18 '10 at 17:34
1

Zope and the ZODB have been used with big applications, but I'd still consider linking Zope with MySQL or something like that for serious large-scale applications. Even though Zope has had a lot of development cycles, it is usually used with another database engine for good reason. As far as I know, the argument applies doubly for web2py.

GregD
  • 741
  • 7
  • 15