<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#ffffff" text="#000000">
    On 25/02/11 2:07 AM, Russell Brown wrote:
    <blockquote cite="mid:250B774F-9DAB-4EBB-8DD2-8A89367B3E29@mac.com"
      type="cite"><br>
      <div>
        <div>On 24 Feb 2011, at 17:20, Abhishek Kona wrote:</div>
        <br class="Apple-interchange-newline">
        <blockquote type="cite">
          <div>
            <blockquote type="cite">
              <blockquote type="cite">
                <blockquote type="cite"><br>
                </blockquote>
              </blockquote>
            </blockquote>
            <blockquote type="cite">
              <blockquote type="cite">Each thread has a RiakClient.<br>
              </blockquote>
            </blockquote>
            <blockquote type="cite">RiakClient uses Apache HttpClient's
              MultiThreadedConnectionManager so<br>
            </blockquote>
            <blockquote type="cite">you could create a single RiakClient
              and share it among your threads<br>
            </blockquote>
            <blockquote type="cite">instead.<br>
            </blockquote>
            Could you provide me an example (sample code / test case )
            for that?<br>
            In the ITestDataLoad.java file of the GitHub repo (<a
              moz-do-not-send="true" href="http://goo.gl/Bu3gi">http://goo.gl/Bu3gi</a>),
            each thread seems to create a new RiakClient instead of
            sharing a single RiakClient, so am I missing something in
            following the same example.</div>
        </blockquote>
        <div><br>
        </div>
        <div>Not really missing something, that _is_ how the test is
          coded, but it would be (marginally?) better to create the
          RiakClient once with the "right" number of threads. The
          HttpClient connection manager can pool the connections and
          reuse them, which you don't get if you bring a RiakClient into
          existence for a one request then lose it again. These tests
          are sort of artificial, but an application with (say) a
          service providing access to Riak could have a single
          RiakClient instance with the right number of threads and you
          can take advantage of connection persistence in HttpClient
          rather than creating and dropping and creating sockets.</div>
        <div><br>
        </div>
        <div>Have a look at <a moz-do-not-send="true"
            href="https://gist.github.com/842829">https://gist.github.com/842829</a> for
          an example of sharing a client across threads in ITestDataLoad</div>
        <br>
        <blockquote type="cite">
          <div>
            <blockquote type="cite"><br>
            </blockquote>
            <blockquote type="cite">
              <blockquote type="cite">
                <blockquote type="cite">Is it possible to see the test
                  code, maybe?<br>
                </blockquote>
              </blockquote>
            </blockquote>
            <blockquote type="cite">
              <blockquote type="cite">I will try to post some snippets
                by tomorrow.<br>
              </blockquote>
            </blockquote>
            <blockquote type="cite">Cool, thanks. <a
                moz-do-not-send="true" href="http://gist.github.com">http://gist.github.com</a>
              would be handy.<br>
            </blockquote>
            <a moz-do-not-send="true"
              href="https://gist.github.com/842472">https://gist.github.com/842472</a><br>
            Here is a sample code, if you need more detail let me know.
            (there are a few internal libraries in use).<font
              class="Apple-style-span" color="#540000"><br>
            </font></div>
        </blockquote>
        <br>
        Thanks for that. I can't really see how it is being run, can the
        task be reused or does it do one request then get binned?</div>
    </blockquote>
    The task gets binned it is never reused. <br>
    <blockquote cite="mid:250B774F-9DAB-4EBB-8DD2-8A89367B3E29@mac.com"
      type="cite">
      <div> Using a client for single request is not the best test
        though. Create a client, share it across threads and use it for
        repeated requests. I'll try and knock together and example that
        shows this vs. creating a new client per call<br>
      </div>
    </blockquote>
    <blockquote cite="mid:250B774F-9DAB-4EBB-8DD2-8A89367B3E29@mac.com"
      type="cite">
      <div><br>
      </div>
      <div>I'll try and reproduce your issue at this end.</div>
      <div><br>
      </div>
      <br>
    </blockquote>
    Thanks for it. I will try my tests by sharing a client. <br>
    -Abhishek Kona<br>
    <br>
  </body>
</html>