Rust-rocksdb: ์ตœ์‹  RocksDB ์ฝ”์–ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ

์— ๋งŒ๋“  2018๋…„ 11์›” 04์ผ  ยท  11์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: rust-rocksdb/rust-rocksdb

Rust ๋ฐ”์ธ๋”ฉ์€ ํ˜„์žฌ ์ฝ”์–ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ 5.14.2 ๋ฒ„์ „์„ ๋Œ€์ƒ์œผ๋กœ ํ•˜๊ณ  ์žˆ์ง€๋งŒ 5.15.10 ๊ฐ€ ์ถœ์‹œ๋œ ์ง€ ํ•œ ๋‹ฌ์ด ์กฐ๊ธˆ ๋„˜์—ˆ์Šต๋‹ˆ๋‹ค. ํš๊ธฐ์ ์ธ/๋†€๋ผ์šด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ  ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(๋ฒ„์ „ 5.15.0์—์„œ API ๋ณ€๊ฒฝ ์‚ฌํ•ญ ๋ฐ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ๋„์ž…).

enhancement

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋‚˜๋Š” ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๋‹ฌ๋ฆฌ ๋งํ•˜์ง€ ์•Š๋Š” ํ•œ #166์ด ๋™์  ์—ฐ๊ฒฐ ์š”๊ตฌ ์‚ฌํ•ญ์„ ๋‹ฌ์„ฑํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜ค๋Š˜ ํ˜„์žฌ RocksDB์˜ ํ˜„์žฌ ๋ฒ„์ „์€ 5.17.2 ์ด๋ฉฐ 4๊ฐœ์›”์ด ๊ฐ€๊นŒ์›Œ์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ์‹ ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธ ํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  11 ๋Œ“๊ธ€

์ž๋™ ์ƒ์„ฑ ๋ฐ”์ธ๋”ฉ์— ๋Œ€ํ•ด ์ž˜ ๋ชจ๋ฅด์ง€๋งŒ ๋™์  ์—ฐ๊ฒฐ๊ณผ ๊ฐ™์€ ๊ฒƒ์„ ์ด๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
์˜ˆ๋ฅผ ๋“ค์–ด leveldb ๋ฐ”์ธ๋”ฉ( https://github.com/skade/leveldb-sys )์—์„œ ๋ฐฐํฌ ์ €์žฅ์†Œ์—์„œ libleveldb-dev ๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•˜๋ฉฐ ๋งค๋ฒˆ ์ „์ฒด๋ฅผ ์ปดํŒŒ์ผํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. , ๊ทธ๋ž˜์„œ ๋ช‡ ์ดˆ๊ฐ€ ๊ฑธ๋ฆฌ๋Š” ๋ฐ”์ธ๋”ฉ๋งŒ ์ปดํŒŒ์ผํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์—์„œ librocksdb-sys๋งŒ ์ปดํŒŒ์ผํ•˜๋Š” ๋ฐ ๋ช‡ ๋ถ„์ด ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด (๋‚ด ์ƒ๊ฐ์—) ์ด๊ฒƒ์€ rockdb์˜ C++ ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ฒ„์ „ ๊ด€๋ฆฌ ๋ฌธ์ œ๋„ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ํŽ˜์ด์Šค๋ถ์ด ๊ณต๊ฐœ API๋ฅผ ๋™์ผํ•˜๊ฒŒ ์œ ์ง€ํ•˜๋Š” ํ•œ, ์‚ฌ์šฉ์ž๋Š” ๋ฐ”์ธ๋”ฉ์˜ ๊ด€๋ฆฌ์ž๊ฐ€ ์•„๋‹ˆ๋ผ ์ฝ”์–ด ๋ฒ„์ „์„ ๋‹ด๋‹นํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

@elichai ์ข‹์€ ์ง€์ ์ž…๋‹ˆ๋‹ค. ์ €๋„ ์ด ์ƒ๊ฐ์„ ํ–ˆ๊ณ  ์•ž์œผ๋กœ ํ•ด๋ณผ ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด๊ฒƒ์— ์ฐข์–ด์ง„ ๊ฒƒ ๊ฐ™์•„์š”. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ •์ ์œผ๋กœ ์—ฐ๊ฒฐํ•˜๊ณ  ์ถ”๊ฐ€ ์ข…์†์„ฑ์„ ์„ค์น˜ํ•  ํ•„์š”๊ฐ€ ์—†๋Š” ํŽธ๋ฆฌํ•จ์ด ๋งˆ์Œ์— ๋“ญ๋‹ˆ๋‹ค. ์บ์‹œ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ง€์†์ ์œผ๋กœ ๋‹ค์‹œ ์ปดํŒŒ์ผํ•  ํ•„์š”๊ฐ€ ์—†๋„๋ก ํ•˜๋ฏ€๋กœ ์ „์ฒด๋ฅผ ํ•œ ๋ฒˆ ์ปดํŒŒ์ผํ•ด์•ผ ํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€์ด ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์ด ๋„ˆ๋ฌด ์˜ค๋žซ๋™์•ˆ ์ •์ ์œผ๋กœ ํฌํ•จ๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์„ ๊ฐ์•ˆํ•  ๋•Œ, ๋‚˜๋Š” ์•„๋งˆ๋„ ๋‹ค๋ฅธ ๋ฌธ์ œ์—์„œ ๊ทธ ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ์ƒ๊ฐ์„ ์–ป๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์ •์  ๋ฐ ๋™์  ์—ฐ๊ฒฐ(์•„๋งˆ๋„ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ)์„ ๋ชจ๋‘ ํ—ˆ์šฉํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ €์—๊ฒŒ ๊ฐ€์žฅ ์œ ์—ฐํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ปดํŒŒ์ผ ์‹œ๊ฐ„์€ ํ˜„์žฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ž์ฒด์˜ ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ์ง€๋งŒ ์šฐ๋ฆฌ์—๊ฒŒ ์˜์กดํ•˜๋Š” ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ์˜ ์ปดํŒŒ์ผ ์‹œ๊ฐ„์—๋„ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋ฉฐ ์ด๋Š” ๋ถˆํ–‰ํ•œ ์ผ์ž…๋‹ˆ๋‹ค.

@vitvakatu ์ •ํ™•ํžˆ. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ž์ฒด์˜ ๊ฒฝ์šฐ ์ปดํŒŒ์ผ ์‹œ๊ฐ„์€ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋‚ด ํ”„๋กœ์ ํŠธ๋ฅผ ์ปดํŒŒ์ผํ•  ๋•Œ ๋‹ค๋ฅธ ์ข…์†์„ฑ๋ณด๋‹ค librocksdb-sys ์—์„œ ๋” ์˜ค๋žœ ์‹œ๊ฐ„ ๋™์•ˆ "๊ณ ์ฐฉ"๋ฉ๋‹ˆ๋‹ค(๋ช‡ ์ดˆ ๋Œ€์‹  1๋ถ„ ์ด์ƒ ๊ฑธ๋ฆด ์ˆ˜ ์žˆ๋Š” ๊ฒƒ๊ณผ ๊ฐ™์ด ์ฃผ๋ฌธ์˜ ํฌ๊ธฐ๊ฐ€ ๋” ๊น๋‹ˆ๋‹ค)

@vitvakatu ์ €๋Š” ๊ทธ ์•„์ด๋””์–ด๊ฐ€ ์ข‹์Šต๋‹ˆ๋‹ค(๋‘˜ ๋‹ค ์ง€์›).

#166์€ ์ด๋ฏธ ์ด๊ฒƒ์„ ๋‹ฌ์„ฑํ–ˆ์Šต๋‹ˆ๊นŒ? ์•„๋งˆ๋„ ์ •์  ๋ฐ ๋™์  ์—ฐ๊ฒฐ ๋ชจ๋‘์— ๋Œ€ํ•ด ์ด๋ฏธ ์ง€์›๋˜์ง€๋งŒ ๋ฌธ์„œํ™”๋˜๊ฑฐ๋‚˜ ์ธ์ฒด ๊ณตํ•™์ ์ด์ง€ ๋ชปํ•ฉ๋‹ˆ๊นŒ?

๋‚˜๋Š” ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๋‹ฌ๋ฆฌ ๋งํ•˜์ง€ ์•Š๋Š” ํ•œ #166์ด ๋™์  ์—ฐ๊ฒฐ ์š”๊ตฌ ์‚ฌํ•ญ์„ ๋‹ฌ์„ฑํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜ค๋Š˜ ํ˜„์žฌ RocksDB์˜ ํ˜„์žฌ ๋ฒ„์ „์€ 5.17.2 ์ด๋ฉฐ 4๊ฐœ์›”์ด ๊ฐ€๊นŒ์›Œ์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ์‹ ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธ ํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

#261์—์„œ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. @aleksuss ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

๋ช…ํ™•ํžˆํ•˜๊ธฐ ์œ„ํ•ด ๋™์  ์—ฐ๊ฒฐ์„ ์›ํ•˜๋ฉด .so / .a ์˜ ์œ„์น˜์™€ ํ•จ๊ป˜ env var ROCKSDB_LIB_DIR ๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋งž์ฃ ?

@elichai ๋„ค

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰