데이터 저장소에 요청하는 작업이 연결 상태가 나쁘거나 다른 문제로 인해 실패할 수 있습니다.오류 코드로 오류 및 메시지를 처리하고 데이터 저장소 함수를 래핑하려면 pcall()에 데이터 저장소 함수를 래핑하십시오.
오류 코드 참조
오류 코드 | 오류 이름 | 오류 메시지 | 노트 | |
---|---|---|---|---|
101 | KeyNameEmpty | 키 이름은 비어있을 수 없습니다. | 데이터 저장소 함수에 키 입력이 빈 문자열인지 확인합니다. | |
102 | KeyNameLimit | 키 이름이 50자 제한을 초과합니다. | 데이터 저장소 함수에 키 입력이 50의 길이를 초과하는지 확인합니다. | |
103 | ValueNotAllowed | X를 DataStore 허용할 수 없습니다. | 나쁜 업데이트 함수는 유형 X의 값을 반환했습니다. | |
104 | CantStoreValue | X을 DataStore 저장할 수 없습니다. | 업데이트 함수는 serialize되지 않은 유형의 값 X를 반환했습니다. | |
105 | ValueTooLarge | serialize된 값이 X 제한을 초과합니다. | SetAsync() 또는 UpdateAsync() 로 값을 설정하는 경우 값의 직렬화된 길이는 크기 X 를 초과할 수 없습니다.데이터의 세리али즈된 길이를 확인하려면 JSONEncode()를 사용하십시오. | |
106 | MaxValueInvalid | MaxValue는 정수여야 합니다. | 최대 값을 GetSortedAsync() 에 대해 OrderedDataStore 에 전달하는 경우, 정수여야 합니다. | |
106 | MinValueInvalid | MinValue는 정수여야 합니다. | 최소값을 GetSortedAsync() 에 대해 OrderedDataStore 에 전달하는 경우, 정수여야 합니다. | |
106 | PageSizeGreater | PageSize는 미리 정의된 범위 내에 있어야 합니다. | OrderedDataStore의 최소 페이지 크기는 1입니다. | |
106 | PageSizeLesser | PageSize는 미리 정의된 범위 내에 있어야 합니다. | OrderedDataStore의 최대 페이지 크기는 100입니다. | |
107 | MinMaxOrderInvalid | MaxValue 은 MinValue 보다 크거나 같아야 합니다. | 최대 값은 GetSortedAsync()의 최소 값보다 크거나 같아야 합니다. | |
301 | GetAsyncThrottle | GetAsync 요청이 중단되었습니다. 요청이 제한되었지만 대기열이 가득 찼습니다. | GetAsync() 요청은 최대 대기 크기를 초과했으며 Roblox는 현재 처리량으로 요청을 처리할 수 없습니다. | |
302 | SetAsyncThrottle | SetAsync 요청이 중단되었습니다. 요청이 제한되었지만 대기열이 가득 찼습니다. | SetAsync() 요청은 최대 대기 크기를 초과했으며 Roblox는 현재 처리량으로 요청을 처리할 수 없습니다. | |
303 | IncreAsyncThrottle | IncrementAsync 요청이 중단되었습니다. 요청이 제한되었지만 대기열이 가득 찼습니다. | IncrementAsync() 요청은 최대 대기 크기를 초과했으며 Roblox는 현재 처리량으로 요청을 처리할 수 없습니다. | |
304 | UpdateAsyncThrottle | UpdateAsync 요청이 중단되었습니다. 요청이 제한되었지만 대기열이 가득 찼습니다. | UpdateAsync() 요청은 최대 대기 크기를 초과했으며 Roblox는 현재 처리량으로 요청을 처리할 수 없습니다. | |
304 | TransformThrottle | UpdateAsync 요청이 중단되었습니다. 요청이 제한되었지만 대기열이 가득 찼습니다. | UpdateAsync() 요청은 최대 대기 크기를 초과했으며 Roblox는 현재 처리량으로 요청을 처리할 수 없습니다. | |
305 | GetSortedThrottle | GetSorted 요청이 중단되었습니다. 요청이 제한되었지만 대기열이 가득 찼습니다. | GetSortedAsync() 요청은 최대 대기 크기를 초과했으며 Roblox는 현재 처리량으로 요청을 처리할 수 없습니다. | |
306 | RemoveAsyncThrottle | RemoveAsync 요청이 중단되었습니다. 요청이 제한되었지만 대기열이 가득 찼습니다. | RemoveAsync() 요청은 최대 대기 크기를 초과했으며 Roblox는 현재 처리량으로 요청을 처리할 수 없습니다. | |
401 | DataModelNoAccess | 요청 실패. DataModel 경험이 종료되는 동안 액세스할 수 없습니다. | DataModel 경험이 종료되기 때문에 초기화되지 않았습니다. | |
402 | LuaWebSrvsNoAccess | 요청 실패. LuaWebService 경험이 종료되는 동안 액세스할 수 없습니다. | LuaWebService 경험이 종료되기 때문에 초기화되지 않았습니다. | |
403 | StudioAccessToApisNotAllowed | API 액세스가 활성화되지 않아 Studio에서 DataStore로 쓰기가 불가능합니다. | Studio에서 데이터 저장소를 사용하려면 API 액세스가 활성화되어야 합니다. | |
404 | InternalError | OrderedDataStore 이 존재하지 않습니다. | 이 요청과 연결된 OrderedDataStore 이 찾을 수 없었습니다. 이는 데이터 손상의 신호일 수 있습니다. 나중에 다시 시도하십시오. | |
501 | InternalError | 데이터가 손상될 수 있으므로 응답을 분석할 수 없습니다. | 서버가 요청에 대한 응답을 분석할 수 없었습니다. 이는 데이터 손상의 신호일 수 있습니다. 나중에 다시 시도하십시오. | |
502 | RequestRejected | API 서비스가 오류 X로 요청을 거부했습니다. | Roblox 서버에서 처리할 때 오류 X가 발생했습니다. 나중에 다시 시도하십시오. | |
503 | InternalError | 데이터 저장소 요청이 성공했지만 키가 찾을 수 없었습니다. | 요청한 키가 데이터 저장소에 없었습니다. 이는 데이터 손상의 신호일 수 있습니다. 나중에 다시 시도하십시오. | |
504 | InternalError | 데이터 저장소 요청이 성공했지만 응답이 올바르게 형식화되지 않았습니다. | 서버가 요청에 대한 응답을 분석할 수 없었습니다. 이는 데이터 손상의 신호일 수 있습니다. 나중에 다시 시도하십시오. | |
505 | InternalError | OrderedDataStore 요청은 성공했지만 응답이 올바르게 형식화되지 않았습니다. | 서버는 귀하의 OrderedDataStore 요청에 대한 응답을 분석할 수 없었습니다. 이는 데이터 손상의 신호일 수 있습니다. 나중에 다시 시도하십시오. | |
509 | OperationNotAllowed | 개인 RCC에서 실행하는 데이터 저장소 작업은 데이터 손상을 방지하기 위해 차단됩니다. | 데이터 저장소 쓰기는 개인 RCC 채널에서 차단됩니다. | |
511 | AttributeSizeTooLarge | 메타데이터 특성 크기가 X 제한을 초과합니다. | 직렬화된 메타데이터 크기가 X의 제한을 초과합니다. 값 X는 동적입니다. 크기가 변경되면 값도 변경됩니다. | |
512 | UserIdLimitExceeded | UserID 크기가 X 제한을 초과합니다. | 사용자에 의해 제공된 사용자 ID 배열의 길이가 X의 제한을 초과합니다. | |
513 | AttributeFormatError | 특성 userId 형식이 유효하지 않은. | 제공된 사용자 ID는 숫자가 아닙니다. | |
513 | AttributeFormatError | 특성 메타데이터 형식이 유효하지 않은. | 메타데이터는 테이블이 아닙니다. | |
GetVersionAsyncThrottle | GetVersionAsync 요청이 중단되었습니다.요청이 제한되었습니다.: | GetVersionAsync() 요청이 최대 대기 크기를 초과했으며 Roblox는 현재 처리량으로 요청을 처리할 수 없습니다. | ||
GetVersionAtTimeAsyncThrottle | GetVersionAtTimeAsync 요청이 중단되었습니다.요청이 제한되었습니다.: | GetVersionAtTimeAsync() 요청이 최대 대기 크기를 초과했으며 Roblox는 현재 처리량으로 요청을 처리할 수 없습니다. | ||
ListDataStoresAsyncThrottle | ListDataStoresAsync 요청이 중단되었습니다.요청이 제한되었습니다.: | ListDataStoresAsync() 요청이 최대 대기 크기를 초과했으며 Roblox는 현재 처리량으로 요청을 처리할 수 없습니다. | ||
ListKeysAsyncThrottle | ListKeysAsync 요청이 중단되었습니다.요청이 제한되었습니다.: | ListKeysAsync() 요청이 최대 대기 크기를 초과했으며 Roblox는 현재 처리량으로 요청을 처리할 수 없습니다. | ||
ListVersionsAsyncThrottle | ListVersionsAsync 요청이 중단되었습니다.요청이 제한되었습니다.: | ListVersionsAsync() 요청이 최대 대기 크기를 초과했으며 Roblox는 현재 처리량으로 요청을 처리할 수 없습니다. | ||
RemoveVersionAsyncThrottle | RemoveVersionAsync 요청이 중단되었습니다.요청이 제한되었습니다.: | RemoveVersionAsync() 요청이 최대 대기 크기를 초과했으며 Roblox는 현재 처리량으로 요청을 처리할 수 없습니다. | ||
InvalidTimestamp | 타임스탬프는 양수여야 하며 미래에 10분 이상 지나지 않아야 합니다.: | 제공된 타임스탬프가 유효하지 않았습니다. |
서버 오류 코드
오류 이름 | 오류 메시지 | 노트 |
---|---|---|
DatastoreThrottled | 요청 속도가 datastore에 허용된 최대값을 초과합니다. | 단일 데이터 저장소에 너무 많은 요청이 전송되었습니다. |
InternalServerError | 내부 서버 오류가 발생했습니다. | Roblox 서버에서 가끔 발생하는 오류. 이상적으로는 지수 백오프로 다시 시도하십시오. |
InvalidPlace | 제공된 장소가 무효합니다. | 플레이스일치하는 유니버스 ID가 없습니다. 나중에 다시 시도하십시오. |
InvalidTarget | 제공된 대상이 무효합니다. | 정렬된 데이터 저장소 키 이름이 50자 제한을 초과합니다. |
InvalidUniverse | 제공된 우주는 유효하지 않은. | 우주에 대한 일치하는 장소 ID가 없습니다. 나중에 다시 시도하십시오. |
InvalidUserIds | 제공된 사용자 ID에 유효하지 않은 형식이 있습니다. | 사용자 ID를 분석하지 못했습니다. |
KeyThrottled | 요청 속도가 키에 대한 허용 최대값을 초과합니다. | 요청 속도가 단일 키에 대한 최대 허용 요청 속도를 초과합니다. |
KeyNotFound | 요청한 키가 존재하지 않습니다. | 키가 존재하지 않습니다. |
N/A | 진행할 페이지가 없습니다. | 이 오류는 마지막 페이지에서 Pages:AdvanceToNextPageAsync()를 호출할 때 발생합니다. |
제한
데이터 모델에는 제한 이 있습니다.경험이 이러한 제한을 초과하면 서비스가 경험의 데이터 저장소 사용을 자동으로 제한하고 미래의 요청이 다음 큐에 배치되도록 합니다:
- 설정
- 정렬된 설정
- 가져오기
- 정렬된 가져오기
큐에서 요청은 받은 순서대로 처리됩니다.호출된 함수는 요청이 여전히 대기 중인 한 계속 생성됩니다.데이터 저장소 키 자체가 제한되면 요청이 대기열에 배치되지만 일시적으로 건너뛰어집니다.
각 큐에는 30개의 요청 제한이 있습니다.큐의 한계에 도달하면 301-306 범위의 오류 코드로 요청이 실패하여 요청이 완전히 삭제되었음을 나타냅니다.
서버 제한
각 서버는 요청 유형과 사용자 수에 따라 특정 수의 데이터 저장소 요청을 허용합니다.현재 장소가 처리할 수 있는 데이터 저장소 요청 수를 확인하려면 GetRequestBudgetForRequestType()를 사용하십시오.
요청 입력 | 함수 | 분당 요청 |
---|---|---|
가져오기 | GetAsync() | 60 + 플레이어 수 × 10 |
설정(제한은 나열된 모든 함수 간에 공유됨) | Class.GlobalDataStore:SetAsync()|SetAsync()``Class.GlobalDataStore:IncrementAsync()|IncrementAsync()``Class.GlobalDataStore:UpdateAsync()|UpdateAsync()``Class.GlobalDataStore:RemoveAsync()|RemoveAsync() | 60 + 플레이어 수 × 10 |
정렬 받기 | GetSortedAsync() | 5 + 플레이어 수 × 2 |
버전 가져오기 | Class.DataStore:GetVersionAsync()|GetVersionAsync()``Class.DataStore:GetVersionAtTimeAsync()|GetVersionAtTimeAsync() | 5 + 플레이어 수 × 2 |
목록 | Class.DataStoreService:ListDataStoresAsync()|ListDataStoresAsync()``Class.DataStore:ListKeysAsync()|ListKeysAsync()``Class.DataStore:ListVersionsAsync()|ListVersionAsync() | 5 + 플레이어 수 × 2 |
제거 | RemoveVersionAsync() | 5 + 플레이어 수 × 2 |
데이터 제한
데이터 저장소는 입력당 사용할 수 있는 데이터의 양을 제한합니다.
데이터 저장소 이름, 키 이름 및 범위 모두 특정 문자 길이 아래에 있어야 합니다. 길이를 확인하려면 string.len()를 사용하십시오.
데이터(키 값)는 초기 입력관계없이 문자열로 저장됩니다.Luau 데이터를 JSON 테이블로 변환하는 JSONEncode() 함수로 데이터 크기를 확인할 수 있습니다.
구성 요소 | 최대 문자 수 |
---|---|
데이터 저장소 이름 | 50 |
키 이름 | 50 |
범위 | 50 |
데이터(키 값) | 키당 4,194,304 |
메타데이터 제한
사용자 정의 메타데이터의 문자 수 제한.
구성 요소 | 최대 문자 수 |
---|---|
키 이름 | 50 |
값 | 250 |
키-값 쌍 | 300 |
처리량 제한
키당 처리량 제한은 Roblox 서버에서 성능이 최적화되도록 합니다.각 제한은 경험의 모든 서버에서 모든 키에 적용되며 시간이 지남에 따라 새로 고칩니다.
Roblox는 지난 60초 동안 키와 관련된 할당량의 사용을 조사합니다.현재 요청을 포함하여 사용량이 처리량 제한 내에 있으면 요청이 승인됩니다.사용량이 제한을 초과하면 요청이 거부됩니다.
요청 입력 | 제한 |
---|---|
읽기 | 분당 25MB |
쓰기 | 분당 4MB |
저장소 제한
현재 데이터 저장소에 강제 저장 한도가 없습니다.