영상 스트리밍 서비스를 하다 보면 당연하게 요구되는게 시청 기록 관리와 동시 스트리밍 제한에 대한 것들이 있다.
시청 기록 관리에는 주로 통계용 데이터 aggregation 이지만 어느 정도의 정밀도를 가지느냐 등은 또 다른 차원의 문제가 된다.
그리고 스트리밍하는 스트림 갯수 제한은 트래픽이 비용인 서비스에서 매우 중요한 기능이 된다.
시청 기록을 직접 RDB 에 관리하지는 않지만 적당히 모아서 RDB 에 담아둔다고 가정해 보자.
이 기록은 RDB 에서 하나의 row 로 처리되는 경우가 많다. 구간을 각각의 record 로 관리하기에는 너무 부담되기 때문에 특정 필드를 array 타입으로 구분하여 처리하곤 한다.
이 경우 row 레벨 lock 을 지원하는 RDB 를 사용하는 방법은 어떨까 고민해 보았다.
LOCK IN SHARE MODE 이 적당해 보인다.
인터벌이 얼마나 짧으냐에 따라 실제 효율이 날 듯 하다. 적어 놓고 보니 그닥 유용하지 않구나.
앞단에 있는 메모리 기반 DB 에서 점검하는게 좋겠다...
gleam.run 의 0.18 릴리즈에 빌드 툴 체인이 들어왔다.
즉 rebar3 를 추가로 설치하지 않아도 된다는 것이다. erlang 이랑 gleam 만 필요하다. dart 의 pub 에 사용되는 패키지 관리 알고리즘을 rust 로 포팅하여 넣었다고 한다.
이제 좀 더 쓸만해졌다고 본다. 요즘 언어 시스템/환경은 빌드 툴 정도는 기본 탑제가 주요 덕목 같다. rust/cargo 도 그렇고 zig 도 그렇고...
erlang 에 대해서 좀 더 알아보는 시간을 가져야겠다.
잘 지내시나용?