Cloudflare, 일관 해싱 알고리즘 손봐서 전 세계 100TB RAM 회수
- Pingora Backend Router(PBR)에서 pingora-ketama 관련 구조가 예상보다 훨씬 많은 메모리를 쓴다는 티켓이 이반(Ivan)에 의해 올라옴
- 일관 해싱 라우팅 알고리즘을 조정해 전 세계에서 100TB 넘는 RAM을 회수함. 지난달 DNS 팀이 확보한 100TB에 이은 두 번째 성과
- 일관 해싱은 해시 출력을 원형 링이 아니라 32비트 정수 수직선으로 보고, 각 서버가 담당하는 구간 크기가 처리 요청 비율을 좌우함
- 서버 IP와 캐시 키를 해시해 수직선에 찍고 각 작업을 왼쪽 첫 서버에 배정함. 서버 C의 구간이 0으로 되돌아오는 지점에서 링 개념이 나옴
- 해시가 사실상 난수라 구간 크기가 균등하지 않고, 예시에서 서버 A의 구간이 B, C보다 훨씬 커서 부하가 몰리는 게 문제의 출발점임
Hacker News opinions
미적분 유도 과정 진짜 재밌게 읽었음. 요즘 프로그래밍 업무에서 미적분 쓸 일이 거의 없어서 더 반가웠고, 보충 글 링크까지 다 봤다. 여기서 부정적으로 트는 사람들은 건포도나 삼키길.
고맙긴 한데 좀 줄여줘. 돈 받은 걸로 사람들이 오해하겠어.
Rust 관련 내용은 해시를 담는 struct 얘기밖에 없었는데, 2바이트가 그렇게 큰 차이를 만들 만큼 해시가 많이 필요한가 싶음. 글에서 설명이 없더라.
그게 바로 핵심임. 처음에 잡아둔 만큼 해시가 필요 없었다는 거고, 부하 분산을 해치지 않고 얼마나 잘라낼 수 있는지 찾아낸 게 트릭이었음.
이런 최적화는 대단한데, 회사가 언제쯤 아무도 예상 못 하는 사일로 덩어리가 되는지 궁금해짐. 요즘은 AI로 코드베이스 훑는 속도가 빨라져서 좀 나을지도.
대기업은 이미 뚫린 사일로고, AI가 그걸 더 나쁘게 만든다고 봄.
REST 인터페이스가 있는 회사는 이미 다 그런 것 같음. 원격 기기 표시등 하나 켜려고 네트워킹, TLS, 인증 플러그인, 인증서 검증, 분산 로깅, 컨테이너, 오케스트레이션, HTTP 클라이언트/서버, IPC, 데몬 의존성 관리가 전부 필요함. 각 계층에 다 이유가 있지만 한 발 물러서서 우리가 뭘 하고 있는 건지 묻고 싶어짐. 5명 팀이면 끝낼 일을 Fortune 50식 계층으로 짓고 있음.
회사는 언제 성능을 신경 쓰기 시작할까. 100TB RAM은 엄청 비싸지만 제품을 빨리 내는 게 그 비용을 상쇄했을 거임.
AI는 인간보다 스파게티를 더 빨리 만든다.
Cloudflare 덕에 사이드 프로젝트 sourcelibrary.org를 내가 공을 뺏을 수 없을 정도의 가격과 성능으로 돌리고 있음. 글을 AI로 썼든 상관없고, 내 AI도 해싱을 저렇게 노래하게 만들고 싶을 뿐임. 근데 오늘 Claude가 타임스탬프로 충분한 곳에 해싱을 쓰려는 걸 보고 내가 틀렸나 싶더라.
우연인데 사이트 정말 좋아함. 아침 뉴스레터에 넣어뒀음. 댓글 읽다가 여기서 봤다. 잘 만들었음.
앞 1000단어를 Pangram에 돌려봤는데 사람이 쓴 걸로 나옴. 최근 Cloudflare 글 중에 제일 잘 쓴 편이라 놀랍지도 않음.
Cloudflare가 네 프로젝트에 뭘 가능하게 해주는데?
추론에 쓸 몇백 TB가 급했던 누군가가 러그 밑을 뒤진 거 아님?
CPU DRAM은 추론에 효율적으로 못 씀. 추론은 메모리 용량보다 대역폭이 중요하고, GPU DRAM이 10배 이상 빠름. 팹에서 둘 사이를 전환할 수는 있어도 이미 만든 걸 바꿀 순 없음.
최근 Cloudflare 블로그 글들보다 이 문체가 훨씬 좋았음.
이러면 이제 RAM 가격 내려가는 거임? 제발.