์˜คํ”ˆ์„ ์ถ•ํ•˜ ๋“œ๋ฆฌ๋ฉฐ ์งˆ๋ฌธ์„ ๋“œ๋ฆฌ๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.

213 views
Skip to first unread message

๊ฐ•ํ˜„์‹

unread,
Jun 14, 2014, 8:34:57โ€ฏPM6/14/14
to open...@googlegroups.com
์•ˆ๋…•ํ•˜์„ธ์š”
Arcus์— ๊ด€์‹ฌ์ด ์žˆ๋Š” ๊ฐœ๋ฐœ์ž์ž…๋‹ˆ๋‹ค.

๋‹ค๋ฆ„์ด ์•„๋‹ˆ๋ผ ๋ช‡๊ฐ€์ง€ ์งˆ๋ฌธ์ด ์žˆ์–ด์„œ ๊ธ€์„ ์จ ๋ด…๋‹ˆ๋‹ค.

์งˆ๋ฌธ๋“ค์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

1. Arcus๋Š” fail over๊ฐ€ ์ž๋™์œผ๋กœ ๋œ๋‹ค๊ณ  ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

Arcus๋Š” Consistent Hashing์„ ํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
๋งŒ์•ฝ Arcus 3๋Œ€๋ฅผ ์šด์˜ํ•œ๋‹ค๋ฉด 1๋Œ€๊ฐ€ ์ฃฝ์œผ๋ฉด 2๋Œ€๊ฐ€ ์†์‹ค๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ์™ธํ•˜๊ณ  ์ •์ƒ์ ์œผ๋กœ ์šด์˜์ด ๋˜๋Š”๊ฑด๊ฐ€์š”?

๊ทธ๋ฆฌ๊ณ  ํ•œ๋Œ€๊ฐ€ ๋‹ค์‹œ ์‚ด์•„๋‚˜๋ฉด ์ž๋™์œผ๋กœ ์šด์˜์— ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋Š”๊ฑด์ง€๋„ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

2. Admin์„ ํ†ตํ•ด์„œ Runtime์— ์„œ๋ฒ„๋ฅผ ์ถ”๊ฐ€/์‚ญ์ œ๊ฐ€ ๋˜๋Š” ๊ฒƒ์œผ๋กœ ์•Œ๊ณ  ์žˆ๋Š”๋ฐ
์ผ๋ถ€ ์†์‹ค์ด ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค ๋ผ๊ณ  ๋‹คํ๋จผํŠธ์—์„œ ๋ดค์Šต๋‹ˆ๋‹ค. ์™œ ๊ทธ๋Ÿฐ์ง€ ์„ค๋ช… ์ข€ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.
(๊ณผ์ •์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.)

3. B+ Tree๋ฅผ ์ œ์™ธํ•˜๊ณ  X-Memcached์™€์˜ ์ฐจ์ด์ ์€ ๋ฌด์—‡์ด ์žˆ์„๊นŒ์š”?
ํ˜„์žฌ ์ €ํฌ๋Š” x-memcached๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ณ  fail-over๋Š” ์•„๋‹ˆ๋”๋ผ๋„ ํ•œ๋Œ€๊ฐ€ ์ฃฝ์œผ๋ฉด ์ปค๋„ฅ์…˜ ๋ฆฌ์ŠคํŠธ์—์„œ ๋นผ๋ฒ„๋ฆฌ๊ณ  ๋‚˜๋จธ์ง€๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ๋‹ค์‹œ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋งŒ Collection ํƒ€์ž…์€ ๋ฝ์„ ๊ฑธ์ง€ ์•Š๋Š” ์ด์ƒ ๋ฌธ์ œ๊ฐ€ ์žˆ๊ธด ํ•˜์ง€๋งŒ์š”... ๊ทธ๊ฒƒ ๋ง๊ณ  ์–ด๋–ค ์ฐจ์ด์ ์ด ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

jhpark816

unread,
Jun 15, 2014, 7:50:32โ€ฏAM6/15/14
to open...@googlegroups.com
์•ˆ๋…•ํ•˜์„ธ์š”..
๋จผ์ € ๊ด€์‹ฌ๊ฐ€์ ธ ์ฃผ์…”์„œ ๊ฐ์‚ฌ๋“œ๋ฆฌ๊ณ , ๋‹ต๋ณ€๋“œ๋ฆฌ๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

- 3๋Œ€ ์šด์˜ ์ค‘ 1๋Œ€๊ฐ€ ์ฃฝ์œผ๋ฉด, ์ฃฝ์€ cache node๊ฐ€ ๊ฐ€์ง€๋˜ data๋Š” lossํ•˜๋”๋ผ๋„ Arcus๋Š” ๋‚˜๋จธ์ง€ 2๋Œ€๋กœ ์šด์˜์„ ๊ณ„์†ํ•ฉ๋‹ˆ๋‹ค.
ย  Arcus๋Š” DB์™€ ๊ฐ™์€ back-end storage์˜ ์•ž๋‹จ์—์„œ hot-data๋ฅผ "replication by application ๋ฐฉ์‹"์œผ๋กœ cachingํ•ฉ๋‹ˆ๋‹ค.
ย  ๋‹ค์‹œ ๋งํ•ด, loss๋œ data์— ๋Œ€ํ•ด ์‘์šฉ์€ cache miss๋กœ ์ธ์ง€ํ•˜๋Š” ์ฆ‰์‹œ, ๋‹ค์‹œ DB์—์„œ ๊ทธ data๋ฅผ ์กฐํšŒํ•˜์—ฌ Arcus์— cachingํ•˜๊ธฐ ๋•Œ๋ฌธ์—,
ย  ๊ทธ ์ดํ›„๋ถ€ํ„ฐ ์‘์šฉ์€ Arcus cache cloud์—์„œ ๊ทธ data๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

- Cache node failure๋Š” zookeeper์— ์˜ํ•ด detection๋˜๊ณ , ๋ณ€๊ฒฝ๋œ alive cache node list๋Š” Arcus clients์—๊ฒŒ ์ „๋‹ฌ๋˜๋ฉฐ,
ย  Arcus clients๋Š” ๋ณ€๊ฒฝ๋œ cache node list๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ consistent hashingํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

- ์ฃฝ์€ cache node๋ฅผ ๋‹ค์‹œ ๊ตฌ๋™์‹œํ‚ค๋ฉด, ๊ทธ cache node๋Š” ์ž์‹ ์˜ ์ •๋ณด๋ฅผ zookeeper์— ephemeral node๋กœ ๋“ฑ๋กํ•˜๊ฒŒ ๋˜๋ฉฐ,
ย  ๊ทธ ์ฆ‰์‹œ ๊ทธ cache node๊ฐ€ ์ถ”๊ฐ€๋œ cache node list๋Š” zookeeper์— ์˜ํ•ด Arcus clients์— ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.
ย  ์ฆ‰, ๋‹ค์‹œ 3๋Œ€์˜ cache node๋กœ ๊ตฌ์„ฑ๋˜์–ด ์šด์˜๋ฉ๋‹ˆ๋‹ค.

- ์œ„์™€ ๊ฐ™์ด Arcus์— ์ƒˆ๋กœ์šด cache node๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฒŒ ๋˜๋ฉด,
ย  ์ฆ‰, 2๊ฐœ cache node์—์„œ 3๊ฐœ cache node๋กœ ํ™•์žฅ๋˜๋Š” ๊ฒฝ์šฐ์—๋„ data loss๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
ย  ์ด๋Š” cache node ์ถ”๊ฐ€๋กœ ์ธํ•ด, consistent hashing์— ์˜ํ•œ key-to-node mapping์ด ๋ณ€๊ฒฝ๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
ย  ์˜ˆ๋ฅผ ๋“ค์–ด, K1, K2, ..., K10์˜ 10๊ฐœ key๊ฐ€ ์กด์žฌํ•˜๊ณ , N1, N2์˜ 2๊ฐœ cache node๊ฐ€ ์กด์žฌํ•˜๊ณ ,
ย  ํ™€์ˆ˜๋ฒˆ์งธ key๋“ค์€ N1์œผ๋กœ mapping๋˜๊ณ , ์ง์ˆ˜๋ฒˆ์งธ key๋“ค์€ N2๋กœ mapping๋˜์–ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.
ย  ์ด ์ƒํƒœ์—์„œ ์ƒˆ๋กœ์šด N3๊ฐ€ ์ถ”๊ฐ€๋˜๋ฉด, consistent hashing์— ์˜ํ•ด 10๊ฐœ key๋“ค์ค‘ 1/3 ์ •๋„๊ฐ€ N3์œผ๋กœ re-mapping๋ฉ๋‹ˆ๋‹ค.
ย  ์ƒˆ๋กœ์šด N3์€ empty ์ƒํƒœ๋กœ ๊ตฌ๋™๋˜๋ฏ€๋กœ, ๊ทธ ์‹œ์ ์— N3์œผ๋กœ re-mapping๋œ key๋“ค์— ๋Œ€ํ•œ ์ ‘๊ทผ์€
ย  cache miss๋ฅผ ์œ ๋ฐœ์‹œํ‚ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ตญ data loss์™€ ๋งˆ์ฐฌ๊ฐ€์ง€ ์ƒํƒœ๊ฐ€ ๋˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
ย  N3์œผ๋กœ re-mapping๋œ key๋“ค์€ N1 ๋˜๋Š” N2์— ์กด์žฌํ•˜๊ฒ ์ง€๋งŒ, ๋” ์ด์ƒ ์กด์žฌํ•˜์ง€ ์•Š๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋ฉฐ,
ย  expiration ๋˜๋Š” eviction์œผ๋กœ ๋‚˜์ค‘์— ์ œ๊ฑฐ๋˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
ย ย 
- ๋งˆ์ง€๋ง‰ ์งˆ๋ฌธ์€ ๊ธฐ์กด memcached ์™€์˜ ์ฐจ์ด ๊ธฐ๋Šฅ์„ ์งˆ๋ฌธํ•˜์‹  ๊ฒƒ์ธ์ง€์š” ??
ย  ๊ธฐ์กด memcached์™€์˜ ์ฐจ์ด์ ์€ http://naver.github.io/arcus/ ์— ๊ฐ„๋‹จํžˆ ๊ธฐ์ˆ ํ•˜์˜€๋Š” ๋ฐ์š”. ๋Œ€ํ‘œ์ ์ธ ์ฐจ์ด๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ZooKeeper ๊ธฐ๋ฐ˜์˜ cache cloud ๊ด€๋ฆฌ
  • Collection ์ž๋ฃŒ๊ตฌ์กฐ (List, Set, B+tree) ์ง€์›
  • B+tree์˜ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ๋“ค
    • ๋‹ค์–‘ํ•œ ํฌ๊ธฐ์˜ B+tree key (bkey)
    • Element flag ๋ฐ filtering
    • Bkey ๊ธฐ๋ฐ˜์˜ range scan
    • ์—ฌ๋Ÿฌ B+tree๋“ค์— ๋Œ€ํ•œ sort-merge-get (smget)
    • B+tree position ๊ธฐ๋ฐ˜์˜ range scan
  • Item attibute ์กฐํšŒ ๋ฐ ์„ค์ • ๊ธฐ๋Šฅ
  • Sticky item(not evicted & oot expired) ์ง€์›
  • Collection ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์œ„ํ•œ small memory allocator

์•„๋‹ˆ๋ฉด,ย https://code.google.com/p/xmemcached/ ์™€์˜ ์ฐจ์ด๋ฅผ ๋ง์”€ํ•˜์‹œ๋Š” ๊ฑด๊ฐ€์š” ??
๊ทธ๋ฆฌ๊ณ , "Collection ํƒ€์ž…์€ ๋ฝ์„ ๊ฑธ์ง€ ์•Š๋Š” ์ด์ƒ ๋ฌธ์ œ๊ฐ€ ์žˆ๊ธด ํ•˜์ง€๋งŒ์š”"์˜ ์˜๋ฏธ๋„ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค..

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.


ย ย 
ย  ย 


2014๋…„ 6์›” 15์ผ ์ผ์š”์ผ ์˜ค์ „ 9์‹œ 34๋ถ„ 57์ดˆ UTC+9, ๊ฐ•ํ˜„์‹ ๋‹˜์˜ ๋ง:

infraw...@gmail.com

unread,
Jun 15, 2014, 8:56:47โ€ฏAM6/15/14
to open...@googlegroups.com
๋‹ต๊ธ€ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.
์žฌ ๋‹ต๊ธ€ ๋ฐ ๋‹ต๊ธ€์— ๋Œ€ํ•œ ์งˆ๋ฌธ ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

์šฐ์„  replication by application์˜ ์˜๋ฏธ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ธ์ง€ํ•˜๋ฉด ๋ฐ”๋กœ arcus๋กœ ์บ์‹ฑํ•œ๋‹ค๊ณ  ํ•˜์…จ๋Š”๋ฐ ์‹ค์ œ ๊ทธ๋ ‡๊ฒŒ arcus ์ž์ฒด ํ”„๋กœ๊ทธ๋žจ์ด ๋”ฐ๋กœ ๋™์ž‘์„ ํ•˜์ง„ ์•Š์„ ๊ฒƒ์œผ๋กœ ๋ณด์ด๋Š”๋ฐ arcus๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‹ค์ œ ๊ทธ๋ ‡๊ฒŒ ์งœ์•ผ ํ•œ๋‹ค๋Š” ๋ง์”€์ด์‹ ๊ฐ€์š”?

๋‚˜๋จธ์ง€ ๋‹ต๋ณ€๋“ค์— ๋Œ€ํ•ด์„œ๋Š” ์ดํ•ด๋ฅผ ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์•Œ๋ ค์ฃผ์‹  ๊ทธ ์ฃผ์†Œ์˜ ํด๋ผ์ด์–ธํŠธ๋ฅผ ๋งํ•˜๋Š”๊ฒŒ ๋งž์Šต๋‹ˆ๋‹ค.

Collection ์˜ ๊ฒฝ์šฐ๋Š” ์ €ํฌ ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” Collection์„ xmemcached์—์„œ get ํ•˜๋Š” ์ˆœ๊ฐ„ ์ด๋ฏธ ๋กœ์ปฌ ๋ฐ์ดํ„ฐ๊ฐ€ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์‹œ set ํ• ๋•Œ๋Š” ๋ถ„์‚ฐ๋ฝ์„ ๊ฑธ์ง€ ์•Š๋Š” ์ด์ƒ ์‹ค์ œ ๋‘๊ฐœ์˜ ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์ด ๊นจ์–ด์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ์˜๋ฏธ์—์„œ arcus๋Š” ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ๋ถ„์‚ฐ๋ฝ ๋น„์Šทํ•˜๊ฒŒ ๊ตฌํ˜„ํ•œ๊ฒŒ ์•„๋‹Œ๊ฐ€ ์‹ถ๋„ค์š”...

2014๋…„ 6์›” 15์ผ ์ผ์š”์ผ ์˜คํ›„ 8์‹œ 50๋ถ„ 32์ดˆ UTC+9, jhpark816 ๋‹˜์˜ ๋ง:


> ์•ˆ๋…•ํ•˜์„ธ์š”..
> ๋จผ์ € ๊ด€์‹ฌ๊ฐ€์ ธ ์ฃผ์…”์„œ ๊ฐ์‚ฌ๋“œ๋ฆฌ๊ณ , ๋‹ต๋ณ€๋“œ๋ฆฌ๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
>
>
> - 3๋Œ€ ์šด์˜ ์ค‘ 1๋Œ€๊ฐ€ ์ฃฝ์œผ๋ฉด, ์ฃฝ์€ cache node๊ฐ€ ๊ฐ€์ง€๋˜ data๋Š” lossํ•˜๋”๋ผ๋„ Arcus๋Š” ๋‚˜๋จธ์ง€ 2๋Œ€๋กœ ์šด์˜์„ ๊ณ„์†ํ•ฉ๋‹ˆ๋‹ค.
> ย  Arcus๋Š” DB์™€ ๊ฐ™์€ back-end storage์˜ ์•ž๋‹จ์—์„œ hot-data๋ฅผ "replication by application ๋ฐฉ์‹"์œผ๋กœ cachingํ•ฉ๋‹ˆ๋‹ค.
> ย  ๋‹ค์‹œ ๋งํ•ด, loss๋œ data์— ๋Œ€ํ•ด ์‘์šฉ์€ cache miss๋กœ ์ธ์ง€ํ•˜๋Š” ์ฆ‰์‹œ, ๋‹ค์‹œ DB์—์„œ ๊ทธ data๋ฅผ ์กฐํšŒํ•˜์—ฌ Arcus์— cachingํ•˜๊ธฐ ๋•Œ๋ฌธ์—,
> ย  ๊ทธ ์ดํ›„๋ถ€ํ„ฐ ์‘์šฉ์€ Arcus cache cloud์—์„œ ๊ทธ data๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
>
>
>
> - Cache node failure๋Š” zookeeper์— ์˜ํ•ด detection๋˜๊ณ , ๋ณ€๊ฒฝ๋œ alive cache node list๋Š” Arcus clients์—๊ฒŒ ์ „๋‹ฌ๋˜๋ฉฐ,
> ย  Arcus clients๋Š” ๋ณ€๊ฒฝ๋œ cache node list๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ consistent hashingํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
>
>
> - ์ฃฝ์€ cache node๋ฅผ ๋‹ค์‹œ ๊ตฌ๋™์‹œํ‚ค๋ฉด, ๊ทธ cache node๋Š” ์ž์‹ ์˜ ์ •๋ณด๋ฅผ zookeeper์— ephemeral node๋กœ ๋“ฑ๋กํ•˜๊ฒŒ ๋˜๋ฉฐ,
> ย  ๊ทธ ์ฆ‰์‹œ ๊ทธ cache node๊ฐ€ ์ถ”๊ฐ€๋œ cache node list๋Š” zookeeper์— ์˜ํ•ด Arcus clients์— ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.
>
> ย  ์ฆ‰, ๋‹ค์‹œ 3๋Œ€์˜ cache node๋กœ ๊ตฌ์„ฑ๋˜์–ด ์šด์˜๋ฉ๋‹ˆ๋‹ค.
>
>
> - ์œ„์™€ ๊ฐ™์ด Arcus์— ์ƒˆ๋กœ์šด cache node๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฒŒ ๋˜๋ฉด,
> ย  ์ฆ‰, 2๊ฐœ cache node์—์„œ 3๊ฐœ cache node๋กœ ํ™•์žฅ๋˜๋Š” ๊ฒฝ์šฐ์—๋„ data loss๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
> ย  ์ด๋Š” cache node ์ถ”๊ฐ€๋กœ ์ธํ•ด, consistent hashing์— ์˜ํ•œ key-to-node mapping์ด ๋ณ€๊ฒฝ๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
> ย  ์˜ˆ๋ฅผ ๋“ค์–ด, K1, K2, ..., K10์˜ 10๊ฐœ key๊ฐ€ ์กด์žฌํ•˜๊ณ , N1, N2์˜ 2๊ฐœ cache node๊ฐ€ ์กด์žฌํ•˜๊ณ ,
>
> ย  ํ™€์ˆ˜๋ฒˆ์งธ key๋“ค์€ N1์œผ๋กœ mapping๋˜๊ณ , ์ง์ˆ˜๋ฒˆ์งธ key๋“ค์€ N2๋กœ mapping๋˜์–ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.
> ย  ์ด ์ƒํƒœ์—์„œ ์ƒˆ๋กœ์šด N3๊ฐ€ ์ถ”๊ฐ€๋˜๋ฉด, consistent hashing์— ์˜ํ•ด 10๊ฐœ key๋“ค์ค‘ 1/3 ์ •๋„๊ฐ€ N3์œผ๋กœ re-mapping๋ฉ๋‹ˆ๋‹ค.
> ย  ์ƒˆ๋กœ์šด N3์€ empty ์ƒํƒœ๋กœ ๊ตฌ๋™๋˜๋ฏ€๋กœ, ๊ทธ ์‹œ์ ์— N3์œผ๋กœ re-mapping๋œ key๋“ค์— ๋Œ€ํ•œ ์ ‘๊ทผ์€
>
> ย  cache miss๋ฅผ ์œ ๋ฐœ์‹œํ‚ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ตญ data loss์™€ ๋งˆ์ฐฌ๊ฐ€์ง€ ์ƒํƒœ๊ฐ€ ๋˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
> ย  N3์œผ๋กœ re-mapping๋œ key๋“ค์€ N1 ๋˜๋Š” N2์— ์กด์žฌํ•˜๊ฒ ์ง€๋งŒ, ๋” ์ด์ƒ ์กด์žฌํ•˜์ง€ ์•Š๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋ฉฐ,
>
> ย  expiration ๋˜๋Š” eviction์œผ๋กœ ๋‚˜์ค‘์— ์ œ๊ฑฐ๋˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
> ย ย 
>
> - ๋งˆ์ง€๋ง‰ ์งˆ๋ฌธ์€ ๊ธฐ์กด memcached ์™€์˜ ์ฐจ์ด ๊ธฐ๋Šฅ์„ ์งˆ๋ฌธํ•˜์‹  ๊ฒƒ์ธ์ง€์š” ??
> ย  ๊ธฐ์กด memcached์™€์˜ ์ฐจ์ด์ ์€ http://naver.github.io/arcus/ ์— ๊ฐ„๋‹จํžˆ ๊ธฐ์ˆ ํ•˜์˜€๋Š” ๋ฐ์š”. ๋Œ€ํ‘œ์ ์ธ ์ฐจ์ด๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.
>
>

> ZooKeeper ๊ธฐ๋ฐ˜์˜ cache cloud ๊ด€๋ฆฌCollection ์ž๋ฃŒ๊ตฌ์กฐ (List, Set, B+tree) ์ง€์›B+tree์˜ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ๋“ค๋‹ค์–‘ํ•œ ํฌ๊ธฐ์˜ B+tree key (bkey)Element flag ๋ฐ filteringBkey ๊ธฐ๋ฐ˜์˜ range scan์—ฌ๋Ÿฌ B+tree๋“ค์— ๋Œ€ํ•œ sort-merge-get (smget)B+tree position ๊ธฐ๋ฐ˜์˜ range scan
> Item attibute ์กฐํšŒ ๋ฐ ์„ค์ • ๊ธฐ๋ŠฅSticky item(not evicted & oot expired) ์ง€์›Collection ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์œ„ํ•œ small memory allocator

๊ฐ•ํ˜„์‹

unread,
Jun 15, 2014, 8:59:52โ€ฏAM6/15/14
to open...@googlegroups.com, infraw...@gmail.com
์ œ๊ฐ€ ํšŒ์‚ฌ id๋ž‘ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๋‹ค ๋ณด๋‹ˆ ํšŒ์‚ฌ id ๊ธ€๋กœ ๋‹ต์„ ๋‹ฌ์•˜๋„ค์š” ์œ„ infraware.inc ๊ฐ€ ์ œ๊ฐ€ ๋งž์Šต๋‹ˆ๋‹ค :D

2014๋…„ 6์›” 15์ผ ์ผ์š”์ผ ์˜คํ›„ 9์‹œ 56๋ถ„ 47์ดˆ UTC+9, infraw...@gmail.com ๋‹˜์˜ ๋ง:

jhpark816

unread,
Jun 15, 2014, 9:39:42โ€ฏAM6/15/14
to open...@googlegroups.com, infraw...@gmail.com
์ถ”๊ฐ€ ๋‹ต๋ณ€์ž…๋‹ˆ๋‹ค.

- "replication by application"์€ ์‘์šฉ์„ ๊ทธ๋ ‡๊ฒŒ ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค.
ย  ย ๋Œ€๋ถ€๋ถ„ cache ์‘์šฉ์„ ๊ทธ๋ ‡๊ฒŒ ์ž‘์„ฑํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

- xmemcached๋Š” ์ง€๊ธˆ ์ž ์‹œ ๋ดค๋Š” ๋ฐ, Arcus์˜ java client์™€ ๋น„๊ต๋œ๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ย  arcus-java-client๋Š” spymemcached ๊ธฐ๋ฐ˜์œผ๋กœ Arcus์— ๋งž๊ฒŒ ๋ณ€๊ฒฝํ•œ ๋ฒ„์ „์œผ๋กœ,
ย  ์•ž์„œ ์–ธ๊ธ‰ํ•œ Arcus์˜ new features๋ฅผ ๋ชจ๋‘ ์ง€์›ํ•˜๋Š” java client ๋ผ๋Š” ๊ฒƒ์ด ์ฐจ์ด์ ์ž…๋‹ˆ๋‹ค.
ย  xmemcached๋Š” ๊ธฐ๋Šฅ์ ์ธ ๊ด€์ ์—์„œ ๊ธฐ์กด memcacehd์˜ simple key-value ๊ธฐ๋Šฅ(get/set ์œ ํ˜•์˜ ๊ธฐ๋Šฅ)๋งŒ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
ย  ์ฆ‰, Arcus์˜ collection ๊ธฐ๋Šฅ์ด๋‚˜ ์ตœ์‹  cache node list ์œ ์ง€๋ฅผ ์œ„ํ•œ zookeeper integration ๊ธฐ๋Šฅ ๋“ฑ์€ ์—†์Šต๋‹ˆ๋‹ค.

- ํ•ด๋‹น ์‘์šฉ์—์„œ collection์„ ์–ด๋–ป๊ฒŒ ํ™œ์šฉํ•˜๋А๋ƒ์— ๋”ฐ๋ผ ๋ถ„์‚ฐ๋ฝ์˜ ํ•„์š”์„ฑ ์—ฌ๋ถ€๊ฐ€ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค.
ย  ๋Œ€๋ถ€๋ถ„์˜ ์‘์šฉ์—์„œ, ํ•˜๋‚˜์˜ collection์— ๋Œ€ํ•ด conflict-free ํ˜•ํƒœ๋กœ element๋ฅผ ์ถ”๊ฐ€(insertion)ํ•˜๊ณ ,
ย  eventual consistency ํ˜•ํƒœ์˜ read๋ฅผ ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. SNS ์„œ๋น„์Šค๊ฐ€ ๊ทธ ์˜ˆ๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ย  ๊ฐ user ๋งˆ๋‹ค ์นœ๊ตฌ๋“ค์˜ post ์ •๋ณด๋ฅผ ๋‹ด๋Š” collection์„ ํ•˜๋‚˜๋‘๊ณ , ์นœ๊ตฌ๊ฐ€ post๋ฅผ ์ž‘์„ฑํ•  ๋•Œ๋งˆ๋‹ค
ย  collection์— ์ถ”๊ฐ€ํ•˜๊ณ , ๊ทธ user๊ฐ€ ์กฐํšŒ ์‹œ์ ์— collection์— ์žˆ๋Š” post ์ •๋ณด๋ฅผ ์กฐํšŒํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

- ๋งŒ์•ฝ, ํ•˜๋‚˜์˜ data์— ๋Œ€ํ•ด(collection ์œ ํ˜•์ด๋“  simple key-value ์œ ํ˜•์ด๋“ ) ์—ฌ๋Ÿฌ clients๋“ค์ด ๋™์‹œ์— ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๊ณ ,
ย  ์ด์— ๋Œ€ํ•œ strong consistency๋ฅผ ๋ณด์žฅํ•˜์—ฌ์•ผ ํ•œ๋‹ค๋ฉด, ๋ถ„์‚ฐ๋ฝ ๊ฐ™์€ ๊ฒŒ ํ•„์š”ํ•ด ์งˆ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
ย 

2014๋…„ 6์›” 15์ผ ์ผ์š”์ผ ์˜คํ›„ 9์‹œ 59๋ถ„ 52์ดˆ UTC+9, ๊ฐ•ํ˜„์‹ ๋‹˜์˜ ๋ง:

๊ฐ•ํ˜„์‹

unread,
Jun 15, 2014, 8:12:35โ€ฏPM6/15/14
to open...@googlegroups.com, infraw...@gmail.com
๋‹ต๋ณ€ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.
์ดํ•ด๊ฐ€ ์ž˜ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์งˆ๋ฌธ์ด ์ž๊พธ ๋” ์ƒ๊ธฐ๋„ค์š” ^^;;

ํ•œ๊ฐ€์ง€ ๋” ๊ถ๊ธˆํ•œ๊ฒŒ ์žˆ์Šต๋‹ˆ๋‹ค.

xmemcached๋‚˜ spymemcached ๋“ฑ์˜ ๋‹ค๋ฅธ ํด๋ผ์ด์–ธํŠธ๋“ค๊ณผ์˜ ๋ฒค์น˜๋งˆํฌ ๋น„๊ต
(์ง€์›ํ•˜๋Š” ํ•œ๋„ ๋‚ด์—์„œ ๊ฐ™์€ ๋ฐ์ดํ„ฐ ํƒ€์ž…์˜ ๊ฐ™์€ ๋ฐ์ดํ„ฐ)
ํ•œ ์ž๋ฃŒ๊ฐ€ ํ˜น์‹œ ๋‚ด๋ถ€์—๋ผ๋„ ์กด์žฌํ•˜๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

์•„๋ฌด๋ž˜๋„ ์ถ”๊ฐ€์ ์ธ ๋ ˆ์ด์–ด๊ฐ€ ๋ถ™์–ด์žˆ์œผ๋‹ˆ ์กฐ๊ธˆ ๋” ๋А๋ฆด ๊ฒƒ ๊ฐ™๊ธด ํ•ฉ๋‹ˆ๋‹ค๋งŒย 
๊ทธ๊ฒƒ์„ ๊ฐ์•ˆํ• ๋งŒํ•œ ํผํฌ๋จผ์Šค๊ฐ€ ๋‚˜์˜ค๋Š”์ง€ ๊ถ๊ธˆํ•˜๋„ค์š”...

2014๋…„ 6์›” 15์ผ ์ผ์š”์ผ ์˜คํ›„ 10์‹œ 39๋ถ„ 42์ดˆ UTC+9, jhpark816 ๋‹˜์˜ ๋ง:

jhpark816

unread,
Jun 15, 2014, 8:48:13โ€ฏPM6/15/14
to open...@googlegroups.com, infraw...@gmail.com
์•ˆ๋…•ํ•˜์„ธ์š”..

- xmemcached์™€ spymemcached ๋“ฑ์˜ java client์— ๋Œ€ํ•ด ์„ฑ๋Šฅ ๋น„๊ต๋ฅผ ํ•ด ๋ณธ ์ ์€ ์—†์Šต๋‹ˆ๋‹ค.
- ์ฐธ๊ณ ๋กœ, spymemcached(https://code.google.com/p/spymemcached/)๋Š” memcached committer์ธ dustin์ด ์ดˆ๊ธฐ ์ž‘์„ฑํ•œ java client์ด๋ฉฐ,
ย  memcached community์—์„œ ์ธ์ฆํ•˜๋Š” java client์ž…๋‹ˆ๋‹ค.
- ์„ฑ๋Šฅ์€ web ์ƒ์—์„œ memcached ์„ฑ๋Šฅ์„ ๊ฒ€์ƒ‰ํ•ด ๋ณด์‹œ๋ฉด, ๋Œ€๋žต ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ๊ณ  (ํ•œ cache node์—์„œ ๋Œ€๋žต 100K ~ 200K requests/second)
ย  spymemcached๋ฅผ ์‚ฌ์šฉํ•˜๋“  arcus-java-client๋ฅผ ์‚ฌ์šฉํ•˜๋“  ๊ทธ ์„ฑ๋Šฅ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
- arcus-java-client์—์„œ ์ถ”๊ฐ€ layer๊ฐ€ ์žˆ๋‹ค๊ธฐ ๋ณด๋‹ค๋Š” ์ˆ˜ํ‰์ ์œผ๋กœ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์ด ๋“ค์–ด๊ฐ„ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์—, ์„ฑ๋Šฅ ์ €ํ•˜๋Š” ๊ฑฐ์˜ ์—†๋‹ค๊ณ  ๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.


2014๋…„ 6์›” 16์ผ ์›”์š”์ผ ์˜ค์ „ 9์‹œ 12๋ถ„ 35์ดˆ UTC+9, ๊ฐ•ํ˜„์‹ ๋‹˜์˜ ๋ง:
Reply all
Reply to author
Forward
0 new messages