## Remove libmm |
|
OSSP mm is licensed under 4 clause BSD license that is |
not compatible with GPL. It should be replaced with |
Boost.Interprocess that is available starting from 1.35 |
and have anonymous map for forked processes starting from |
1.36. |
|
## Improve Widgets |
|
Improve widgets to cover _all_ options available in |
standard (X)HTML. |
|
## Documentation |
|
### Terminology |
|
Line Up Everything with consistent terminology --- don't mix view/skin/template etc. |
|
### Internals |
|
All internal features should be documented in order |
to allow transparent extension of various features. |
|
## Improve Cache system |
|
Today cache system uses: |
|
- std::map as primary and secondary key |
- Implements additional secondary key for explicit removal |
based on timeouts. |
- LRU algorithm for cache |
|
This solution works with O(log n) complexity and not scan |
resistant. |
|
Following Required: |
|
- Remove timeout index in order to remove log complexity. |
- Replaces key/value search container of std::map to `unordered_map` in order to achieve O(1) complexity. |
- Test possibility of replacement of LRU algorithm with 2Q that is scan resistant algorithm. (Is this relevant for Web?) |
|
## Improve TCP Cache |
|
Problem: |
|
Today distributed cache system works very similarly to memcached --- every fetch requires round-trip to remote server. This significantly reduces cache performance in case |
of distributed system in comparison to in-memroy cache. |
|
Thus in the process of scale-up performance/cost factor becomes much lower when use of distributed cache is started. |
|
Solution: |
|
Implement L1-in-memory cache that would cache most frequently used cached entries in memory of each of the nodes of distributed system. |
|
How to manage consistency of such cache? Probably the size of L1 cache should be quite small and it should not be updated frequently. Cache servers should be aware of entries stored in L1 cache and thus broadcast "rises" only for cached keys --- this would remove all unnecessary traffic of removed entries. |
|
## Cache Debugging utilities |
|
Problem: |
|
Debugging of application that uses trigger based cache can be quite painful due to problematic access to internal structures of cache system |
|
Solution: |
|
Implement simple CppCMS application that would create a browser based access to cache content. |
|
## Degraded Mode of work |
|
Problem: |
|
What happens when one of cache/session servers fails? |
|
Solution: |
|
Provide automatic servers fail-detection procedures and continue to work in degraded mode. |
|
## Logging |
|
Provide simple logging framework for CppCMS applications |
|
## Crontab |
|
Implement "crontab" facilities --- and ability to run some task periodically |
|
## XSS Filters |
|
Provide some efficient anti-XSS filters. It is very important part of web development but there is no tools written in C/C++ that does this. |
|
## CppCMS as apache loadable module |
|
Test Feasibility of Running CppCMS application as |
apache loadable module should be tested. |
|
Questions: |
|
1. How several different application would interfere? |
2. How to implement separation interference in process shared cache and in templates system. |
3. Is this required at all? |
|
## Native Windows Support |
|
- Consider how much effort should be put to make CppCMS support windows naively |
- How degraded this mode would be? |
- Is it feasible to do only withing Mingw environment or VS may be applicable as well? |
|
|