Class.MemoryStore 데이터 구조의 출시와 함께 Roblox는 모든 데이터 구조에 대해 모든 제한을 제거하고 단일 글로벌 "per- partition" 억제 한도로 대체했습니다. 정확한 한도는 내부 값 및 자동 분할 프로세스가 데이터를 분할하는
파티션
MemoryStores API는 스토리지의 하위 디렉션에 데이터를 저장하지만, 이것은 단지 하위 디렉션입니다. 항목을 메모리 상점쓸 때마다 해당 항목은 정확히 하나의 디렉션에 저장됩니다. 디렉션은 메모리 스토어 API에서 완전히 관리됩니다. 직접 관리할 필요는 없습니다.
파티션 할당
파티션 저장소는 항목이 저장된 데이터 구조에 따라 다릅니다. 정렬된 맵과 대기열의 경우 각 데이터 구조에 하나의 파티션이 할당됩니다.
예를 들어, PlayerScores 와 PlayerLine 의 플레이어가 대기 중인 순위가 있는 카니발 게임을 고려하십시오.
정렬된 맵과 대기열과 달리 해시 맵은 여러 개의 파티션에 할당되며 데이터는 이 개티션 간에 자동으로 분포됩니다. Prizes라는 이름의 해시 맵을 추가하면 파티션이 다음과 같이 표시될 수 있습니다.
모든 파티션에 해시 맵이 있고 각 파티션에는 하위 항목이 몇 가지 있는지 알아보세요.
제한
분할 한도를 가질 수 있으면 모든 데이터 구조에 대해 더 높은 처리량이 가능합니다. 또한 해시 맵을 선호합니다, 왜냐하면 모든 분할에 배포됩니다.
예를 들어, 분당 150,000개의 요청(RPM)에 대한 각 파티션 제한을 고려하십시오.
- 가장 좋은 경우, 정렬된 맵과 큐는 각 150,000 RPM으로 제한됩니다, 왜냐하면 각 개는 단일 파티션에 거주합니다.
- 맵을 해시하려는 요청은 항목 키에 흩어져 있으므로 캐시 맵은 캐시되기 전에 한 번 더 높은 효과 제한을 가질 수 있습니다. 이것은 다른 데이터 구조와 마찬가지로 대부분의 경우 다른 데이터 구조보다 훨씬 더 높은 효과 제한을 가질 수 있습니다.
이 때문에 정렬 또는 "먼저 나가서 먼저 들어가기" 기능이 필요하지 않으면 해시 맵이 일반적으로 메모리 스토어 데이터 구조에 가장 좋은 선택입니다. 자세한 내용은 모범 사례를 참조하십시오.