libSQL ํ”„๋กœ์ ํŠธ๋Š” SQLite DBMS ํฌํฌ ๊ฐœ๋ฐœ์„ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

libSQL ํ”„๋กœ์ ํŠธ๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ฐœ๋ฐœ์ž ์ฐธ์—ฌ์— ๋Œ€ํ•œ ๊ฐœ๋ฐฉ์„ฑ๊ณผ SQLite์˜ ์›๋ž˜ ๋ชฉ์ ์„ ๋„˜์–ด์„œ๋Š” ํ˜์‹  ์ด‰์ง„์— ์ดˆ์ ์„ ๋งž์ถ˜ SQLite DBMS์˜ ํฌํฌ๋ฅผ ๋งŒ๋“ค๋ ค๊ณ  ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. ํฌํฌ๋ฅผ ๋งŒ๋“œ๋Š” ์ด์œ ๋Š” ๊ฐœ์„ ์„ ์ด‰์ง„ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ํƒ€์‚ฌ ์ฝ”๋“œ๋ฅผ ํ—ˆ์šฉํ•˜๋Š” ๊ฒƒ๊ณผ ๊ด€๋ จ๋œ SQLite์˜ ์ƒ๋‹นํžˆ ์—„๊ฒฉํ•œ ์ •์ฑ… ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ํฌํฌ ์ฝ”๋“œ๋Š” MIT ๋ผ์ด์„ผ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค(SQLite๋Š” ๊ณต๊ฐœ ๋„๋ฉ”์ธ์œผ๋กœ ๋ฆด๋ฆฌ์Šค๋ฉ๋‹ˆ๋‹ค).

ํฌํฌ ์ž‘์„ฑ์ž๋Š” ์ฃผ์š” SQLite์™€์˜ ํ˜ธํ™˜์„ฑ์„ ์œ ์ง€ํ•˜๊ณ  ๋™์ผํ•œ ์ˆ˜์ค€์˜ ํ’ˆ์งˆ์„ ์œ ์ง€ํ•˜๋ฉด์„œ ์ผ๋ จ์˜ ํ…Œ์ŠคํŠธ ์‚ฌ๋ก€๋ฅผ ์œ ์ง€ํ•˜๊ณ  ํ˜์‹ ์ด ์ถ”๊ฐ€๋จ์— ๋”ฐ๋ผ ์ ์ฐจ ํ™•์žฅํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” C ์–ธ์–ด์˜ ๊ธฐ๋ณธ์ ์ธ ๋ถ€๋ถ„์„ ์œ ์ง€ํ•˜๋ฉด์„œ Rust ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด ์ œ์•ˆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์ˆ˜์šฉ์— ๊ด€ํ•œ ์ฃผ์š” SQLite ํ”„๋กœ์ ํŠธ์˜ ์ •์ฑ…์ด ๋ณ€๊ฒฝ๋˜๋ฉด libSQL ๊ฐœ๋ฐœ์ž๋Š” ๋ˆ„์ ๋œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ฃผ์š” ํ”„๋กœ์ ํŠธ๋กœ ์ „์†กํ•˜๊ณ  ๊ฐœ๋ฐœ์— ์ฐธ์—ฌํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค.

SQLite ๊ธฐ๋Šฅ ํ™•์žฅ์— ๋Œ€ํ•œ ์•„์ด๋””์–ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ํŒŒ์ผ ์‹œ์Šคํ…œ(LiteFS)์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ ๋ณต์ œ๋ฅผ ํ†ตํ•˜์ง€ ์•Š๊ณ  ๋ณ„๋„์˜ ์ œํ’ˆ(dqlite, rqlite, ChiselStore)์„ ๊ฐœ๋ฐœํ•˜์ง€ ์•Š๊ณ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ž์ฒด ์ˆ˜์ค€์—์„œ ์ž‘๋™ํ•˜๋Š” ๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์ถ•์„ ์œ„ํ•œ ๋„๊ตฌ ํ†ตํ•ฉ.
  • Linux ์ปค๋„์—์„œ ์ œ๊ณตํ•˜๋Š” io_uring ์ธํ„ฐํŽ˜์ด์Šค์™€ ๊ฐ™์€ ๋น„๋™๊ธฐ API ์‚ฌ์šฉ์— ๋Œ€ํ•œ ์ตœ์ ํ™”.
  • RAM์— ๋งž์ง€ ์•Š๋Š” ์ปค๋„์˜ ๋ฐ์ดํ„ฐ ์„ธํŠธ๋ฅผ ์ €์žฅํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ์— ๋Œ€ํ•ด eBPF ๊ฐ€์ƒ ๋จธ์‹  ์ปค๋„ ์ง€์›๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ Linux ์ปค๋„์—์„œ SQLite๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.
  • ๋ชจ๋“  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ์ž‘์„ฑ๋˜๊ณ  WebAssembly ์ค‘๊ฐ„ ์ฝ”๋“œ๋กœ ์ปดํŒŒ์ผ๋œ ์‚ฌ์šฉ์ž ์ •์˜ ํ•จ์ˆ˜๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€