<style>
/* Changing the layout to use less space for mobiles */
@media screen and (max-device-width: 480px), screen and (-webkit-min-device-pixel-ratio: 2) {
    #email-body { min-width: 30em !important; }
    #email-page { padding: 8px !important; }
    #email-banner { padding: 8px 8px 0 8px !important; }
    #email-avatar { margin: 1px 8px 8px 0 !important; padding: 0 !important; }
    #email-fields { padding: 0 8px 8px 8px !important; }
    #email-gutter { width: 0 !important; }
}
</style>
<div id="email-body">
<table id="email-wrap" align="center" border="0" cellpadding="0" cellspacing="0" style="background-color:#f0f0f0;color:#000000;width:100%;">
    <tr valign="top">
        <td id="email-page" style="padding:16px !important;">
            <table align="center" border="0" cellpadding="0" cellspacing="0" style="background-color:#ffffff;border:1px solid #bbbbbb;color:#000000;width:100%;">
                <tr valign="top">
                    <td bgcolor="#3e4c4e" style="background-color:#3e4c4e;color:#ffffff;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;line-height:1;"><img src="https://www.jboss.org/dms/hibernate/images/jira/jiraheader_hibernate.png" alt="" style="vertical-align:top;" /></td>
                </tr><tr valign="top">
    <td id="email-banner" style="padding:32px 32px 0 32px;">

                
        
        
            <table align="left" border="0" cellpadding="0" cellspacing="0" width="100%" style="width:100%;">
    <tr valign="top">
        <td style="color:#505050;font-family:Arial,FreeSans,Helvetica,sans-serif;padding:0;">
                                        <img id="email-avatar" src="https://hibernate.onjira.com/secure/useravatar?avatarId=10162" alt="" height="48" width="48" border="0" align="left" style="padding:0;margin: 0 16px 16px 0;" />
                        <div id="email-action" style="padding: 0 0 8px 0;font-size:12px;line-height:18px;">
                                    <a class="user-hover" rel="sanne" id="email_sanne" href="https://hibernate.onjira.com/secure/ViewProfile.jspa?name=sanne" style="color:#6c797f;">Sanne Grinovero</a>
     commented on <img src="https://hibernate.onjira.com/images/icons/bug.gif" height="16" width="16" border="0" align="absmiddle" alt="Bug"> <a style='color:#6c797f;text-decoration:none;' href='https://hibernate.onjira.com/browse/OGM-228'>OGM-228</a>
            </div>
                        <div id="email-summary" style="font-size:16px;line-height:20px;padding:2px 0 16px 0;">
                <a style='color:#6c797f;text-decoration:none;' href='https://hibernate.onjira.com/browse/OGM-228'><strong>Hibernate Search MassIndexer should work with OGM</strong></a>
            </div>
                    </td>
    </tr>
</table>
    </td>
</tr>
<tr valign="top">
    <td id="email-fields" style="padding:0 32px 32px 32px;">
        <table border="0" cellpadding="0" cellspacing="0" style="padding:0;text-align:left;width:100%;" width="100%">
            <tr valign="top">
                <td id="email-gutter" style="width:64px;white-space:nowrap;"></td>
                <td>
                    <table border="0" cellpadding="0" cellspacing="0" width="100%">
                        <tr valign="top">
    <td colspan="2" style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 0 16px 0;width:100%;">
        <div class="comment-block" style="background-color:#edf5ff;border:1px solid #dddddd;color:#000000;padding:12px;"><p>Hi Jonathan,<br/>
some help would be awesome!<br/>
I had briefly discussed this problem with the team on IRC, and our general feeling was that implementing the StatelessSession for OGM is neither enough (as it would fail just after opening one, as it requires Criteria scrolling too) nor the best approach.</p>

<p>In one form or another, it's clear that to implement this we need some capability to list/scroll all entities without making use of the Lucene indexes. Hibernate OGM drives the different NoSQL dialects using an internal contract "org.hibernate.ogm.dialect.GridDialect"; you can find a concurrentHashMap based implementation in the core module, an EHCache based implementation in the ehcache module, and so on.</p>

<p>Now the main problem is that <em>GridDialect</em> doesn't provide any form of "list all entities" functionality: clearly we should add one. This limitation is driven by the fact that we started addressing key/value stores, in which a "list all" is often inefficient, conceptually a pure Key/Value store would not implement it at all, but in practice since that's very limiting each implementation I'm aware of provides some way to force it to list all entries.</p>

<p>The second step for this issue would be to implement a custom MassIndexer which makes use of this GridDialect; I think a proof of concept of such a MassIndexer would be needed before the new GridDialect functionality is set in stone, so I would suggest to implement this first, implementing the GridDialect's new method only for the core module (which is trivial, being a hashmap). Just yesterday I finished a new MassIndexer for Infinispan which is much simpler than the one in Hibernate Search, I'd suggest you take a look in this commit for inspiration:<br/>
<a href="https://github.com/Sanne/infinispan/commit/f1cd3f8cf411d976ae537ecf6f815342309211fa">https://github.com/Sanne/infinispan/commit/f1cd3f8cf411d976ae537ecf6f815342309211fa</a></p>

<p>Notable differences with Hibernate Search:</p>
<ul class="alternate" type="square">
        <li>it doesn't use pipelines but a specific map/reduce service available in Infinispan. In your case a simple iteration on the GridDialect new method (scroll() ?) should be a good starting point.</li>
        <li>the ids are encoded differently in the index. In your case you better keep that code as in Hibernate Search.</li>
</ul>


<p>We can then review your MassIndexer, and then I'll be glad to help implementing the new GridDialect contract on the other dialects.<br/>
I think in the first round we'd be happy to implement a very simple MassIndexer, we can later on try improve it's efficiency.</p>

<p>For any question, you're very welcome on IRC (<a href="http://hibernate.org/community/irc">http://hibernate.org/community/irc</a>), the dev mailing list (<a href="https://lists.jboss.org/mailman/listinfo/hibernate-dev">https://lists.jboss.org/mailman/listinfo/hibernate-dev</a>) or this same JIRA.</p></div>
        <div style="color:#505050;padding:4px 0 0 0;">                </div>
    </td>
</tr>
                    </table>
                </td>
            </tr>
        </table>
    </td>
</tr>













            </table>
        </td><!-- End #email-page -->
    </tr>
    <tr valign="top">
        <td style="color:#505050;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:10px;line-height:14px;padding: 0 16px 16px 16px;text-align:center;">
            This message is automatically generated by JIRA.<br />
            If you think it was sent incorrectly, please contact your JIRA administrators<br />
            For more information on JIRA, see: <a style='color:#6c797f;' href='http://www.atlassian.com/software/jira'>http://www.atlassian.com/software/jira</a>
        </td>
    </tr>
</table><!-- End #email-wrap -->
</div><!-- End #email-body -->