Interleave Just Got Better

Mon Feb 23 17:03:07 2009 EST (-0500 GMT)

Toot my own horn.. thanks to me.

I just wanted to toot my own horn and let everyone know that a modification I made to our local Centre for Teaching, Learning and Educational Technologies “Client Relationship Manager” (AKA any other set of words that match CRM) called INTERLEAVE will be incorporated into the next release.

Interleave is a (business) process automation application and what I implemented to track my own work at Brock University. It allows me to stay on top of issues and names, and ultimately be able hand-off issues with some accountability and be able to report on the work I do year-to-year.

Our installation was getting a little slow, and I had tracked it to having a lot of clients and that creating a lot of communication between the web server and the database in certain situations. INTERLEAVE has it’s own caching infrastructure to speed this situations up so I took a look at it and just wrote some simple PHP code around it to have it store the cached items inAPC’s cache instead of the database.

This is an advantage because APC implements shared memory in PHP (among other things) and that allows to be stored between transmission between the web server and the client WITHOUT the need for a database, or the internal communication and overhead that requires. There a number of tools that do this for PHP, but APC is the one that should be included into PHP 6.

How shared memory works

If a web server fronted to a database could be considered a place like the post office, having shared memory copies of things is like walking up to the person at the front desk and asking “Is there any mail in back for me?” and the immediate response from the top of the postmaster’s head being “Your mother says you don’t write enough and Rogers wants you to buy a home phone” — with similar security concerns.

I posted my update to the INTERLEAVE Forum. Hidde, the creator and project manager of INTERLEAVE apparently likes the idea and has taken my code, which would work without APC installed but complain, and enhanced it to not complain and apparently it’s going in the next release of INTERLEAVE. I was glad to help as INTERLEAVE is great tool and I want to help the project as much as I can.

Lastly, if you haven’t installed APC on your PHP-based server I highly recommend it. Having all of your files pre-compiled with the option to tell APC/PHP to not look at the files on the drive at all when requested is a significant speed boost for any site. If you modify your code like Mediawiki/Wikipedia have (which is where I first learned of it) or as Facebook has, it can significantly speed-up the execution of your PHP scripts and allow for systems that might require Java or ASPX to be implemented in PHP.

  • Sweet! Remember to add to your C.V AND to your annual report. Toot, toot!

  • Phonique

    Apparently there are some more issues to take care of:
    “The problem occurs when storing large (well, large… 27Kb) serialized arrays using APC, the value never comes back, unless we set the available memory for APC to a ridiculously high value (2GB) which obviously isn’t quite acceptable.” – sourceforge.net/forum/message.php?msg_id=6511023

    Maybe you could help Hidde out a little bit more with that, so as to not distract his attention from his other plans? I believe we would all benefit from that, and that would be really nice. ;)

  • Rich C.

    ~sigh~ I would have known what all this meant at one point, but now it just seem so foreign. Nice work though!