파티션 및 데이터 분배

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

MemoryStoreHashMap로 Roblox는 개별 데이터 구조에 대한 모든 기존 제한을 제거하고 단일 전역 "퍼티션" 제한 제한으로 교체했습니다.정확한 제한은 내부 값과 자동 분할 프로세스가 데이터를 배포하는 방법에 따라 변동되지만, 일반적으로 제한 전에 훨씬 더 높은 사용률을 허용하며, 특히 해시 맵에서 더 높은 사용률을 허용합니다.이 새 제한은 모든 데이터 구조에서 메모리 저장소의 유연한 사용을 가능하게 합니다.

파티션

MemoryStores API는 저장소의 하위 분할인 파티션에 데이터를 저장합니다.메모리 상점항목을 쓰면 해당 항목이 정확히 하나의 파티션에 저장됩니다.파티션은 MemoryStores API에 의해 완전히 관리되므로 직접 관리할 필요가 없습니다.

파티션 할당

파티션 저장소는 아이템이 저장된 데이터 구조에 따라 다릅니다.정렬된 맵과 큐에 대해 각 데이터 구조에 단일 파티션이 할당됩니다.

예를 들어, PlayerScores라는 정렬된 맵과 게임을 플레이하기를 기다리는 플레이어의 큐인 PlayerLine가 있는 카니발 게임을 고려하십시오:

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

해시 맵이 모든 파티션에 존재하고 각 파티션에 항목의 일부 하위 집합이 있는지 확인하십시오.

제한

각 파티션 제한이 있으면 모든 데이터 구조에 대한 처리량이 더 높아집니다.또한 해시 맵을 선호하는데, 모든 파티션에 분산되어 있기 때문입니다.

예를 들어, 분당 150,000개의 요청 한도(RPM)를 고려하십시오:

  • 가장 좋은 경우, 정렬된 맵과 큐는 각각 단일 파티션에 있기 때문에 150,000 RPM으로 제한됩니다.
  • 해시 맵에 대한 요청은 자체가 파티션에 분산되어 있으므로 해시 맵은 제한이 적용되기 전에 다른 데이터 구조보다 훨씬 높은 유효 한계를 갖게 될 수 있습니다. Requests to hash maps are spread across item keys, which are themselves spread across partitions, so hash maps can have a much higher effective limit before throttling, many times that of the other data structures.

이러한 이유로, 정렬이나 "먼저 들어와 먼저 나가기" 기능이 필요하지 않은 경우, 해시 맵은 일반적으로 메모리 저장소 데이터 구조에 가장 적합한 선택입니다.자세한 내용은 모범 사례를 참조하십시오.