<!DOCTYPE html >
<html>
        <head>
          <title>java - PredictionIO Scala API 0.14.0 - org.apache.predictionio.data.store.java</title>
          <meta name="description" content="java - PredictionIO Scala API 0.14.0 - org.apache.predictionio.data.store.java" />
          <meta name="keywords" content="java PredictionIO Scala API 0.14.0 org.apache.predictionio.data.store.java" />
          <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
          
      <link href="../../../../../../lib/template.css" media="screen" type="text/css" rel="stylesheet" />
      <link href="../../../../../../lib/diagrams.css" media="screen" type="text/css" rel="stylesheet" id="diagrams-css" />
      <script type="text/javascript" src="../../../../../../lib/jquery.js" id="jquery-js"></script>
      <script type="text/javascript" src="../../../../../../lib/jquery-ui.js"></script>
      <script type="text/javascript" src="../../../../../../lib/template.js"></script>
      <script type="text/javascript" src="../../../../../../lib/tools.tooltip.js"></script>
      
      <script type="text/javascript">
         if(top === self) {
            var url = '../../../../../../index.html';
            var hash = 'org.apache.predictionio.data.store.java.package';
            var anchor = window.location.hash;
            var anchor_opt = '';
            if (anchor.length >= 1)
              anchor_opt = '@' + anchor.substring(1);
            window.location.href = url + '#' + hash + anchor_opt;
         }
   	  </script>
    
        </head>
        <body class="value">
      <div id="definition">
        <img alt="Package" src="../../../../../../lib/package_big.png" />
        <p id="owner"><a href="../../../../../package.html" class="extype" name="org">org</a>.<a href="../../../../package.html" class="extype" name="org.apache">apache</a>.<a href="../../../package.html" class="extype" name="org.apache.predictionio">predictionio</a>.<a href="../../package.html" class="extype" name="org.apache.predictionio.data">data</a>.<a href="../package.html" class="extype" name="org.apache.predictionio.data.store">store</a></p>
        <h1>java</h1><span class="permalink">
      <a href="../../../../../../index.html#org.apache.predictionio.data.store.java.package" title="Permalink" target="_top">
        <img src="../../../../../../lib/permalink.png" alt="Permalink" />
      </a>
    </span>
      </div>

      <h4 id="signature" class="signature">
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">package</span>
      </span>
      <span class="symbol">
        <span class="name">java</span>
      </span>
      </h4>
      
          <div id="comment" class="fullcommenttop"></div>
        

      <div id="mbrsel">
        <div id="textfilter"><span class="pre"></span><span class="input"><input id="mbrsel-input" type="text" accesskey="/" /></span><span class="post"></span></div>
        
        
        <div id="visbl">
            <span class="filtertype">Visibility</span>
            <ol><li class="public in"><span>Public</span></li><li class="all out"><span>All</span></li></ol>
          </div>
      </div>

      <div id="template">
        <div id="allMembers">
        

        

        

        <div id="values" class="values members">
              <h3>Value Members</h3>
              <ol><li name="org.apache.predictionio.data.store.java.LJavaEventStore" visbl="pub" data-isabs="false" fullComment="yes" group="Ungrouped">
      <a id="LJavaEventStore"></a>
      <a id="LJavaEventStore:LJavaEventStore"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">object</span>
      </span>
      <span class="symbol">
        <a href="LJavaEventStore$.html"><span class="name">LJavaEventStore</span></a>
      </span>
      </h4><span class="permalink">
      <a href="../../../../../../index.html#org.apache.predictionio.data.store.java.package@LJavaEventStore" title="Permalink" target="_top">
        <img src="../../../../../../lib/permalink.png" alt="Permalink" />
      </a>
    </span>
      <p class="shortcomment cmt">This Java-friendly object provides a set of operation to access Event Store
without going through Spark's parallelization.</p><div class="fullcomment"><div class="comment cmt"><p>This Java-friendly object provides a set of operation to access Event Store
without going through Spark's parallelization.</p><p>Note that blocking methods of this object uses
<code>scala.concurrent.ExecutionContext.Implicits.global</code> internally.
Since this is a thread pool which has a number of threads equal to available
processors, parallelism is limited up to the number of processors.</p><p>If this limitation become bottleneck of resource usage, you can increase the
number of threads by declaring following VM options before calling &quot;pio deploy&quot;:</p><p><pre>
export JAVA_OPTS="$JAVA_OPTS \
  -Dscala.concurrent.context.numThreads=1000 \
  -Dscala.concurrent.context.maxThreads=1000"
</pre></p><p>You can learn more about the global execution context in the Scala documentation:
<a href="https://docs.scala-lang.org/overviews/core/futures.html#the-global-execution-context" target="_blank">https://docs.scala-lang.org/overviews/core/futures.html#the-global-execution-context</a>
</p></div></div>
    </li><li name="org.apache.predictionio.data.store.java.OptionHelper" visbl="pub" data-isabs="false" fullComment="no" group="Ungrouped">
      <a id="OptionHelper"></a>
      <a id="OptionHelper:OptionHelper"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">object</span>
      </span>
      <span class="symbol">
        <a href="OptionHelper$.html"><span class="name">OptionHelper</span></a>
      </span>
      </h4><span class="permalink">
      <a href="../../../../../../index.html#org.apache.predictionio.data.store.java.package@OptionHelper" title="Permalink" target="_top">
        <img src="../../../../../../lib/permalink.png" alt="Permalink" />
      </a>
    </span>
      <p class="shortcomment cmt">Used by Java-based engines to mock Some and None</p>
    </li><li name="org.apache.predictionio.data.store.java.PJavaEventStore" visbl="pub" data-isabs="false" fullComment="no" group="Ungrouped">
      <a id="PJavaEventStore"></a>
      <a id="PJavaEventStore:PJavaEventStore"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">object</span>
      </span>
      <span class="symbol">
        <a href="PJavaEventStore$.html"><span class="name">PJavaEventStore</span></a>
      </span>
      </h4><span class="permalink">
      <a href="../../../../../../index.html#org.apache.predictionio.data.store.java.package@PJavaEventStore" title="Permalink" target="_top">
        <img src="../../../../../../lib/permalink.png" alt="Permalink" />
      </a>
    </span>
      <p class="shortcomment cmt">This Java-friendly object provides a set of operation to access Event Store
with Spark's parallelization
</p>
    </li></ol>
            </div>

        

        
        </div>

        <div id="inheritedMembers">
        
        
        </div>

        <div id="groupedMembers">
        <div class="group" name="Ungrouped">
              <h3>Ungrouped</h3>
              
            </div>
        </div>

      </div>

      <div id="tooltip"></div>

      <div id="footer">  </div>


    </body>
      </html>
