naver / arcus-memcached

ARCUS memory cache server
https://github.com/naver/arcus
Apache License 2.0
70 stars 55 forks source link

INTERNAL: Move a cmdlog_in_use variable #760

Closed ing-eoking closed 5 months ago

ing-eoking commented 5 months ago

πŸ”— Related Issue

⌨️ What I did

πŸ€” Others

namsic commented 5 months ago

in_use λ³€μˆ˜μ— λŒ€ν•œ 비ꡐ λ‘œμ§μ„ λͺ¨λ“ˆ λ‚΄λΆ€λ‘œ μ΄λ™μ‹œν‚€λŠ” 것에 λŒ€ν•΄ 의견 μ£Όμ‹œλ©΄ μ’‹κ² μŠ΅λ‹ˆλ‹€.

예λ₯Ό λ“€μ–΄, cmdlog_write()λ₯Ό μ•„λž˜μ™€ 같이 λ³€κ²½ν•˜λ©΄ μ–΄λ–€κ°€ ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

-bool cmdlog_write()
+void cmdlog_write()
{
+   if (!cmdlog_in_use) return;

    /* . . . */

    if (! cmdlog.on_logging) {
-       return false;
+       cmdlog_in_use = false; return;
    }

    /* . . . */

-   return true;
}

call stack이 ν•œ 단계 λŠ˜μ–΄λ‚˜λŠ” λ¬Έμ œκ°€ μžˆκΈ°λŠ” ν•˜μ§€λ§Œ, ν˜ΈμΆœλΆ€μ˜ κ΅¬ν˜„μ„ 훨씬 κ°„κ²°ν•˜κ²Œ μœ μ§€ν•  수 μžˆμ„ κ²ƒμž…λ‹ˆλ‹€.

jhpark816 commented 5 months ago

@ing-eoking @namsic

command logging κ΄€λ ¨ν•˜μ—¬ minor refactoring μ§„ν–‰ν•˜μ˜€μœΌλ‹ˆ, μ°Έκ³  λ°”λžλ‹ˆλ‹€.

μ•„λž˜μ™€ 같은 λ³€μˆ˜κ°€ μžˆλŠ” 데, κ΅¬λΆ„ν•˜μ—¬ μ‚¬μš©ν•˜λŠ” 것이 쒋은 지도 ν™•μΈν•˜μ‹œκ³ ,

cmdlog_in_useλŠ” cmdlog λͺ¨λ“ˆ μ•ˆμ—μ„œ μ„€μ •ν•˜κ³ , extern λ³€μˆ˜λ‘œ 쑰회만 ν•˜κ²Œ λ§Œλ“€λ©΄ μ’‹κ² μŠ΅λ‹ˆλ‹€. μ•„λž˜ 경우만 μ‚¬μš©λ  것 κ°™μŠ΅λ‹ˆλ‹€.

    if (cmdlog_in_use) {
        if (cmdlog_write(c->client_ip, command) == false) {
            cmdlog_in_use = false;
        }
    }

ν•¨μˆ˜ ν˜ΈμΆœμ„ 쀄이기 μœ„ν•΄ cmdlog_in_use λ³€μˆ˜λŠ” λ‘λŠ” 것이 낫지 μ•Šλ‚˜ μƒκ°ν•©λ‹ˆλ‹€. μ–΄λ–€κ°€μš”? cmdlog_write() ν•¨μˆ˜λ₯Ό 항상 ν˜ΈμΆœν•˜κ³  κ·Έ μ•ˆμ—μ„œ κ²€μ‚¬ν•œλ‹€λ©΄ cmdlog_in_use μžμ²΄κ°€ ν•„μš” μ—†μ§€λ§Œ μ„±λŠ₯ 상 λΆˆλ¦¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

namsic commented 5 months ago

ν•¨μˆ˜ ν˜ΈμΆœμ„ 쀄이기 μœ„ν•΄ cmdlog_in_use λ³€μˆ˜λŠ” λ‘λŠ” 것이 낫지 μ•Šλ‚˜ μƒκ°ν•©λ‹ˆλ‹€. μ–΄λ–€κ°€μš”? cmdlog_write() ν•¨μˆ˜λ₯Ό 항상 ν˜ΈμΆœν•˜κ³  κ·Έ μ•ˆμ—μ„œ κ²€μ‚¬ν•œλ‹€λ©΄ cmdlog_in_use μžμ²΄κ°€ ν•„μš” μ—†μ§€λ§Œ μ„±λŠ₯ 상 λΆˆλ¦¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ•½κ°„μ˜ μ„±λŠ₯ μ €ν•˜λ₯Ό κ°μˆ˜ν•˜λ”λΌλ„ cmdlog_in_useλ₯Ό 두지 μ•ŠλŠ” 편이 μ½”λ“œ ꡬ쑰λ₯Ό λ‹¨μˆœν™”ν•˜λŠ” 데 도움이 될 것 κ°™μ•„μ„œ 이전 μ½”λ©˜νŠΈλ₯Ό λ‚¨κ²ΌλŠ”λ°μš”. ν•¨μˆ˜ 호좜 λΉ„μš©μ΄ μ„±λŠ₯에 μ–Όλ§ˆλ‚˜ 영ν–₯을 μ£ΌλŠ”μ§€κΉŒμ§€ μΆ©λΆ„νžˆ ν™•μΈν•˜κ³  μ˜κ²¬μ„ λƒˆλ˜ 것은 μ•„λ‹ˆλΌμ„œ μ„±λŠ₯ μ €ν•˜κ°€ λ¬΄μ‹œν•  수 μ—†λŠ” μˆ˜μ€€μ΄λΌλ©΄ cmdlog_in_useλ₯Ό μœ μ§€ν•˜λŠ” 것이 μ’‹κ² μŠ΅λ‹ˆλ‹€.

ing-eoking commented 5 months ago

μ•„λž˜μ™€ 같은 λ³€μˆ˜κ°€ μžˆλŠ” 데, κ΅¬λΆ„ν•˜μ—¬ μ‚¬μš©ν•˜λŠ” 것이 쒋은 지도 ν™•μΈν•˜μ‹œκ³ , cmdlog_in_use cmdlog.on_logging

λ‘˜μ€ 같은 κΈ°λŠ₯을 λ‹΄λ‹Ήν•˜λŠ” λ³€μˆ˜μ΄κΈ°μ— cmdlog.on_logging을 cmdlog_in_use둜 ν•©μΉ˜λŠ” 것이 쒋을 것 κ°™μŠ΅λ‹ˆλ‹€. ~ν•˜μ§€λ§Œ λ™μ‹œμ„±μ— μ˜ν•œ 좩돌 κ°€λŠ₯성이 μžˆμœΌλ―€λ‘œ 확인이 ν•„μš”ν•  것 κ°™μŠ΅λ‹ˆλ‹€.~ cmdlog.on_loggingμ—μ„œ writeλŠ” λͺ¨λ‘ lock을 작고 μžˆλŠ” 것을 ν™•μΈν–ˆμŠ΅λ‹ˆλ‹€.

@jhpark816

cmdlog.on_logging 을 cmdlog_in_use둜 λ³€κ²½ν•˜κ³ , memcached.cμ—μ„œλŠ” read만 ν•˜λ©΄ 될 것 κ°™μŠ΅λ‹ˆλ‹€.

ing-eoking commented 5 months ago

μˆ˜μ •λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

jhpark816 commented 5 months ago

@namsic μœ„μ˜ 2가지 사항에 λŒ€ν•΄ 의견 ν•œλ²ˆ μ£Όμ‹œμ£ .

jhpark816 commented 5 months ago

μš©μ–΄ 변경은 λ‹€μŒμ— λ‹€λ₯Έ κΈ°λŠ₯κ³Ό ν•¨κ»˜ 닀루도둝 ν•˜κ² μŠ΅λ‹ˆλ‹€.