*๋ผ๋ ํจ๋๋ ๋ด๋ณด๋ด๊ธฐ์ CPU ์ฌ์ฉ๋์ 100 %๋ก ๋ง๋ญ๋๋ค.
etherpad ๋ด๋ณด๋ด๊ธฐ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ต๋๋ค.
๋ด ์๊ฐ ์ *๋ ๋ชจ๋ ํจ๋ ์ด๋ฆ๊ณผ ์ผ์นํ๊ณ ์ ์ฒด ์ธ์คํด์ค๋ฅผ ๋ด๋ณด๋ด๋ ค๊ณ ์๋ํฉ๋๋ค.
"foobar"๋ผ๋ ์ด๋ฆ์ ๋ง์ ํ์คํ ๋ฆฌ๋ฅผ ๊ฐ์ง ํจ๋๋ก ์ธ์คํด์ค์์ ์ด๊ฒ์ ํ
์คํธํ๊ณ "foo *"๋ผ๋ ์๋ก ์์ฑ ๋ ํจ๋๋ฅผ ๋ด๋ณด๋ด๋ ค๊ณ ํ์ต๋๋ค. foobaz ๋ฐ foofoo์ ๊ฐ์ ๋ค๋ฅธ ํจ๋๊ฐ ์์ต๋๋ค.
foo * ์ฉ์ผ๋ก ๋ด ๋ณด๋ธ ํ์ผ์ด foobar ์ฉ์ผ๋ก ๋ด ๋ณด๋ธ ํ์ผ๋ณด๋ค ํฝ๋๋ค.
ํด๊ฒฐ ๋ฐฉ๋ฒ์ผ๋ก https://github.com/ether/etherpad-lite/tree/fix/export-wildcards . ๊ณผ๊ฑฐ์๋ https://github.com/ether/etherpad-lite/commit/a0fb65205c7d7ff95f00eb9fd88e93b300f30c3d ์ด์ ์ ์ ๋์ฌ๋ฅผ ์ง์ ํ๊ณ ํด๋น ์ ๋์ฌ์ ์ผ์นํ๋ ํจ๋๋ฅผ ๋ด๋ณด๋ผ ์์์์ต๋๋ค.
์ด ๋ฒ๊ทธ๋ฅผ ๋ ์ ์ดํดํ๋ ค๋ฉด ๋๊ตฐ๊ฐ ueberdb์ query-builder ๋ถ๋ถ์ ์ดํดํด์ผํฉ๋๋ค.
SQL ๋ฐฑ์๋๋ฅผ ์ฌ์ฉํ ๋ ex. ___๋ 3 ์ ์ด๋ฆ์ ๋ชจ๋ ํจ๋๋ฅผ ๋ด ๋ณด๋ ๋๋ค.
๋ณด๋ค:
https://dev.mysql.com/doc/refman/5.7/en/pattern-matching.html
https://github.com/Pita/ueberDB/blob/5c2ef4dc1476ef24bc475885817816c3e602ec8b/mysql_db.js
ueberdb๊ฐ ํค๋ฅผ ์ฐพ๊ธฐ ์ํด ์ํ ํ ์์
(* ๋ฐ %๋ ํจ์น ๋ etherpad์์ ํํฐ๋ง๋์ง๋ง _๋ ํน์ ๋ฌธ์์ด๊ธฐ๋ํฉ๋๋ค) :
SELECT key
FROM store
key
LIKE?
๊ฐ์ฌํฉ๋๋ค! ueberdb๋ ๋ค์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐฑ์๋๋ฅผ ์ง์ํ๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ๋ ํ์ธํด์ผํ ๊น์?
๋ํ ํจ๋ ์ด๋ฆ์ ๋ฌธ์๋ฅผ ์ง์ํ๊ณ ํํฐ๋งํ์ง ์๊ณ ๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋๋ฌํ๊ธฐ ์ ์ ์ด์ค์ผ์ดํํ๋ฉด ์ข์ ๊ฒ์ ๋๋ค. ๋๋ ๋ด์ผ ์ด๊ฒ์ ์กฐ์ฌ ํ ๊ฒ์ด๋ค.
์ ์ด๋ sqlite์ postgresql์๋ ๋์ผํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
๋ค๋ฅธ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐฑ์๋์ ๋ํด ํ์คํ์ง ์์ต๋๋ค.
๋๋ฌด ์ค๋ ๊ฑธ๋ ค์ ์ฃ์กํฉ๋๋ค ...
mysql, postgresql, sqlite ๋ฐ crate๋ % ๋ฐ _๋ฅผ ์ฌ์ฉํฉ๋๋ค.
cassandra, couch, rethink, mongo, dirty, redis๋ ์๋ง๋ PCRE ์คํ์ผ ์ ๊ท์์ ์ง์ํ ๊ฒ์
๋๋ค.
leveldb ๋ฐ lmdb๋ findKeys๋ฅผ ๊ตฌํํ์ง ์์ต๋๋ค.
์ชฝ์ผ๋ก? ์ด๊ฒ์ ์ฌ๊ฐํ ๊ธฐ๋ฐ ์ ์ง ๋ฌธ์ ์ ๋๋ค.
FWIW, ์ฐ๋ฆฌ๋ ์ด๋ฌํ ํน์ ์ด์ ๋ก etherpad ๋ด๋ณด๋ด๊ธฐ ๋์ ์ ๋นํ์ฑํํ์ต๋๋ค. ์ฝ๋๋ฅผ ์ฝ์ผ๋ฉด์ etherpad ๋ด๋ณด๋ด๊ธฐ ๋ ์ ์ด ์๋ฅผ ๋ค์ด txt ๋์ ์ฒ๋ผ padmanager๋ฅผ ์ฌ์ฉํ์ง ์๊ณ db ํจ์๋ฅผ ์ง์ ํธ์ถํ๋ค๋ ๊ฒ์ ๊นจ๋ฌ์์ต๋๋ค. ์ด ์์ ๋ถํฐ ethepad์ ๋ด๋ถ์ ๋ํ ์ง์์ด 0 ๊ฐ์์ ์ธ์ ํ์ง๋ง export txt ์๋ ํฌ์ธํธ์๋์ด ๋ฌธ์ ๊ฐ ์๊ธฐ ๋๋ฌธ์ DB ์์ค์์์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋์ padmanager๋ฅผ ์ฌ์ฉํ๋๋ก etherpad ์๋ ํฌ์ธํธ๋ฅผ ์์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์๋
ํ์ธ์,
์ด ๋ฒ๊ทธ์ ์ํ๋ ์ด๋ป์ต๋๊น?
์ด ๋ฌธ์ ๋ https://github.com/Pita/ueberDB ์์๋ ์์ฑ๋์ด์ผํ๋ค๊ณ ์๊ฐํฉ๋๋ค
์ด ๋ฌธ์ ๋ ๋ ธ๋ ํฌ๋์ (์ฟผ๋ฆฌ๊ฐ ๋๋ฌด ๋ง์ ํญ๋ชฉ๊ณผ ์ผ์น ํ ๋ ๋ฐ์ ํจ)๊ฐ ์๋๋ผ ํจ๋์ ์ด๋ฆ์ ๋ชฐ๋ผ๋ ์ด๋ ํจ๋ ์๋ฒ์ ์ ์ฒด ๋ด์ฉ์ ๋ด๋ณด๋ผ ์ ์๋ค๋ ๊ฒ์ ๋๋ค.
๋ฐ๋ผ์ ์ ์๊ฐ์๋ ueberDB์์ ์์ ๋ ๋๊น์ง ๋ชจ๋ sql LIKE ํน์ ๋ฌธ์๋ฅผ ํํฐ๋งํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
๋ ์ด์ findKeys
ํธ์ถํ์ง ์๊ธฐ ๋๋ฌธ์ https://github.com/ether/etherpad-lite/commit/806c9207e365304ef0f3130d7d3ec59f362f8f9d ์์ ์์ ํด์ผํฉ๋๋ค. ํ์ธ ํ ์ ์์ด์?
์๋ ํ์ธ์, ๊ฐ์ ๋ฌธ์ ์ง๋ง ์กฐ๊ธ ๋ค๋ฆ ๋๋ค
ํจ๋๋ฅผ ์ด ์๋ง์ ๋ ธ๋๋ 100 % CPU ์ฌ์ฉ๋์ ๋งค์ฐ ํ์์ค๋ฝ๊ฒ ๋ง๋ญ๋๋ค. koi do ????
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ชฝ์ผ๋ก? ์ด๊ฒ์ ์ฌ๊ฐํ ๊ธฐ๋ฐ ์ ์ง ๋ฌธ์ ์ ๋๋ค.