<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[Johnnnnnny Blog]]></title><description><![CDATA[Johnnnnnny Blog]]></description><link>https://www.johnnnnnny.com/</link><image><url>https://www.johnnnnnny.com/favicon.png</url><title>Johnnnnnny Blog</title><link>https://www.johnnnnnny.com/</link></image><generator>Ghost 4.8</generator><lastBuildDate>Sat, 18 Jul 2026 22:13:25 GMT</lastBuildDate><atom:link href="https://www.johnnnnnny.com/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[Database Isolation]]></title><description><![CDATA[<h2 id="%E7%82%BA%E4%BB%80%E9%BA%BCdb%E6%9C%83%E9%9C%80%E8%A6%81isolation">&#x70BA;&#x4EC0;&#x9EBC;DB&#x6703;&#x9700;&#x8981;<strong>Isolation</strong> ?</h2><p>&#x4E3B;&#x8981;&#x662F;&#x70BA;&#x4E86;&#x907F;&#x514D;&#x5728;<strong>&#x4E26;&#x767C;</strong>&#x5E95;&#x4E0B;&#x53EF;&#x80FD;&#x9020;&#x6210;&#x7684;<strong>dirty reads or lost updates</strong><br>&#x8D8A;&#x9AD8;&#x7684;&#x5C64;&#x7D1A;&#x7576;&#x7136;&#x80FD;&#x907F;&#x514D;&#x7684;&#x72C0;&#x6CC1;&#x8D8A;&#x591A;&#xFF0C;&#x4F46;&#x4E5F;&#x52E2;&#x5FC5;</p>]]></description><link>https://www.johnnnnnny.com/database-isolation/</link><guid isPermaLink="false">6205e9fa7c339b814fccc345</guid><category><![CDATA[Database]]></category><dc:creator><![CDATA[Johnny.Xie]]></dc:creator><pubDate>Fri, 13 May 2022 04:13:55 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1598544365961-ef41ae9129b5?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDM0fHxpc29sYXRpb258ZW58MHx8fHwxNjUyNDE1NTQ4&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<h2 id="%E7%82%BA%E4%BB%80%E9%BA%BCdb%E6%9C%83%E9%9C%80%E8%A6%81isolation">&#x70BA;&#x4EC0;&#x9EBC;DB&#x6703;&#x9700;&#x8981;<strong>Isolation</strong> ?</h2><img src="https://images.unsplash.com/photo-1598544365961-ef41ae9129b5?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDM0fHxpc29sYXRpb258ZW58MHx8fHwxNjUyNDE1NTQ4&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" alt="Database Isolation"><p>&#x4E3B;&#x8981;&#x662F;&#x70BA;&#x4E86;&#x907F;&#x514D;&#x5728;<strong>&#x4E26;&#x767C;</strong>&#x5E95;&#x4E0B;&#x53EF;&#x80FD;&#x9020;&#x6210;&#x7684;<strong>dirty reads or lost updates</strong><br>&#x8D8A;&#x9AD8;&#x7684;&#x5C64;&#x7D1A;&#x7576;&#x7136;&#x80FD;&#x907F;&#x514D;&#x7684;&#x72C0;&#x6CC1;&#x8D8A;&#x591A;&#xFF0C;&#x4F46;&#x4E5F;&#x52E2;&#x5FC5;&#x6703;&#x72A7;&#x7272;&#x4E9B;&#x6548;&#x80FD;</p><p>&#x4EE5;&#x4E0B;&#x8868;&#x500B;&#x53EF;&#x4EE5;&#x6E05;&#x695A;&#x770B;&#x5230;&#x4E0D;&#x540C;&#x7684;&#x5C64;&#x7D1A;(Isolation levels)&#x89E3;&#x6C7A;&#x4E86;&#x4EC0;&#x9EBC;&#x554F;&#x984C;(read phenomena)</p><p>Isolation levels vs read phenomena</p><blockquote>&apos;+&apos; &#x2014; possible</blockquote><blockquote>&apos;-&apos; &#x2014; not possible</blockquote><!--kg-card-begin: html--><table>
<thead>
<tr>
<th style="text-align: center">Read phenomena  Isolation level</th>
<th style="text-align: center">Dirty reads</th>
<th style="text-align: center">Lost updates</th>
<th style="text-align: center">Non-repeatable reads</th>
<th style="text-align: center">Phantoms</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: center">Read Uncommitted</td>
<td style="text-align: center">+</td>
<td style="text-align: center">+</td>
<td style="text-align: center">+</td>
<td style="text-align: center">+</td>
</tr>
<tr>
<td style="text-align: center">Read Committed</td>
<td style="text-align: center">-</td>
<td style="text-align: center">+</td>
<td style="text-align: center">+</td>
<td style="text-align: center">+</td>
</tr>
<tr>
<td style="text-align: center">Repeatable Read</td>
<td style="text-align: center">-</td>
<td style="text-align: center">-</td>
<td style="text-align: center">-</td>
<td style="text-align: center">+</td>
</tr>
<tr>
<td style="text-align: center">Serializable</td>
<td style="text-align: center">-</td>
<td style="text-align: center">-</td>
<td style="text-align: center">-</td>
<td style="text-align: center">-</td>
</tr>
</tbody>
</table><!--kg-card-end: html--><h2 id="isolation-levels">Isolation levels</h2><h3 id="read-uncommitted">Read uncommitted</h3><p>&#x6700;&#x4F4E;&#x7B49;&#x7D1A;&#xFF0C;&#x5728;&#x9019;&#x60C5;&#x6CC1;&#x4E0B;<strong>dirty reads</strong>&#x662F;&#x88AB;&#x5141;&#x8A31;&#x7684;&#x3002;</p><blockquote>e.g. &#x53EF;&#x4EE5;&#x5728;A transaction &#x53EF;&#x4EE5;&#x770B;&#x5230; B transaction &#x9084;&#x6C92;commit&#x7684;&#x66F4;&#x6539;&#x3002;</blockquote><h3 id="read-committed">Read committed</h3><ul><li>&#x9019;&#x908A;&#x4FDD;&#x8B49;&#x53EA;&#x6703;&#x8B80;&#x53BB;&#x5230;commit&#x7684;&#x8CC7;&#x6599;&#xFF0C;&#x4F46;&#x4E0D;&#x4FDD;&#x8B49;transaction&#x7576;&#x4E2D;&#x76F8;&#x540C;query&#x8B80;&#x53BB;&#x5230;&#x4E00;&#x6A23;&#x8CC7;&#x6599;(<strong>Non-repeatable reads</strong>)&#x3002;</li><li>lock</li><li>write</li></ul><figure class="kg-card kg-image-card"><img src="https://storage.johnnnnnny.com/2022/02/---2022-02-11---5.41.34.png" class="kg-image" alt="Database Isolation" loading="lazy" width="788" height="367"></figure><h3 id="repeatable-reads">Repeatable reads</h3><!--kg-card-begin: markdown--><ul>
<li>&#x9019;&#x53EF;&#x4EE5;&#x4FDD;&#x8B49;&#x5169;&#x6B21;&#x4E00;&#x6A23;query&#x62FF;&#x5230;&#x76F8;&#x540C;&#x8CC7;&#x6599;&#xFF0C;&#x4F46;&#x4E26;&#x6C92;&#x6709; range-locks &#x56E0;&#x6B64;&#x53EF;&#x80FD;&#x6703;&#x6709; phantom reads &#x554F;&#x984C;</li>
<li>locak
<ul>
<li>read</li>
<li>write</li>
</ul>
</li>
</ul>
<!--kg-card-end: markdown--><h3 id="serializable">Serializable</h3><!--kg-card-begin: markdown--><ul>
<li>&#x6700;&#x9AD8;&#x7B49;&#x7D1A;</li>
<li>lock
<ul>
<li>read</li>
<li>write</li>
<li>range-locks</li>
</ul>
</li>
</ul>
<!--kg-card-end: markdown--><h1 id="reference">Reference</h1><p><a href="https://en.wikipedia.org/wiki/Isolation_%28database_systems%29#Non-repeatable_reads">https://en.wikipedia.org/wiki/Isolation_(database_systems)#Non-repeatable_reads</a></p><p><a href="https://medium.com/@chester.yw.chu/%E8%A4%87%E7%BF%92%E8%B3%87%E6%96%99%E5%BA%AB%E7%9A%84-isolation-level-%E8%88%87%E5%B8%B8%E8%A6%8B%E7%9A%84%E4%BA%94%E5%80%8B-race-conditions-%E5%9C%96%E8%A7%A3-16e8d472a25c?p=16e8d472a25c">https://medium.com/@chester.yw.chu/&#x8907;&#x7FD2;&#x8CC7;&#x6599;&#x5EAB;&#x7684;-isolation-level-&#x8207;&#x5E38;&#x898B;&#x7684;&#x4E94;&#x500B;-race-conditions-&#x5716;&#x89E3;-16e8d472a25c?p=16e8d472a25c</a></p><p><a href="https://blog.amis.com/database-transaction-isolation-a1e448a7736e">https://blog.amis.com/database-transaction-isolation-a1e448a7736e</a></p><p><a href="https://stackoverflow.com/questions/11043712/what-is-the-difference-between-non-repeatable-read-and-phantom-read">https://stackoverflow.com/questions/11043712/what-is-the-difference-between-non-repeatable-read-and-phantom-read</a></p>]]></content:encoded></item><item><title><![CDATA[司馬庫斯鴛鴦湖- 申請借道證]]></title><description><![CDATA[<h2 id="%E7%B8%BD%E5%85%B1%E8%A6%81%E5%81%9A%E5%85%A9%E4%BB%B6%E4%BA%8B">&#x7E3D;&#x5171;&#x8981;&#x505A;&#x5169;&#x4EF6;&#x4E8B;</h2><p><br>1. &#x5165;&#x5C71;&#x8B49;&#x7533;&#x8ACB;<br>2. &#x8ECA;&#x5B50;&#x501F;&#x9053;&#x7533;&#x8ACB;</p><h3 id="%E5%85%A5%E5%B1%B1%E8%AD%89%E7%94%B3%E8%AB%8B"><br>&#x5165;&#x5C71;&#x8B49;&#x7533;&#x8ACB;</h3><p>&#x8CA0;&#x8CAC;&#x55AE;&#x4F4D;&#xFF1A;<a href="https://nv2.npa.gov.tw/NM107-604Client/">&#x5167;&#x653F;&#x90E8;&#x8B66;&#x653F;&#x7F72;</a><br>(&#x9700;&#x6E96;&#x5099;&#x4EBA;&#x54E1;&#x540D;&#x55AE;&#xFF0C;&#x8DEF;&#x7DDA;&#x5716;&#xFF0C;&#x57FA;&#x672C;</p>]]></description><link>https://www.johnnnnnny.com/si-ma-ku-si-yuan-yang-hu-shen-qing/</link><guid isPermaLink="false">61c9ff847c339b814fccc2a1</guid><category><![CDATA[爬山]]></category><dc:creator><![CDATA[Johnny.Xie]]></dc:creator><pubDate>Wed, 05 Jan 2022 06:20:18 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1695194695356-c71edd344ed2?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8YWxsfDMzfHx8fHx8Mnx8MTY5NTYwMjU2OHw&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<h2 id="%E7%B8%BD%E5%85%B1%E8%A6%81%E5%81%9A%E5%85%A9%E4%BB%B6%E4%BA%8B">&#x7E3D;&#x5171;&#x8981;&#x505A;&#x5169;&#x4EF6;&#x4E8B;</h2><img src="https://images.unsplash.com/photo-1695194695356-c71edd344ed2?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8YWxsfDMzfHx8fHx8Mnx8MTY5NTYwMjU2OHw&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" alt="&#x53F8;&#x99AC;&#x5EAB;&#x65AF;&#x9D1B;&#x9D26;&#x6E56;- &#x7533;&#x8ACB;&#x501F;&#x9053;&#x8B49;"><p><br>1. &#x5165;&#x5C71;&#x8B49;&#x7533;&#x8ACB;<br>2. &#x8ECA;&#x5B50;&#x501F;&#x9053;&#x7533;&#x8ACB;</p><h3 id="%E5%85%A5%E5%B1%B1%E8%AD%89%E7%94%B3%E8%AB%8B"><br>&#x5165;&#x5C71;&#x8B49;&#x7533;&#x8ACB;</h3><p>&#x8CA0;&#x8CAC;&#x55AE;&#x4F4D;&#xFF1A;<a href="https://nv2.npa.gov.tw/NM107-604Client/">&#x5167;&#x653F;&#x90E8;&#x8B66;&#x653F;&#x7F72;</a><br>(&#x9700;&#x6E96;&#x5099;&#x4EBA;&#x54E1;&#x540D;&#x55AE;&#xFF0C;&#x8DEF;&#x7DDA;&#x5716;&#xFF0C;&#x57FA;&#x672C;&#x4E0A;&#x8DDF;&#x8457;&#x7DB2;&#x9801;&#x6D41;&#x6210;&#x8D70;&#x5C31;&#x597D;)<br>(&#x56DE;&#x8986;&#x901F;&#x5EA6;&#x883B;&#x5FEB;&#x7684;&#xFF0C;&#x5927;&#x6982;&#x662F;&#x4ECA;&#x5929;&#x7533;&#x8ACB;&#x660E;&#x5929;&#x6536;&#x5230;&#x4FE1;)</p><h3 id="%E5%80%9F%E9%81%93%E8%B7%AF%E7%94%B3%E8%AB%8B">&#x501F;&#x9053;&#x8DEF;&#x7533;&#x8ACB;</h3><p>&#x8CA0;&#x8CAC;&#x55AE;&#x4F4D;&#xFF1A;<a href="https://www.fcea.gov.tw/inpage.asp?id=22">&#x69AE;&#x6C11;&#x68EE;&#x6797;&#x4FDD;&#x80B2;&#x4E8B;&#x696D;&#x7BA1;&#x7406;&#x8655;</a><br>( &#x9700;&#x8981;&#x5BC4;&#x4FE1;&#x5230; <code>26058 &#x5B9C;&#x862D;&#x7E23;&#x5B9C;&#x862D;&#x5E02;&#x6797;&#x68EE;&#x8DEF;100&#x865F;</code> )<br>&#x6E96;&#x5099;&#x5167;&#x5BB9;</p><ul><li>&#x4E0A;&#x4E00;&#x6B65;&#x9A5F;&#x5165;&#x5C71;&#x8B49;&#x7533;&#x8ACB;&#x7684;&#x6240;&#x6709;&#x8CC7;&#x6599;</li><li>&#x767B;&#x5C71;&#x8A08;&#x756B;&#x53CA;&#x8DEF;&#x7DDA;&#x5716;</li></ul><p>&#x53EF;&#x4EE5;&#x53C3;&#x8003;&#x4E0B;&#x65B9;&#x7B46;&#x8005;&#x5373;&#x53EF;<br>(&#x56E0;&#x70BA;&#x662F;&#x5BC4;&#x4FE1;&#xFF0C;&#x6240;&#x4EE5;&#x4E00;&#x4F86;&#x4E00;&#x5F80;&#x5927;&#x6982;&#x8981;&#x4E00;&#x9031;&#xFF0C;&#x9700;&#x8981;&#x7279;&#x5225;&#x6CE8;&#x610F;&#x6642;&#x9593;&#x5594;)<br></p><figure class="kg-card kg-image-card"><img src="https://storage.johnnnnnny.com/2021/12/---2021-12-28---2.14.43.png" class="kg-image" alt="&#x53F8;&#x99AC;&#x5EAB;&#x65AF;&#x9D1B;&#x9D26;&#x6E56;- &#x7533;&#x8ACB;&#x501F;&#x9053;&#x8B49;" loading="lazy" width="1276" height="1170"></figure><h3 id="reference">Reference:</h3><ul><li><a href="https://hiking.biji.co/index.php?q=trail&amp;act=detail&amp;id=1511">https://hiking.biji.co/index.php?q=trail&amp;act=detail&amp;id=1511</a></li><li><a href="https://hiking.biji.co/index.php?q=review&amp;act=info&amp;review_id=6444">https://hiking.biji.co/index.php?q=review&amp;act=info&amp;review_id=6444</a></li><li><a href="https://piping0213.pixnet.net/blog/post/467120321">https://piping0213.pixnet.net/blog/post/467120321</a><br> &#xA0; &#xA0; &#xA0; <br></li></ul>]]></content:encoded></item><item><title><![CDATA[Cache]]></title><description><![CDATA[緩存更新機制，緩存驅逐策略]]></description><link>https://www.johnnnnnny.com/cache/</link><guid isPermaLink="false">60e94c2bec3b435abc6444d1</guid><category><![CDATA[caching]]></category><dc:creator><![CDATA[Johnny.Xie]]></dc:creator><pubDate>Sat, 10 Jul 2021 07:33:39 GMT</pubDate><media:content url="https://storage.johnnnnnny.com/2021/07/--Photos--.jpeg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h2 id="%E7%B7%A9%E5%AD%98%E6%9B%B4%E6%96%B0%E6%A9%9F%E5%88%B6">&#x7DE9;&#x5B58;&#x66F4;&#x65B0;&#x6A5F;&#x5236;</h2>
<h3 id="write-through-%E9%83%BD%E5%AF%AB%E5%95%A6">Write through (&#x90FD;&#x5BEB;&#x5566;)</h3>
<blockquote>
<img src="https://storage.johnnnnnny.com/2021/07/--Photos--.jpeg" alt="Cache"><p>&#x540C;&#x6642;&#x5BEB;&#x6578;db &amp; cache</p>
</blockquote>
<ul>
<li>&#x512A;&#x9EDE;
<ol>
<li>&#x5B8C;&#x6574;&#x7684;&#x6578;&#x64DA;&#x4E00;&#x5236;&#x6027;</li>
<li>&#x767C;&#x751F;&#x7CFB;&#x7D71;&#x707D;&#x96E3;&#x5D29;&#x6F70;&#x6642;&#x4E0D;&#x6703;&#x4E1F;&#x5931;&#x8CC7;&#x6599;</li>
</ol>
</li>
<li>&#x7F3A;&#x9EDE;
<ol>
<li>&#x540C;&#x6642;&#x5BEB;&#x5165;db &amp; cache&#xFF0C;&#x56E0;&#x6B64;&#x5BEB;&#x7684;&#x5EF6;&#x9072;&#x6027;&#x6703;&#x504F;&#x9AD8;</li>
</ol>
</li>
</ul>
<h3 id="write-around-%E5%AF%ABdb">Write around (&#x5BEB;DB)</h3>
<blockquote>
<p>&#x9069;&#x5408;&#x653E;&#x5728;&#x5BEB;&#x5165;&#x5F8C;&#x6C92;&#x6709;&#x8981;&#x99AC;&#x4E0A;&#x8B80;&#x53D6;&#x7684;&#x5730;&#x65B9;</p>
</blockquote>
<ul>
<li>&#x512A;&#x9EDE;
<ol>
<li>&#x76F4;&#x63A5;&#x5BEB;&#x5165;db&#xFF0C;&#x56E0;&#x6B64;&#x5BEB;&#x5F97;&#x5EF6;&#x9072;&#x6703;&#x4F4E;&#x4E00;&#x4E9B;</li>
<li>&#x767C;&#x751F;&#x7CFB;&#x7D71;&#x707D;&#x96E3;&#x5D29;&#x6F70;&#x6642;&#x4E0D;&#x6703;&#x4E1F;&#x5931;&#x8CC7;&#x6599;</li>
</ol>
</li>
<li>&#x7F3A;&#x9EDE;
<ol>
<li>&#x4F9D;&#x8CF4; read-miss &#x66F4;&#x65B0;&#x7DE9;&#x5B58;</li>
</ol>
</li>
</ul>
<h3 id="write-back-%E5%AF%AB%E7%B7%A9%E5%AD%98">Write-back (&#x5BEB;&#x7DE9;&#x5B58;)</h3>
<ul>
<li>&#x512A;&#x9EDE;
<ol>
<li>&#x901F;&#x5EA6;fucking&#x5FEB;</li>
</ol>
</li>
<li>&#x7F3A;&#x9EDE;<br>
2. &#x767C;&#x751F;&#x7CFB;&#x7D71;&#x707D;&#x96E3;&#x5D29;&#x6F70;&#x6642;&#x8CC7;&#x6599;8888888</li>
</ul>
<h2 id="%E7%B7%A9%E5%AD%98%E9%A9%85%E9%80%90%E7%AD%96%E7%95%A5">&#x7DE9;&#x5B58;&#x9A45;&#x9010;&#x7B56;&#x7565;</h2>
<blockquote>
<p>Cache eviction policies</p>
</blockquote>
<ul>
<li>First In First Out (FIFO)</li>
<li>Last In First Out (LIFO)</li>
<li>Least Recently Used (LRU)</li>
<li>Most Recently Used (MRU)</li>
<li>Least Frequently Used (LFU)</li>
<li>Random Replacement (RR)</li>
</ul>
<h2 id="refrence">Refrence</h2>
<ul>
<li><a href="https://www.educative.io/courses/grokking-the-system-design-interview/3j6NnJrpp5p">https://www.educative.io/courses/grokking-the-system-design-interview/3j6NnJrpp5p</a></li>
</ul>
<!--kg-card-end: markdown-->]]></content:encoded></item></channel></rss>