I am along the way of creating a portable web application using python/cherrypy, which Let me ideally have the ability to simply extract to some folder without having to install anything. One thing potentially stopping this really is my database back finish. Most similar set ups appear to make use of SQLite, however I've got a couple of concerns, when i might have as much as 30 people attached to my server at the same time and am worried the write exclusive locks may have a sizable impact.

My questions:

  1. How badly will SQLite have a problem with handling as much as 30 connections trying to see, having a couple of of individuals trying to create, simultaneously? What type of wait time might an place cause of people attempting to read in the database?
  2. Does anybody have alternative suggestions? Let me avoid MySQL when i possess some commercial aspirations for my project, though whether it's necessary I'll go lower that route. I'd most likely quit full portability and need a PostgreSQL install before I invest in MySQL though....
  3. Could it be plausible to possess a single desktop serving that lots of connections as lengthy as bandwidth is not an problem?

Thanks ahead of time for the help, and apologies if I am asking anything apparent or which has been clarified formerly (I have spent a respectable amount of your time looking for here/on the internet and haven't seen anything definitive). -repole


EDIT: Incidentally, some helpful discussion here for anybody who stumbles this question later.

You will find some pure python databases available, unsure how good or stable they're:

If you're concerned about licenses for distribution, then take a look at stuff by having an Apache license. Among the presently located top tier database projects is CouchDB. Primary problem I see is the fact that distribution isn't as simple as simply together with a Python module.

Unsure exactly what the architecture is much like in your web application, but multiple Sqlite databases could be employed to circumvent the securing problem.

An alternative choice is Berkeley DB: http://docs.python.org/library/bsddb.html