Thanks. That explanation is helpful.

On Aug 10, 8:49 pm, Thadeus Burgess <thade...@thadeusb.com> wrote:
> Basically, a non-thread safe table design is one that relies on the
> programming code to calculate defaults based on other values in the
> database. A prime example is that web2py does not support
> autoincrement columns other than the automatic primary key of id. If
> you need a autoincrement column as well as your id field, you have to
> emulate this. So if your new records get their extra field calculated
> from the last record inserted into the database (refer to example
> insert query), what happens when two people hit the page within a
> short period of each other? Both end up getting the same last record
> back from the database, and both try to insert with the same
> calculated id, but if the field is unique, only one gets through, the
> other gets a nice fat juicy error page.
>
> There are other database types that web2py does not support, and it is
> not wise to emulate them, just design your database without those
> types.
>
> Yes, you will lose CSRF and double submission protection. I do not
> know if anyone has ran any of the proposed tests yet. Its definitely
> on my todo list when I can find spare time.
>
> --
> Thadeus
>
>
>
> On Tue, Aug 10, 2010 at 4:58 PM, Anthony <av201...@yahoo.com> wrote:
> > On Aug 9, 9:33 am, Thadeus Burgess <thade...@thadeusb.com> wrote:
> >> Just make sure to follow ALL of the web2py performance enhancements.
>
> >> * Compile the app
> >> * Sessions to database
> >> * Make sure all database tables are designed to be thread safe
>
> >> (ie: don't do things like this... db.table.insert(myid=db(db.table.id
>
> >> > 0).select(orderby=~db.table.myid, limitby=(0,1)).first().myid + 1))
>
> > Can you explain more about how to stay thread safe with database table
> > design? Is there a reference you can point to? Do any common web2py
> > conventions tend to violate thread safety?
>
> >> Also you might want to consider only using
> >> form.accepts(request.vars)... when using sessions with forms can cause
> >> reliability issues, even if your sessions are in the database.
>
> > But without using sessions with form.accepts, don't you lose the built-
> > in protection against CSRF and double submission? Are there easy
> > alternative methods to handle those issues?
>
> > I notice this issue was discussed in [1], [2], and [3] and some tests
> > were proposed there. Have those tests been run or any further progress
> > been made on diagnosing/fixing the problem with failed requests?
>
> > [1]http://groups.google.com/group/web2py/msg/29e17a9f37a4a78f
> > [2]http://groups.google.com/group/web2py/msg/f6aa101f5140dc55
> > [3]http://groups.google.com/group/web2py/msg/cda63a88f3b71f94
>
> > Thanks.
>
> > Anthony- Hide quoted text -
>
> - Show quoted text -

Reply via email to