incubator-sling-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From conflue...@apache.org
Subject [CONF] Apache Sling > Higher level observation services
Date Thu, 02 May 2013 12:46:00 GMT
<html>
<head>
    <base href="https://cwiki.apache.org/confluence">
            <link rel="stylesheet" href="/confluence/s/2042/9/1/_/styles/combined.css?spaceKey=SLING&amp;forWysiwyg=true"
type="text/css">
    </head>
<body style="background: white;" bgcolor="white" class="email-body">
<div id="pageContent">
<div id="notificationFormat">
<div class="wiki-content">
<div class="email">
    <h2><a href="https://cwiki.apache.org/confluence/display/SLING/Higher+level+observation+services">Higher
level observation services</a></h2>
    <h4>Page <b>edited</b> by             <a href="https://cwiki.apache.org/confluence/display/~bdelacretaz">Bertrand
Delacretaz</a>
    </h4>
        <br/>
                         <h4>Changes (10)</h4>
                                 
    
<div id="page-diffs">
                    <table class="diff" cellpadding="0" cellspacing="0">
    
            <tr><td class="diff-added-lines" style="background-color: #dfd;">{style}
<br>   .deflist h4 { margin-top: 0; font-size:100%; font-weight:normal; font-style:italic;
} <br>  .deflist h4 + p { margin-top: 0;  } <br>  .deflist p { margin-left: 2em;
} <br>  .deflist ul, .deflist ol { margin-left: 2em } <br>{style} <br></td></tr>
            <tr><td class="diff-unchanged" >Analyzing how we use observation in
our Sling-based apps shows a number of recurring patterns, described in this page. <br>
<br></td></tr>
            <tr><td class="diff-snipped" >...<br></td></tr>
            <tr><td class="diff-unchanged" >h2. Cached Content <br> <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">{div:class=deflist}
<br>h4. Trigger <br>Changes in content under specific paths (or path regexps),
with optional restrictions on node types and/or event types. <br>h4. Action <br>Clear
an internal cache that is rebuilt the next time someone needs it. <br>h4. Typical uses
<br>Configurations, CSS/javascript processing, Sling installer, etc. <br>h4. Frequency
<br>Content changes are usually not very frequent, for the above typical uses. <br>h4.
Performance <br>Some latency between content changes and processing is usually not a
problem. <br>h4. Potential issues <br>N requests coming just after clearing the
cache should cause just one cache rebuild, not N. <br>{div} <br> <br></td></tr>
            <tr><td class="diff-unchanged" >h2. Content Ingestion <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">{div:class=deflist}
<br>h4. Trigger <br>Changes in content under specific paths (or path regexps),
with optional restrictions on node types and/or event types. <br>h4. Action <br>Clear
an internal cache that is rebuilt the next time someone needs it. <br>h4. Typical uses
<br>Configurations, CSS/javascript processing, Sling installer, etc. <br>h4. Frequency
<br>Content changes are usually not very frequent, for the above typical uses. <br>h4.
Performance <br>Some latency between content changes and processing is usually not a
problem. <br>h4. Potential issues <br>N requests coming just after clearing the
cache should cause just one cache rebuild, not N. <br>{div} <br></td></tr>
            <tr><td class="diff-unchanged" > <br>h2. Content Export <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">{div:class=deflist}
<br>h4. Trigger <br>Changes in content under specific paths (or path regexps),
with optional restrictions on node types and/or event types. <br>h4. Action <br>Clear
an internal cache that is rebuilt the next time someone needs it. <br>h4. Typical uses
<br>Configurations, CSS/javascript processing, Sling installer, etc. <br>h4. Frequency
<br>Content changes are usually not very frequent, for the above typical uses. <br>h4.
Performance <br>Some latency between content changes and processing is usually not a
problem. <br>h4. Potential issues <br>N requests coming just after clearing the
cache should cause just one cache rebuild, not N. <br>{div} <br></td></tr>
            <tr><td class="diff-unchanged" > <br>h2. Aggregation of changes
<br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">{div:class=deflist}
<br>h4. Trigger <br>Changes in content under specific paths (or path regexps),
with optional restrictions on node types and/or event types. <br>h4. Action <br>Clear
an internal cache that is rebuilt the next time someone needs it. <br>h4. Typical uses
<br>Configurations, CSS/javascript processing, Sling installer, etc. <br>h4. Frequency
<br>Content changes are usually not very frequent, for the above typical uses. <br>h4.
Performance <br>Some latency between content changes and processing is usually not a
problem. <br>h4. Potential issues <br>N requests coming just after clearing the
cache should cause just one cache rebuild, not N. <br>{div} <br></td></tr>
            <tr><td class="diff-unchanged" > <br>h2. Consistency Checks
and Fixes <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">{div:class=deflist}
<br>h4. Trigger <br>Changes in content under specific paths (or path regexps),
with optional restrictions on node types and/or event types. <br>h4. Action <br>Clear
an internal cache that is rebuilt the next time someone needs it. <br>h4. Typical uses
<br>Configurations, CSS/javascript processing, Sling installer, etc. <br>h4. Frequency
<br>Content changes are usually not very frequent, for the above typical uses. <br>h4.
Performance <br>Some latency between content changes and processing is usually not a
problem. <br>h4. Potential issues <br>N requests coming just after clearing the
cache should cause just one cache rebuild, not N. <br>{div} <br></td></tr>
            <tr><td class="diff-unchanged" > <br>h2. Content Replication
<br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">{div:class=deflist}
<br>h4. Trigger <br>Changes in content under specific paths (or path regexps),
with optional restrictions on node types and/or event types. <br>h4. Action <br>Clear
an internal cache that is rebuilt the next time someone needs it. <br>h4. Typical uses
<br>Configurations, CSS/javascript processing, Sling installer, etc. <br>h4. Frequency
<br>Content changes are usually not very frequent, for the above typical uses. <br>h4.
Performance <br>Some latency between content changes and processing is usually not a
problem. <br>h4. Potential issues <br>N requests coming just after clearing the
cache should cause just one cache rebuild, not N. <br>{div} <br></td></tr>
            <tr><td class="diff-unchanged" > <br>h2. Message Queue <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">{div:class=deflist}
<br>h4. Trigger <br>Changes in content under specific paths (or path regexps),
with optional restrictions on node types and/or event types. <br>h4. Action <br>Clear
an internal cache that is rebuilt the next time someone needs it. <br>h4. Typical uses
<br>Configurations, CSS/javascript processing, Sling installer, etc. <br>h4. Frequency
<br>Content changes are usually not very frequent, for the above typical uses. <br>h4.
Performance <br>Some latency between content changes and processing is usually not a
problem. <br>h4. Potential issues <br>N requests coming just after clearing the
cache should cause just one cache rebuild, not N. <br>{div} <br></td></tr>
            <tr><td class="diff-unchanged" > <br></td></tr>
            <tr><td class="diff-changed-lines" >h2. <span class="diff-changed-words">Workflow<span
class="diff-added-chars"style="background-color: #dfd;">/Job</span></span>
Trigger <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">{div:class=deflist}
<br>h4. Trigger <br>Changes in content under specific paths (or path regexps),
with optional restrictions on node types and/or event types. <br>h4. Action <br>Clear
an internal cache that is rebuilt the next time someone needs it. <br>h4. Typical uses
<br>Configurations, CSS/javascript processing, Sling installer, etc. <br>h4. Frequency
<br>Content changes are usually not very frequent, for the above typical uses. <br>h4.
Performance <br>Some latency between content changes and processing is usually not a
problem. <br>h4. Potential issues <br>N requests coming just after clearing the
cache should cause just one cache rebuild, not N. <br>{div} <br></td></tr>
    
            </table>
    </div>                            <h4>Full Content</h4>
                    <div class="notificationGreySide">
        <style type="text/css">

   .deflist h4 { margin-top: 0; font-size:100%; font-weight:normal; font-style:italic; }
  .deflist h4 + p { margin-top: 0;  }
  .deflist p { margin-left: 2em; }
  .deflist ul, .deflist ol { margin-left: 2em }

</style>

<p>Analyzing how we use observation in our Sling-based apps shows a number of recurring
patterns, described in this page.</p>

<p>Using JCR observation directly or Sling OSGi events does not make a big difference
in the final results, but the implementations are very different. The commit hooks provided
by <a href="http://jackrabbit.apache.org/oak/" class="external-link" rel="nofollow">http://jackrabbit.apache.org/oak/</a>
provide yet another way of observing content changes, which might be more efficient or scalable
in some cases.</p>

<p>Being able to express these common observation patterns as higher-level services,
if we can do that, would allow for switching the underlying implementation seamlessly, and
would also help promote best practices in how we use events, by minimizing the amount of code
to write at the application level.</p>

<h1><a name="Higherlevelobservationservices-Observationusagepatterns"></a>Observation
usage patterns</h1>
<p>Let's list the frequent patterns that we see w.r.t observing changes in content.</p>

<h2><a name="Higherlevelobservationservices-CachedContent"></a>Cached Content</h2>

<div class="deflist"><h4><a name="Higherlevelobservationservices-Trigger"></a>Trigger</h4>
<p>Changes in content under specific paths (or path regexps), with optional restrictions
on node types and/or event types.</p>
<h4><a name="Higherlevelobservationservices-Action"></a>Action</h4>
<p>Clear an internal cache that is rebuilt the next time someone needs it.</p>
<h4><a name="Higherlevelobservationservices-Typicaluses"></a>Typical uses</h4>
<p>Configurations, CSS/javascript processing, Sling installer, etc.</p>
<h4><a name="Higherlevelobservationservices-Frequency"></a>Frequency</h4>
<p>Content changes are usually not very frequent, for the above typical uses.</p>
<h4><a name="Higherlevelobservationservices-Performance"></a>Performance</h4>
<p>Some latency between content changes and processing is usually not a problem.</p>
<h4><a name="Higherlevelobservationservices-Potentialissues"></a>Potential
issues</h4>
<p>N requests coming just after clearing the cache should cause just one cache rebuild,
not N.</p></div>

<h2><a name="Higherlevelobservationservices-ContentIngestion"></a>Content
Ingestion</h2>
<div class="deflist"><h4><a name="Higherlevelobservationservices-Trigger"></a>Trigger</h4>
<p>Changes in content under specific paths (or path regexps), with optional restrictions
on node types and/or event types.</p>
<h4><a name="Higherlevelobservationservices-Action"></a>Action</h4>
<p>Clear an internal cache that is rebuilt the next time someone needs it.</p>
<h4><a name="Higherlevelobservationservices-Typicaluses"></a>Typical uses</h4>
<p>Configurations, CSS/javascript processing, Sling installer, etc.</p>
<h4><a name="Higherlevelobservationservices-Frequency"></a>Frequency</h4>
<p>Content changes are usually not very frequent, for the above typical uses.</p>
<h4><a name="Higherlevelobservationservices-Performance"></a>Performance</h4>
<p>Some latency between content changes and processing is usually not a problem.</p>
<h4><a name="Higherlevelobservationservices-Potentialissues"></a>Potential
issues</h4>
<p>N requests coming just after clearing the cache should cause just one cache rebuild,
not N.</p></div>

<h2><a name="Higherlevelobservationservices-ContentExport"></a>Content Export</h2>
<div class="deflist"><h4><a name="Higherlevelobservationservices-Trigger"></a>Trigger</h4>
<p>Changes in content under specific paths (or path regexps), with optional restrictions
on node types and/or event types.</p>
<h4><a name="Higherlevelobservationservices-Action"></a>Action</h4>
<p>Clear an internal cache that is rebuilt the next time someone needs it.</p>
<h4><a name="Higherlevelobservationservices-Typicaluses"></a>Typical uses</h4>
<p>Configurations, CSS/javascript processing, Sling installer, etc.</p>
<h4><a name="Higherlevelobservationservices-Frequency"></a>Frequency</h4>
<p>Content changes are usually not very frequent, for the above typical uses.</p>
<h4><a name="Higherlevelobservationservices-Performance"></a>Performance</h4>
<p>Some latency between content changes and processing is usually not a problem.</p>
<h4><a name="Higherlevelobservationservices-Potentialissues"></a>Potential
issues</h4>
<p>N requests coming just after clearing the cache should cause just one cache rebuild,
not N.</p></div>

<h2><a name="Higherlevelobservationservices-Aggregationofchanges"></a>Aggregation
of changes</h2>
<div class="deflist"><h4><a name="Higherlevelobservationservices-Trigger"></a>Trigger</h4>
<p>Changes in content under specific paths (or path regexps), with optional restrictions
on node types and/or event types.</p>
<h4><a name="Higherlevelobservationservices-Action"></a>Action</h4>
<p>Clear an internal cache that is rebuilt the next time someone needs it.</p>
<h4><a name="Higherlevelobservationservices-Typicaluses"></a>Typical uses</h4>
<p>Configurations, CSS/javascript processing, Sling installer, etc.</p>
<h4><a name="Higherlevelobservationservices-Frequency"></a>Frequency</h4>
<p>Content changes are usually not very frequent, for the above typical uses.</p>
<h4><a name="Higherlevelobservationservices-Performance"></a>Performance</h4>
<p>Some latency between content changes and processing is usually not a problem.</p>
<h4><a name="Higherlevelobservationservices-Potentialissues"></a>Potential
issues</h4>
<p>N requests coming just after clearing the cache should cause just one cache rebuild,
not N.</p></div>

<h2><a name="Higherlevelobservationservices-ConsistencyChecksandFixes"></a>Consistency
Checks and Fixes</h2>
<div class="deflist"><h4><a name="Higherlevelobservationservices-Trigger"></a>Trigger</h4>
<p>Changes in content under specific paths (or path regexps), with optional restrictions
on node types and/or event types.</p>
<h4><a name="Higherlevelobservationservices-Action"></a>Action</h4>
<p>Clear an internal cache that is rebuilt the next time someone needs it.</p>
<h4><a name="Higherlevelobservationservices-Typicaluses"></a>Typical uses</h4>
<p>Configurations, CSS/javascript processing, Sling installer, etc.</p>
<h4><a name="Higherlevelobservationservices-Frequency"></a>Frequency</h4>
<p>Content changes are usually not very frequent, for the above typical uses.</p>
<h4><a name="Higherlevelobservationservices-Performance"></a>Performance</h4>
<p>Some latency between content changes and processing is usually not a problem.</p>
<h4><a name="Higherlevelobservationservices-Potentialissues"></a>Potential
issues</h4>
<p>N requests coming just after clearing the cache should cause just one cache rebuild,
not N.</p></div>

<h2><a name="Higherlevelobservationservices-ContentReplication"></a>Content
Replication</h2>
<div class="deflist"><h4><a name="Higherlevelobservationservices-Trigger"></a>Trigger</h4>
<p>Changes in content under specific paths (or path regexps), with optional restrictions
on node types and/or event types.</p>
<h4><a name="Higherlevelobservationservices-Action"></a>Action</h4>
<p>Clear an internal cache that is rebuilt the next time someone needs it.</p>
<h4><a name="Higherlevelobservationservices-Typicaluses"></a>Typical uses</h4>
<p>Configurations, CSS/javascript processing, Sling installer, etc.</p>
<h4><a name="Higherlevelobservationservices-Frequency"></a>Frequency</h4>
<p>Content changes are usually not very frequent, for the above typical uses.</p>
<h4><a name="Higherlevelobservationservices-Performance"></a>Performance</h4>
<p>Some latency between content changes and processing is usually not a problem.</p>
<h4><a name="Higherlevelobservationservices-Potentialissues"></a>Potential
issues</h4>
<p>N requests coming just after clearing the cache should cause just one cache rebuild,
not N.</p></div>

<h2><a name="Higherlevelobservationservices-MessageQueue"></a>Message Queue</h2>
<div class="deflist"><h4><a name="Higherlevelobservationservices-Trigger"></a>Trigger</h4>
<p>Changes in content under specific paths (or path regexps), with optional restrictions
on node types and/or event types.</p>
<h4><a name="Higherlevelobservationservices-Action"></a>Action</h4>
<p>Clear an internal cache that is rebuilt the next time someone needs it.</p>
<h4><a name="Higherlevelobservationservices-Typicaluses"></a>Typical uses</h4>
<p>Configurations, CSS/javascript processing, Sling installer, etc.</p>
<h4><a name="Higherlevelobservationservices-Frequency"></a>Frequency</h4>
<p>Content changes are usually not very frequent, for the above typical uses.</p>
<h4><a name="Higherlevelobservationservices-Performance"></a>Performance</h4>
<p>Some latency between content changes and processing is usually not a problem.</p>
<h4><a name="Higherlevelobservationservices-Potentialissues"></a>Potential
issues</h4>
<p>N requests coming just after clearing the cache should cause just one cache rebuild,
not N.</p></div>

<h2><a name="Higherlevelobservationservices-Workflow%2FJobTrigger"></a>Workflow/Job
Trigger</h2>
<div class="deflist"><h4><a name="Higherlevelobservationservices-Trigger"></a>Trigger</h4>
<p>Changes in content under specific paths (or path regexps), with optional restrictions
on node types and/or event types.</p>
<h4><a name="Higherlevelobservationservices-Action"></a>Action</h4>
<p>Clear an internal cache that is rebuilt the next time someone needs it.</p>
<h4><a name="Higherlevelobservationservices-Typicaluses"></a>Typical uses</h4>
<p>Configurations, CSS/javascript processing, Sling installer, etc.</p>
<h4><a name="Higherlevelobservationservices-Frequency"></a>Frequency</h4>
<p>Content changes are usually not very frequent, for the above typical uses.</p>
<h4><a name="Higherlevelobservationservices-Performance"></a>Performance</h4>
<p>Some latency between content changes and processing is usually not a problem.</p>
<h4><a name="Higherlevelobservationservices-Potentialissues"></a>Potential
issues</h4>
<p>N requests coming just after clearing the cache should cause just one cache rebuild,
not N.</p></div>
    </div>
        <div id="commentsSection" class="wiki-content pageSection">
        <div style="float: right;">
            <a href="https://cwiki.apache.org/confluence/users/viewnotifications.action"
class="grey">Change Notification Preferences</a>
        </div>
        <a href="https://cwiki.apache.org/confluence/display/SLING/Higher+level+observation+services">View
Online</a>
        |
        <a href="https://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=31820405&revisedVersion=3&originalVersion=2">View
Changes</a>
                |
        <a href="https://cwiki.apache.org/confluence/display/SLING/Higher+level+observation+services?showComments=true&amp;showCommentArea=true#addcomment">Add
Comment</a>
            </div>
</div>
</div>
</div>
</div>
</body>
</html>

Mime
View raw message