Tag: Concurrency
All the articles with the tag "Concurrency".
-
LLM 요청 동시성을 2에서 4로 올렸더니 다른 버그 두 개가 나왔다
LLM 병렬 요청 수를 2에서 4로 올려도 요약 정확도는 그대로였다. 대신 전수 감사에서 한영 중복 노트 병합 누락과, 영어 노트에 한글 소제목이 붙는 버그가 나왔다.
-
30분에서 1분까지, 얼마나 줄일 수 있는지 끝까지 밀어봤다
근본 원인은 이미 잡았으니 이제 최적화 차례였다. 휴식을 절반씩 줄여나가면서, 동시에 이미 두 IP를 같이 쓰고 있던 구조를 그대로 병렬로 돌려봤다. 30분 걸리던 걸 13분까지 줄이는 동안, 내가 놓칠 뻔한 걸 두 번 다 사용자가 먼저 잡아냈다.
-
고쳤는데도 안 됐다, 진짜 이유는 따로 있었다
실측으로 순간 최대 14개까지 몰리는 걸 직접 세어 확인하고, IP당 동시 요청을 2개로 강제 제한했다. 그런데 다시 돌리자 실패율은 전혀 줄지 않았다 — 오히려 분당 실패 건수는 더 나빴다. 열두 번째로 다시 찾은 진짜 이유는 코드 안에 없었다.
-
두 배 빨라졌다, 그리고 다시 막혔다
직접 IP와 프록시 IP가 서로 독립된 요청 예산을 갖는다는 걸 알고 있었으니, 둘을 동시에 쓰면 두 배는 빨라질 거라는 제안이 나왔다. 실제로 완벽하게 통했다 — 진단 규모에서는. 실전 스케일로 그대로 옮기자, 며칠 전 잡았던 문제가 훨씬 큰 형태로 되돌아왔다.
-
네이버 뉴스 검색 403, 3개월치를 순차로 돌렸는데 한 번도 안 막혔다
네이버 뉴스 검색을 돌리다가 실전 규모에서 결과가 55,366건에서 100건으로 붕괴했다. 원인이 요청량인지, 속도인지, 동시성인지조차 알 수 없어서 하나씩 지워나가는 실험을 시작했다. 그런데 세 번을 조심스럽게 재현해봐도 단 한 번도 막히지 않았다.
-
확신을 실측 앞에 세워봤다 4편 — 끊어진 링크는 잡아주는데, 안 끊어진 채 엉뚱한 곳을 가리키는 링크는 못 잡았다
Obsidian 플러그인 `/ingest`가 같은 배치 안에서 파일명이 충돌해 리네임되는 경우와, 다른 노트가 원래 이름으로 링크를 거는 경우가 겹치면 어떻게 되는지 오래 미뤄뒀던 이슈였다. 코드를 읽고 '이미 잡아준다'고 확신했는데, 실제로 테스트를 돌려보니 걱정했던 것보다 훨씬 조용한 버그가 있었다.
-
설계까지 다 거치고도, 실행해봐야 보였다 6편 — 자정을 넘긴 순간에만 걸리는 레이스였다
새 주 폴더에 막 만들어진 노트인데, 본문 링크는 지난주 폴더를 가리키고 있었다. 이슈에 적힌 원인 추정은 코드를 열어보니 틀렸고, 진짜 원인은 '지금이 몇 시인지'를 서로 다른 두 순간에 따로 계산하고 있었다는 것이었다. 고치면서 남겨둔 '다른 명령도 같은 문제가 있을까'라는 질문은, 며칠 뒤 다시 열어서 마저 확인하고 고쳤다.
-
설계까지 다 거치고도, 실행해봐야 보였다 5편 — 되돌리기 버튼 하나에, 버그가 세 겹으로 숨어 있었다
이미 실행된 태그 병합을 되돌리는 버튼을 만들었다. 내가 직접 브리프에 적어준 구현 방법에 버그가 있다는 걸 태스크 리뷰가 잡았고, 그 여파로 계획 문서가 낡아버린 걸 다음 단계를 준비하다가 스스로 알아챘다. 그리고 두 태스크가 전부 리뷰를 통과한 뒤에도, 전체를 다시 훑는 마지막 리뷰가 버그 두 개를 더 찾아냈다.
-
설계까지 다 거치고도, 실행해봐야 보였다 3편 — 레이스를 막을 방법이 아니라, 없앨 이유를 찾았다
청크를 병렬로 요청하는 설계까지만 해두고 미뤄뒀던 구현을 다시 열었다. 그런데 설계 문서와 계획서를 다 거치고도, 진짜 버그는 실행이 되어서야 보였다.