유튜브 트위터 레딧 등
link/url/fjfjkd3993
처럼 영대소문자숫자 조합에서
유니크id는 어캐생성하나요
sh0rturl 오픈소스보면 그냥 랜덤문자조합한다음 db에 똑같은 문자있는지 찾아보던데
초대규모서비스면 저것도 부하가 클거같은데 다른방법이 있나요?
git처럼 비슷하게 걍 128bit uuid생성해서 앞에 몇개짜르는법?
근데 초대규모서비슨는 혹시라도 겹치면 안되니 중복검새해야할거같고...
어떤 방법이있는지 키워드좀..트위터 스노우어쩌구는 찾아봤어요..
link/url/fjfjkd3993
처럼 영대소문자숫자 조합에서
유니크id는 어캐생성하나요
sh0rturl 오픈소스보면 그냥 랜덤문자조합한다음 db에 똑같은 문자있는지 찾아보던데
초대규모서비스면 저것도 부하가 클거같은데 다른방법이 있나요?
git처럼 비슷하게 걍 128bit uuid생성해서 앞에 몇개짜르는법?
근데 초대규모서비슨는 혹시라도 겹치면 안되니 중복검새해야할거같고...
어떤 방법이있는지 키워드좀..트위터 스노우어쩌구는 찾아봤어요..
레디스 같은거 쓰면 부하 좆도 없을듯
hash 생성 = O(1). 중복 검사도 뭐 radix-tree 같은 인덱스 구조가 있다고 가정하면 중복 검사 time complexity도 해쉬 길이만큼 걸릴 거라 별로 안 느릴듯? 프로덕션에서는 위 댓글처럼 Redis set 같은 거 쓰는 게 일반적일 거 같긴 함
다른 부하들에 비하면 진짜 좆도 아님
부하는 예측하는게 아니다. 측정하는거지. 기본으로 깔고 들어가는 TCP + TLS handshake가 해쉬 조회하는거랑 비교해서 부하가 적을거같냐?
https://softwareengineering.stackexchange.com/questions/80084/is-premature-optimization-really-the-root-of-all-evil
- dc App
성능을 걱정하는건 항상 좋지만 너무 과하게 하면 안됨 - dc App
허허 다들 제목에 대한 대답은 없군요...
걍 글자셋에서 랜덤으로 뽑아다 만들고 중복검사하라거
uuidv4 젠 한다음 하이픈 떼고 8자/16자 사용하기 - dc App
니가 빡대가리라 본질을 이해못하는거임
다음부턴 질문하러 오지마라 이렇게 설명해도 이해못하는 빡대가리들은 개발자하면 안됨
uuid를 그에 대응하는 짧은 문자열로 바꿔주는 거 있던데
트위터는 snowflake사용
https://blog.twitter.com/engineering/en_us/a/2010/announcing-snowflake
비슷한 목적의 timeflake
https://github.com/anthonynsimon/timeflake
부하 문제를 따지기 전에 중복검사 자체가 진짜 필요한건지를 생각해봐야지 - dc App
랜덤을 돌리건 해싱을 하건 충돌이 일어날 수 있는 방식이 있긴 한데 확률믿고 그냥 쓰는것도 많고 - dc App
막연히 충돌이 있겠구나 하고 생각하는데 당장 생각없이 쓰는 uuid만 봐도 중복 확률 보면 그런 생각 안날거 - dc App