스못봇 오류를 찾다가 SCT 서비스를 생각하다

안녕하세요 @realmankwon입니다.

오늘 스몬봇 관련해서 덱을 제출했는데도 계속 진다는 포스팅을 했습니다.
아무리 생각해도 소스상으로는 문제가 없어보였습니다.
로그상으로 의심이 가는 부분은 배틀이 결정되고 덱을 내기 전에 setInterval을 10초로 해놨는데 그 10초가 지나면서 다시 callback 함수를 호출하는 것 같았습니다.
그렇다면 문제는 덱을 구성하는데 시간이 올린다는 것인데...

그때 갑자기 떠오른 것인 덱을 구성하는 것을 DB 퀄리로 작성한 것이었습니다.
결론은 한가지!!!
쿼리 속도가 느리다는 것밖에 없더군요.
그래서 DBMS 툴로 쿼리를 실행시켜봤는데 1분이 넘게 걸리더군요.
데이터가 250만건 이상이 쌓이면서 PK 외에는 인덱스가 걸려있지 않아서 속도가 급격하게 느려진 것이었습니다.

그걸 찾고 현재 DB 인덱스를 추가를 하고 있는데 시간이 엄청 오래 걸리는군요.
그래도 10초 이내에 덱이 나왔습니다.
역시나 시스템이라는 것은 시간이 지날수록 유지보수를 지속적으로 해야함을 다시 한번 느꼈습니다.

이제 다음달이면 SCT가 출범한지 1년입니다.
그동안 많은 서비스를 개발하여 유지하고 있습니다.
봇만해도 10개 정도가 운영이 되고 있고 서버는 2개로 운영 중입니다.
제 개인적인 스몬봇을 보면서 SCT 의 서비스에서 사용되고 있는 DB 의 속도는 느리지 않는지 체크를 해보아야겠습니다.

시스템은 뭐니뭐니해도 안정성이 가장 중요합니다.
서비스 초반에 소스상으로 문제없이 서비스가 돌아가기 위해 열심히 작업을 한 덕분에 2~3개월이 지난 후부터는 거의 장애가 발생하고 있지 않습니다.
하지만 지금부터는 DB 에 쌓이는 데이터를 어떻게 처리하고 그것들을 조회하고 사용하는데 문제가 없는지 체크를 해야하는 시기가 온 것 같습니다.

인덱스로 해결이 되지 않는 것은 파티션을 나누거나 백업 스토리지로 옮기고 필요없는 데이터는 삭제하는 등을 활동을 지속적으로 해 나가야 할 것 같습니다.
SCT의 서비스가 1년이 아닌 10년, 20년 후에도 잘 돌아갈 수 있도록 열심히 준비해야겠습니다.
그때까지 제가 운영을 하게 될지는 모르겠네요 ^^
어쨌든 스몬봇을 보다고 SCT 의 서비스를 생각하게 된 오늘입니다.

Sort:  

저도 다루는 데이터가 커서 DB관련 고민이 많습니다. 인덱스로 잘 해결 하셨다니 다행 입니다. ^^

Coin Marketplace

STEEM 0.33
TRX 0.11
JST 0.034
BTC 66753.89
ETH 3256.47
USDT 1.00
SBD 4.34