Jim Gallacher
jpg at jgassociates.ca
Tue Nov 28 12:20:34 EST 2006
Graham Dumpleton wrote: > > On 28/11/2006, at 10:04 AM, Martijn Moeling wrote: >> I emailed you guy's personally since you are the driving forces behind >> mod_python (i think) and this is not a real subject for that mailing >> list. > > I see no reason why anything you talk about needs to be handled off > the mailing list, so have sent my response back there. > >> I just send in a proposed new Session.py as a RFC backed with some >> documentation. >> >> I also found an today's article on the mailing list with subject: >> [mod_python] Wiki for mod_python. Contributors welcome. >> Which is about this subject, keeping the MySQLdb out as much as possible >> was one of my goals, but I do not see another option. > > There should be no reason for a MySQL session class to be within the > mod_python session code file for it to work. The only thing you don't > get from > having it separate is the ability for it to be created underneath the > Session.Session() > call based on the value of PythonOption for setting the session type. > Instead you would use: > > req.session = MySqlSession(req) > > The only place where having to do this would be a problem is if you are > using mod_python.psp as it internally uses Session.Session(). It only > does this though if req.session doesn't exist as an attribute. Thus, if > you are > using mod_python.psp you need to create your own handler which does: > > from mod_python import psp > > def handler(req): > req.session = MySqlSession(req) > return psp.handler(req) > > By assigning session instance to req.session, mod_python.psp will use it. > > You will need to have a recent version of mod_python for this to work > though. > > In mod_python 3.3, the ability to use the Apache authentication handler > phase properly means that creating sessions in the main content handler > phase is probably not as a good an option as writing a proper > authentication > handler for the job. In that scenario, you wouldn't even need to wrap > mod_python.psp as session creation would be in a separate handler > anyway. > >> (yes I do: copy >> Session.py to my app dir and not include it from mod_python right?) > > Making a copy of Session.py and modifying it is a bad idea as it is already > out of date if you are using mod_python 3.2.10 or older as various changes > have been made in code in mod_python 3.3. You will loose the benefit of > these changes/fixes if you have your own copy based on an older version. > >> Storing the Sessions in an SQL database can be a huge advantage and I >> think it should be in Session.py since it expands possibilities. (think >> of the multiple front end severs in my situation, and there are File, >> DBM memory possibilities, so why not add MySQL (which is used by most >> mod_python users anyway). With my current project I am preparing for >> 1.000.000 pageviews per hour!! One apache server with mod_python can not >> handle that amount of users. (not all use sessions) >> >> Personally I think mod_python and MySQLdb should team up, I am an >> experienced programmer, but all those newbie guys run into trouble >> configuring the lot > > The topic of having SQL database backed sessions included as a standard > part of mod_python has been discussed before and rejected. Even the > sqlite version which I referred you to was rejected. The issue was that > having > dependencies on external packages was not desirable as it makes the > development and testing more burdensome. This was even though sqlite itself > doesn't require a big database system but can work direct out of the > filesystem. Now that sqlite is included with python 2.5 I can see the possibility of adding that to Session.py at some point. Such an implementation could then be used as a reference for creating other database backends. > If there is every to be database backed sessions included in mod_python as > a standard feature, I'd suggest it is more likely to be code which uses the > Apache 2.2 mod_dbd module in some way so that that stuff in Apache can > be leveraged for the task of database connection management etc. +1 This is something I think we should pursue. If we don't make any progress on it in the near term I think it might make a nice Google Summer of Code project for 2007. > Keep in > mind that mod_python is all about trying to use what Apache provides as > much as possible, rather than creating a separate universe and just using > Apache as a hopping off point. > >> I would love to contribute to the wiki, I'll see into it over the next >> few days. I have been a programmer devoted to Open Source since Linux >> was half a kernel (I implemented large parts of the V4 TCP/IP stack). > > If you want to get involved in the wiki great. Adding the MySQLSession > class as an example would be a good thing to add to the wiki and for the > time being at least is probably the most appropriate place for it to go. > >> Can you help me getting into mod_python development? I am interested in >> adding useful features (like MySQLSession haha) > > The way the Apache software foundation works is that new developers on > projects get commit access on the repository by way of invitation. They > will > get an invitation by demonstrating good knowledge of the package by > helping out on the mailing lists by giving useful assistance to others. > Finding > bugs in the package and investigating it to the level of being able to > provide > a fix also helps. With the wiki now in place, contributing there would also > show your abilities and knowledge and in conjunction with other things > give confidence that providing you commit access to the source code would > be the right thing to do. > > As a first step though, I would suggest you get yourself subscribed to the > mod_python developers mailing list in addition to the standard user mailing > list. I have never seen you post on the developers list so am assuming you > aren't subscribed there at present. Use the mailing list to learn, and > contribute > as you can. If over time you give the core developers a good impression and > when we are looking for extra developers, then you would be considered. Getting on the developers list is definitely the first step. Subscribe by sending a message to python-dev-subscribe at httpd.apache.org. Jim
|