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


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="tj0" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  tj0
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="warmwaffles" data-post="40" data-topic="38391">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/warmwaffles/48/22057_2.png" class="avatar"> warmwaffles:</div>
<blockquote>
<p>Before we change anything around that default cache size, can you do a similar test and lower the value to something like <code>-2000</code> and check out the results?</p>
</blockquote>
</aside>
<p>Yah, I’ve been running for a few hours on that value and it is stable.</p>
<aside class="quote no-group" data-username="warmwaffles" data-post="40" data-topic="38391">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/warmwaffles/48/22057_2.png" class="avatar"> warmwaffles:</div>
<blockquote>
<p>As for a memory leak, someone did report one but I am unable to reproduce it. Right now with how the NIF is structure, the prepared statements are deconstructed when the handle’s ref count goes to zero.</p>
</blockquote>
</aside>
<p>Was that <a href="https://github.com/elixir-sqlite/exqlite/issues/153" class="inline-onebox" rel="noopener nofollow ugc">Performance issues / possible memory leak · Issue #153 · elixir-sqlite/exqlite · GitHub</a> ? I read through that one. The memory increase is indeed linear so it smells like a memory leak. But it’s only 10MB over 30 min and it’s not on a strict benchmark, so makes me wonder if it is just general operation.</p>
<p>The “VM lockup” does not smell like a memory leak. I wonder if the OP ran into GCP limits on iops. Usually, the cloud providers give an IOPS budget and when you’re done with it, you have to wait a while.</p>
<aside class="quote no-group" data-username="warmwaffles" data-post="40" data-topic="38391">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/warmwaffles/48/22057_2.png" class="avatar"> warmwaffles:</div>
<blockquote>
<p>Could you provide your benchmark setup? I’d love to put that in a repository to be able to run.</p>
</blockquote>
</aside>
<p>The current dataset is on the order of GB’s. I’ll have to minnow it down a bit and make sure I can reproduce the issues with the smaller dataset.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="222255" 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/ecto-sqlite3-an-ecto3-sqlite3-adapter/38391/42">Post #41</a>
	                </div>
	            </div>
              <div id="likers-container-222255" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="222255"
                     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 #41"></div>
  </section>
</div>
    <div class="postbit" id="222256" data-post-id="222256">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="tj0" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  tj0
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="kevinlang" data-post="39" data-topic="38391">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/letter_avatar_proxy/v4/letter/k/d9b06d/48.png" class="avatar"> kevinlang:</div>
<blockquote>
<p>Is this a fair summary?</p>
<ol>
<li>~600 MB memory is expected, because of overly large default cache size</li>
<li>However, it did balloon above that when killing all Repo processes. Seems like on kill we do not cleanly close the DB connection, which would explain it.</li>
<li>Our NIF memory usage does not show in observer. Imo this <em>may</em> be due to the fact that SQLite3 does its own memory management and does not use the NIF alloc functions (see below).</li>
</ol>
</blockquote>
</aside>
<p>Yes.</p>
<aside class="quote no-group" data-username="kevinlang" data-post="39" data-topic="38391">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/letter_avatar_proxy/v4/letter/k/d9b06d/48.png" class="avatar"> kevinlang:</div>
<blockquote>
<p>I created a new issue to consider lowering it, it definitely seems like 2MB is a fine enough default. I created an issue for that, <a href="https://github.com/elixir-sqlite/ecto_sqlite3/issues/43" rel="noopener nofollow ugc">here</a>.</p>
</blockquote>
</aside>
<p>Is it possible to dynamically set the default based on the core count / memory?</p>
<aside class="quote no-group" data-username="kevinlang" data-post="39" data-topic="38391">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/letter_avatar_proxy/v4/letter/k/d9b06d/48.png" class="avatar"> kevinlang:</div>
<blockquote>
<p>If you could share snippets of your benchmarking code or just the more specific process or calls you do in the IEX or whatever (for those with no experience in these things, like myself), that would be greatly appreciated! I could use that info to try debugging further.</p>
</blockquote>
</aside>
<p>I’ll put one together in the next day or two. Easy way is to lower worker count to 1 and if your table is larger than 64MB, below should suffice to fill the cache on a worker.</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">IEx.configure(inspect: [limit: 2])
import Ecto.Query, warn: false
q = from l in App.Something,  where: id &gt; 0
App.Repo(q)
</code></pre>
<p>If you do this on IEx, you should see the heap increase in observer. In the process list, you’ll see IEx gain the memory (or maybe it’s some other memory).  When I ran benchee, no process gained memory, so maybe the IEx memory gain was just a red herring.</p>
<p>I was going to type more out, but it’s probably faster for me to make a PR at this point with a bench.</p>
<aside class="quote no-group" data-username="kevinlang" data-post="39" data-topic="38391">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/letter_avatar_proxy/v4/letter/k/d9b06d/48.png" class="avatar"> kevinlang:</div>
<blockquote>
<p>Yes, this could perhaps be done. As mentioned above, I think the fact SQLite3 uses its own malloc is why this is. It <em>may</em> be possible to provide the erlang memory management functions at DB init time, which could incidentally fix the memory leak issue we saw, perhaps.</p>
</blockquote>
</aside>
<p>That does sound believable to me.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="222256" data-batch-url="/posts/batch_likers">
                        1
                      </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/ecto-sqlite3-an-ecto3-sqlite3-adapter/38391/43">Post #42</a>
	                </div>
	            </div>
              <div id="likers-container-222256" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="222256"
                     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 #42"></div>
  </section>
</div>
    <div class="postbit" id="222257" data-post-id="222257">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="tj0" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  tj0
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>If it’s called in a delayed manner, I have no idea how it would de-allocate correctly. The information about the address of where the memory was alloc’d is now gone, right?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="222257" 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/ecto-sqlite3-an-ecto3-sqlite3-adapter/38391/44">Post #43</a>
	                </div>
	            </div>
              <div id="likers-container-222257" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="222257"
                     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 #43"></div>
  </section>
</div>
    <div class="postbit" id="222267" data-post-id="222267">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I’m planning to use SQLite for my next Elixir project so I googled a bit. Found this thread that might be of interest.<br>
From 2020 titled <em>Are NIF resources meant to be destroyed immediately on GC?</em></p><aside class="onebox allowlistedgeneric" data-onebox-src="http://erlang.org/pipermail/erlang-questions/2020-November/100131.html">
  <header class="source">

      <a href="http://erlang.org/pipermail/erlang-questions/2020-November/100131.html" target="_blank" rel="noopener nofollow">erlang.org</a>
  </header>

  <article class="onebox-body">
    

<h3><a href="http://erlang.org/pipermail/erlang-questions/2020-November/100131.html" target="_blank" rel="noopener nofollow">Are NIF resources meant to be destroyed immediately on GC?</a></h3>



  </article>

  <div class="onebox-metadata">
    
    
  </div>

  <div style="clear: both"></div>
</aside>
<p>
Quote from there</p>
<blockquote>
<p><strong>Jesper Louis Andersen</strong><br>
As a general rule: never use finalizers for the primary resource<br>
reclamation path. You don’t know when they’ll run. You don’t know what<br>
changes are made to a GC in the future, that alters the rule set slightly.<br>
Use them as a safety measure if something goes out of scope. Resources such<br>
as DB connections can be very limited in scope (less than 50 for a typical<br>
non pg_bouncer postgres setup). So you have to manage them quite<br>
explicitly. Memory is far more abundant, and it is also fungible to a large<br>
extent, so you just need a block somewhere.</p>
</blockquote>
<p>It seems that starting from OTP 22.0 destructions are scheduled/queued and won’t happen immediately.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="222267" data-batch-url="/posts/batch_likers">
                        1
                      </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/ecto-sqlite3-an-ecto3-sqlite3-adapter/38391/45">Post #44</a>
	                </div>
	            </div>
              <div id="likers-container-222267" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="222267"
                     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 #44"></div>
  </section>
</div>
    <div class="postbit" id="222312" data-post-id="222312">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="kevinlang" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  kevinlang
                    <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>Well there are two possible things we could do:</p>
<ol>
<li>“Manually” clean up prepared statements ourselves after executing and reading the results from a query. We currently do not do this, and it seems like it should be easy enough. Filed <a href="https://github.com/elixir-sqlite/exqlite/issues/154" rel="noopener nofollow ugc">this issue</a> for that.</li>
<li>Improve how we clean up the database connection resource. This will be much harder. I don’t have a clear idea on how this would be done.</li>
</ol> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="222312" 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/ecto-sqlite3-an-ecto3-sqlite3-adapter/38391/46">Post #45</a>
	                </div>
	            </div>
              <div id="likers-container-222312" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="222312"
                     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 #45"></div>
  </section>
</div>
    <div class="postbit" id="222316" data-post-id="222316">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Are SQLite connections being closed? I’ve used SQLite in the past and my understanding is that you can just keep using same connections over and over.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="222316" 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/ecto-sqlite3-an-ecto3-sqlite3-adapter/38391/47">Post #46</a>
	                </div>
	            </div>
              <div id="likers-container-222316" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="222316"
                     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 #46"></div>
  </section>
</div>
    <div class="postbit" id="222318" data-post-id="222318">
  <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">
								<aside class="quote no-group" data-username="kevinlang" data-post="46" data-topic="38391">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/letter_avatar_proxy/v4/letter/k/d9b06d/48.png" class="avatar"> kevinlang:</div>
<blockquote>
<p>“Manually” clean up prepared statements ourselves after executing and reading the results from a query.</p>
</blockquote>
</aside>
<p>One of the benefits of my library, if it ever gets to a working state, is that the Rust crate it steps on maintains a small pool of prepared statements (size configurable) and aggressively prunes them in a LRU fashion.</p>
<p>I believe you guys can do the same with the <code>poolboy</code> library. It’s super easy to use.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="222318" 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/ecto-sqlite3-an-ecto3-sqlite3-adapter/38391/48">Post #47</a>
	                </div>
	            </div>
              <div id="likers-container-222318" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="222318"
                     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 #47"></div>
  </section>
</div>
    <div class="postbit" id="222324" data-post-id="222324">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="kevinlang" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  kevinlang
                    <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>Yep we reuse the same pool of connections. I mean in the case the process crashes or is killed  - from reading above it seems that because in that case we rely on NIF destructor behavior, memory may stay around for a while waiting to be pruned. If we could somehow detect the crash and clean up more aggressively, that would be an improvement - but I’m not sure how to do that. In terms of a connection being cleaned up in a non-crashing manner, that should work as expected and clean the memory more immediately as we are explicitly calling the sqlite3 close function.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="222324" 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/ecto-sqlite3-an-ecto3-sqlite3-adapter/38391/49">Post #48</a>
	                </div>
	            </div>
              <div id="likers-container-222324" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="222324"
                     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 #48"></div>
  </section>
</div>
    <div class="postbit" id="222325" data-post-id="222325">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I think for those cases like process crash or kill just relying on GC should be fine because it’s not a primary resource reclamation path.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="222325" data-batch-url="/posts/batch_likers">
                        1
                      </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/ecto-sqlite3-an-ecto3-sqlite3-adapter/38391/50">Post #49</a>
	                </div>
	            </div>
              <div id="likers-container-222325" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="222325"
                     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 #49"></div>
  </section>
</div>
    <div class="postbit" id="222332" data-post-id="222332">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="tj0" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  tj0
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>The issue appears to be that at certain times the memory seems to be allocated outside of the processes. This means the GC won’t work. To get around that, a destructor was added and called, but since destructors are queued…I’m not really sure they are going to access the memory space they were supposed to free. Not an expert though.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="222332" 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/ecto-sqlite3-an-ecto3-sqlite3-adapter/38391/51">Post #50</a>
	                </div>
	            </div>
              <div id="likers-container-222332" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="222332"
                     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 #50"></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/38391/load_more?page=6">Load more posts (2 remaining)</a>
</div></template></turbo-stream>