파티션 및 데이터 분배

*이 콘텐츠는 AI(베타)를 사용해 번역되었으며, 오류가 있을 수 있습니다. 이 페이지를 영어로 보려면 여기를 클릭하세요.

MemoryStoreHashMap 데이터 구조가 출시됨에 따라 Roblox는 개별 데이터 구조에 대한 모든 기존 한계를 제거하고 대신 단일 전역 "파티션별" 스로틀 제한으로 대체했습니다. 정확한 한계는 내부 값과 자동 파티셔닝 프로세스가 데이터를 분배하는 방식에 따라 변동하지만, 일반적으로 해시 맵에 대해 스로틀링 전에 훨씬 더 높은 사용을 허용합니다. 이 새로운 한계는 모든 데이터 구조에서 메모리 스토어를 유연하게 사용할 수 있도록 합니다.

파티션

MemoryStores API는 _파티션_에 데이터를 저장합니다. 파티션은 저장소의 하위 구분에 불과합니다. 메모리 스토어에 항목을 쓸 때마다 해당 항목은 정확히 하나의 파티션에 저장됩니다. 파티션은 MemoryStores API에 의해 완전히 관리되며, 사용자가 직접 관리할 필요는 없습니다.

파티션 할당

파티션 저장소는 항목이 저장되는 데이터 구조에 따라 다릅니다. 정렬된 맵 및 큐의 경우, 각 데이터 구조는 단일 파티션에 할당됩니다.

예를 들어, PlayerScores라는 정렬된 맵과 게임을 기다리는 플레이어의 큐인 PlayerLine이 있는 축제 게임을 고려해 보세요:

정렬된 맵과 큐와 달리 해시 맵은 여러 파티션이 할당되고 데이터는 자동으로 이러한 파티션에 분배됩니다. Prizes라는 해시 맵을 추가하면 파티션은 다음과 같이 나타날 수 있습니다:

해시 맵이 모든 파티션에 존재하며 각 파티션에 일부 아이템의 하위 집합이 있음을 주목하십시오.

한계

파티션별 한계가 있으면 모든 데이터 구조에 대해 더 높은 처리량을 허용합니다. 또한 해시 맵에게 유리한데, 이는 모든 파티션에 분산되어 있기 때문입니다.

예를 들어, 50,000 요청(분당 요청 수, RPM)의 파티션별 한계를 고려해 보세요:

  • 최상의 경우, 정렬된 맵과 큐는 각각 단일 파티션에 존재하므로 50,000 RPM으로 제한됩니다.
  • 해시 맵에 대한 요청은 항목 키에 걸쳐 분산되며, 이 항목 키들 자체가 파티션에 흩어져 있으므로 해시 맵은 요청이 여러 항목 키에 걸쳐 분산된다면 다른 데이터 구조의 몇 배에 해당하는 더 높은 유효 한계를 가질 수 있습니다.
  • 해시 맵이 요청을 파티션에 걸쳐 분산시켜 더 높은 전반적인 처리량을 달성할 수 있지만, 개별 항목 키는 시스템 안정성을 유지하기 위해 여전히 속도가 제한됩니다. 대부분의 트래픽이 단일 항목 키를 겨냥하면 해당 키는 여전히 스로틀될 수 있습니다.
  • 효과적으로 확장하고 이러한 키별 한계를 피하려면 키 샤딩을 구현하십시오. 여러 항목 키에 걸쳐 읽기 및 쓰기를 균등하게 분산시켜 병목 현상을 줄이고 원활한 성능을 유지하십시오.

이러한 이유로, 만약 정렬이나 "선입선출" 기능이 필요 없다면 해시 맵이 일반적으로 메모리 스토어 데이터 구조에 가장 좋은 선택입니다. 더 많은 정보는 모범 사례를 참조하세요.

©2026 Roblox Corporation. Roblox 및 Roblox 로고, 'Powering Imagination'은 미국 및 기타 국가 내 당사의 등록 및 미등록 상표입니다.