<turbo-stream action="append" target="posts_list"><template>    <div class="postbit" id="312498" data-post-id="312498">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Iex.new" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Iex.new/120/18284_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Iex.new
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="Iex.new" data-post="8" data-topic="60424">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/iex.new/48/18284_2.png" class="avatar"> Iex.new:</div>
<blockquote>
<p><code>MyXQL.Connection (#PID&lt;0.302.0&gt;) disconnected: ** (DBConnection.ConnectionError)</code></p>
</blockquote>
</aside>
<p>Until now I hadn’t managed <img src="https://forum.elixirforum.com/images/emoji/apple/frowning.png?v=15" title=":frowning:" class="emoji" alt=":frowning:" loading="lazy" width="20" height="20"></p>
<p>Resources I found to help me to try to solve the issue:</p>
<ul>
<li>
<p>Mysql Documentation: <a href="https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_max_connections" rel="noopener nofollow ugc">https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_max_connections</a></p>
</li>
<li>
<p>Ecto configuration:</p>
<ul>
<li><a href="https://github.com/elixir-ecto/ecto/issues/1658#issuecomment-248940661" class="inline-onebox" rel="noopener nofollow ugc">disconnected: ** (DBConnection.ConnectionError) client #PID&lt;0.368.0&gt; timed out because it checked out the connection for longer than 15000ms · Issue #1658 · elixir-ecto/ecto · GitHub</a></li>
<li><a href="https://github.com/elixir-ecto/ecto/issues/2366#issuecomment-356217431" class="inline-onebox" rel="noopener nofollow ugc">put_assoc crash the server · Issue #2366 · elixir-ecto/ecto · GitHub</a></li>
</ul>
</li>
</ul>
<p>My configuration:</p>
<p>my.cnf (mysql configuration)</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">max_connections=100000
</code></pre>
<p>file config/config.exs</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">pool_size: 500,
migration_timestamps: [type: :utc_datetime_usec],
migration_lock: nil,
queue_target: 500
</code></pre>
<p>into the file that reads the CSV file I set max_conccurency to 500:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">def load(path) do
  path
  |&gt; Path.expand()
  |&gt; File.stream!(read_ahead: 524_288)
  |&gt; YourCSV.parse_stream()
  |&gt; Stream.chunk_every(500)
  |&gt; Task.async_stream(fn rows -&gt;
    # do something with a single CSV record.
    # possibly best to also hand off the results to another service?
    # if you want to just process all records and receive a new list
    # then you should just use Stream.map and Enum.to_list at the end.
    Enum.map(rows, fn [name, bar_code, price, currency] -&gt;
       FileWatchExample.Product.create_product(%{name: name, bar_code: bar_code, price: price, currency: currency})
    end)
  end, max_concurrency: 500, on_timeout: :kill_task, ordered: false)
  |&gt; Stream.run()
</code></pre>
<p>products.ex :</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">... some code

 def create_product(attrs) do
   %FileWatchExample.Product{}
   |&gt; FileWatchExample.Product.changeset(attrs)
   |&gt; Store.insert(timeout: 1000 * 60)
 end
</code></pre> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="312498" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/data-processing-in-parallel-hackathon-project/60424/12">Post #11</a>
	                </div>
	            </div>
              <div id="likers-container-312498" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="312498"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #11"></div>
  </section>
</div>
    <div class="postbit" id="312499" data-post-id="312499">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="D4no0" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/D4no0/120/33624_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  D4no0
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>First of all, don’t use a huge pool of connections, start with 10, having a bigger pool doesn’t mean necessarily that the queries will run faster.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="312499" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/data-processing-in-parallel-hackathon-project/60424/13">Post #12</a>
	                </div>
	            </div>
              <div id="likers-container-312499" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="312499"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #12"></div>
  </section>
</div>
    <div class="postbit" id="312503" data-post-id="312503">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="dimitarvp" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/dimitarvp/120/38664_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  dimitarvp
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>These numbers are crazy. First of all, give MySQL a more lax limit: 100k is too much. Make it something like 1000 or 2000.</p>
<p>Furthermore, even 100 parallel tasks was already a lot before because you can likely saturate your CPU or even network (depending on what machine you’re running the workload). Even if you don’t saturate them you might overwhelm the runtime scheduler – very doubtful, I’ve very rarely seen it but depends on the machine – so just reduce the number of tasks.</p>
<p>Finally, make the <code>db_connection</code> configuration options a bit more liberal e.g. increase <code>queue_target</code> to something like 10_000 (10 seconds) or 2_000.</p>
<p>But do all these at the same time, not isolated.</p>
<p>And let us know. I’ve done plenty of such data ingestion work in Elixir and I am puzzled that you are having so much trouble. Worst case I had was a laggy remote Postgres which was easily fixed by increasing <code>queue_target</code> and <code>queue_interval</code> values.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="312503" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/data-processing-in-parallel-hackathon-project/60424/14">Post #13</a>
	                </div>
	            </div>
              <div id="likers-container-312503" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="312503"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #13"></div>
  </section>
</div>
    <div class="postbit" id="312515" data-post-id="312515">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Iex.new" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Iex.new/120/18284_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Iex.new
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I have updated my configuration based on what you adviced but I still have some DBConnection.ConnectionError. I was able to create ca 5 899 575 records from a total of 100 000 000.</p>
<p>config.exs:</p>
<ul>
<li>pool_size: 10,</li>
<li>queue_target: 10_000</li>
</ul>
<p>mysql config:</p>
<ul>
<li>max_connections=1000</li>
</ul>
<p>ingest_csv.ex :</p>
<ul>
<li>max_concurrency: 10</li>
</ul> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="312515" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/data-processing-in-parallel-hackathon-project/60424/15">Post #14</a>
	                </div>
	            </div>
              <div id="likers-container-312515" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="312515"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #14"></div>
  </section>
</div>
    <div class="postbit" id="312518" data-post-id="312518">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="dimitarvp" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/dimitarvp/120/38664_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  dimitarvp
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Hm, that is strange and should not be the case. What are the errors this time around?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="312518" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/data-processing-in-parallel-hackathon-project/60424/16">Post #15</a>
	                </div>
	            </div>
              <div id="likers-container-312518" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="312518"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #15"></div>
  </section>
</div>
    <div class="postbit" id="312526" data-post-id="312526">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="kokolegorille" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/kokolegorille/120/4784_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  kokolegorille
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>pool_size is related to your cpu… how many cores? It should be something around 2 x cores</p>
<p>There is a formula, but I don’t remember it exactly</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="312526" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/data-processing-in-parallel-hackathon-project/60424/17">Post #16</a>
	                </div>
	            </div>
              <div id="likers-container-312526" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="312526"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #16"></div>
  </section>
</div>
    <div class="postbit" id="312576" data-post-id="312576">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Iex.new" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Iex.new/120/18284_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Iex.new
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I have a CPU AMD Ryzen 7 pro 5850U 8 core for Lenovo laptop.<br>
I run the app locally in WSL.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="312576" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/data-processing-in-parallel-hackathon-project/60424/18">Post #17</a>
	                </div>
	            </div>
              <div id="likers-container-312576" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="312576"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #17"></div>
  </section>
</div>
    <div class="postbit" id="312577" data-post-id="312577">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Iex.new" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Iex.new/120/18284_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Iex.new
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group quote-modified" data-username="Iex.new" data-post="12" data-topic="60424">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/iex.new/48/18284_2.png" class="avatar"> Iex.new:</div>
<blockquote>
<aside class="quote no-group" data-username="Iex.new" data-post="8" data-topic="60424">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/iex.new/48/18284_2.png" class="avatar"> Iex.new:</div>
<blockquote>
<p><code>MyXQL.Connection (#PID&lt;0.302.0&gt;) disconnected: ** (DBConnection.ConnectionError)</code></p>
</blockquote>
</aside>
</blockquote>
</aside>
<p>I still have errors like:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">MyXQL.Connection (#PID&lt;0.302.0&gt;) disconnected: ** (DBConnection.ConnectionError)

</code></pre> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="312577" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/data-processing-in-parallel-hackathon-project/60424/19">Post #18</a>
	                </div>
	            </div>
              <div id="likers-container-312577" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="312577"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #18"></div>
  </section>
</div>
    <div class="postbit" id="312578" data-post-id="312578">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="dimitarvp" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/dimitarvp/120/38664_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  dimitarvp
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Only that? No other details?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="312578" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/data-processing-in-parallel-hackathon-project/60424/20">Post #19</a>
	                </div>
	            </div>
              <div id="likers-container-312578" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="312578"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #19"></div>
  </section>
</div>
    <div class="postbit" id="312579" data-post-id="312579">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Iex.new" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Iex.new/120/18284_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Iex.new
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>yes, I will try to find something in the Mysql log or somewhere else. I will come back <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" loading="lazy" width="20" height="20"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="312579" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/data-processing-in-parallel-hackathon-project/60424/21">Post #20</a>
	                </div>
	            </div>
              <div id="likers-container-312579" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="312579"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #20"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <a class="load-more-button" data-turbo-stream="true" href="/topics/60424/load_more?page=3">Load more posts (27 remaining)</a>
</div></template></turbo-stream>