GitHub user manuelbarzi opened a pull request:

    https://github.com/apache/wicket/pull/212

    WICKET-6177 Blocking page serialization

    from https://issues.apache.org/jira/browse/WICKET-6177
    
    **AsyncPageStore** adds the capability to provide an asynchronous page 
storing by wrapping the original sync page store (e.g. DefaultPageStore) and 
handling store requests in a queue and storing pages in worker thread which 
makes use of the original store. The number of pages to be managed 
asynchronously is defined by a capacity, provided by estimation which should be 
done on each specific application where applied.
    
    The aim of AsyncPageStore is to unblock page requests when serialization 
process takes 'too long', giving the user the sensation of 'slow web'. This 
could happen in applications that for any reason delay on backing up pages by 
means of the current default wicket store.
    
    It adds the chance to manage a preset number of pages asynchronously, 
defined by the 'capacity', and in case that limit is exceeded by requests, it 
just works as the original sync page store, by simply delegating work on it 
until the queue is released and space is done to handle pages in asynchronous 
way again.
    
    It acts in a way like saying "let's handle storing of pages asynchronously 
for an estimated number of them in 'normal conditions', and in case there is an 
excess of pages to store (peak of requests), that is, exceeding async store 
'capacity', then let's just work as normally.
    
    **AsyncPageStoreTest** provides initial on/off cases with the scenarios in 
which async page store works in 'normal conditions' (not exceeding capacity), 
and the opposite (arriving at a point of exceeding that capacity).
    
    original code is already 'gutted' in a **quickstart** for inspection and 
testing in https://github.com/manuelbarzi/wicket-async-page-store
    
    for further details on this projection, just following the first link above.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/manuelbarzi/wicket master

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/wicket/pull/212.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #212
    
----
commit 2ffd587dea4c5e1edec0853f35a9b5761e391917
Author: manuelbarzi <[email protected]>
Date:   2017-02-12T01:23:40Z

    WICKET-6177 Blocking page serialization

----


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

Reply via email to