▲neo 2달전 | parent | favorite | on: GN⁺: Discord의 수조 개 메시지 저장 방식 (2023)(discord.com)Hacker News 의견 블로그 글이 GC를 비난하지만, 실제로는 Cassandra 사용 방식이나 Cassandra가 대량 삭제를 처리하는 방식에 문제가 있음 "API를 통해 수백만 개의 메시지를 삭제했을 때, Cassandra는 수백만 개의 tombstone을 스캔해야 했음" GC 튜닝에 대해 언급하지만, 실제로는 오래된 버전의 Cassandra와 JVM을 사용하고 있었음 분산 채팅 프로토콜을 사용했다면 이런 문제는 없었을 것임 IRC, Matrix, XMPP 같은 오픈 스펙과 여러 구현체가 있음 Discord가 어떻게 시장을 장악했는지 이해하기 어려움 ScyllaDB 공동 창립자의 추가 의견 Discord는 Cassandra로 수리를 완료할 수 없었지만, Scylla에서는 가능함 Scylla는 Cassandra와 많은 공통점을 가지고 있지만, 고유한 CPU 및 IO 스케줄러를 통해 쿼리를 우선시함 Scylla는 새로운 tombstone_gc=repair 모드를 가지고 있음 Scylla의 새로운 Raft 및 태블릿 아키텍처가 최근 출시됨 서비스 레이어가 Varnish Cache를 연상시킴 캐싱에 대해 언급하지 않았지만, Varnish의 "grace mode"와 유사함 일관된 해싱이 반복적으로 등장하는 것을 보는 것이 좋음 오래된 메시지를 삭제하는 것이 거의 불가능함 이는 프라이버시 악몽이며, EU가 왜 개입하지 않는지 궁금함 매우 잘 작성된 기사임 Cassandra에서 Scylla로 전환한 것이 해결책의 일부였음 Discord의 메시지 저장 노드 수가 예상보다 적음 더 복잡한 아키텍처를 기대했지만, 실제로는 200개의 노드만 사용함 현대 클라우드 아키텍처가 과도하게 설계된 것 같음 데이터를 저장하는 것과 데이터 마이닝을 수행하는 것은 다른 문제임 ScyllaDB 팀이 성능 향상을 우선시하고, 역방향 쿼리를 구현했음 ScyllaDB를 사용하기 전에 얼마나 많은 비용을 지불했는지 궁금함 "How Discord Stores Trillions of Messages"에 대한 논의 2023년 3월에 10개의 댓글이 있었음
Hacker News 의견
블로그 글이 GC를 비난하지만, 실제로는 Cassandra 사용 방식이나 Cassandra가 대량 삭제를 처리하는 방식에 문제가 있음
분산 채팅 프로토콜을 사용했다면 이런 문제는 없었을 것임
ScyllaDB 공동 창립자의 추가 의견
서비스 레이어가 Varnish Cache를 연상시킴
오래된 메시지를 삭제하는 것이 거의 불가능함
매우 잘 작성된 기사임
Discord의 메시지 저장 노드 수가 예상보다 적음
데이터를 저장하는 것과 데이터 마이닝을 수행하는 것은 다른 문제임
ScyllaDB 팀이 성능 향상을 우선시하고, 역방향 쿼리를 구현했음
"How Discord Stores Trillions of Messages"에 대한 논의