API Changes and mod-prefork
There have been lot of work in recent weeks in order to make deep internal changes in the framework. Now they include:
- Transparent support of 3 web server APIs: fastcgi, cgi and scgi.
- Support of new mod prefork that allows safer management of worker processes.
- Implementation of a cache that is shared between forked processes.
A new name for CppCMS Project?
Now it is clear for me that CppCMS is not quite successful name for this project. Manys think that it is rather Content Management System like Drupal written in C++, then A C++ Web Development like Django that allows you to write CMS.
So think is it worth to change the name of the project to something other? If so what name to choose?
Update: 2012-08-19
The name of the project will not be changed. It is already widely known and embedded into the software as namespace. So we'll stick with it.
CppCMS vs WordPress
Setup
I had compared two blog systems: this one and WordPress 2.5 with a patched WP-Cache-2 addon. I used following configuration:
- Web Server lighttpd 1.4.13
- Interface FastCGI
- PHP 5.2
- Bytecode cacher: XCache 1.2.1
- Database MySQL 5.0
- Caching for WP: WP-Cache-2 with an additional performance patch
- Hardware: AMD Athlon XP 64bit, 1G RAM
- OS: Linux, Debian Etch 64bit.
I prepared two blogs that were filled up with 1000 articles each. Each article had 10 comments, all the articles were organized in 10 categories in each blog.
more...Patch For WP-Cache-2 plugin
I'm going to run a heavy benchmarks comparing WordPress -- the blog system I know very well, with CppCMS based blog -- the system I had written.
The new caching system that was developed for CppCMS is quite smart, it stores the entry pages twice: original and gzip compressed. On heavy loads, this allows serving pages significantly faster because only thing that should be done is to push html or compressed html page directly from the cache. Otherwise, gzip compression (even fastest) would take lots of resources and reduces a preformace of the system.
When it comes to benchmarks, I had discovered that WP-Cache-2 plugin does the job well, but it caches only html version of the file, thus, even if the page is cached it still must pass a compression by Apache's mod_deflate or by PHP engine itself.
I had patched this plugin and now it stores two versions of same page: an original and compressed. and was able to get 60% performace improvement.
- WordPress native plugin: 450 requests per second
- WordPress patched plugin: 720 requests per second
So after this patch I can feel that the benchmarks would be proper, because without it this would be incorrect to compare time required for fetching a cache with the time required for compressing entry page.
Links:
N.B.: The full benchmarks coming soon
Building CppCMS
I had not published any official alpha or beta release yet, however, anyone who wants to use it can install the framework quite easily (I think).
There are three major parts of the framework:
- Templates support module -- libtmpl or templates subproject.
- C++ Wrapper for dbi DB access library -- libdbixx or dbixx subproject
- Base framework -- libcppcms or framework subproject.
- This blog -- an example how to use CppCMS or cms subproject
Thus in order to install the system we need to do following:
more...
