คำขอที่คุณทำกับ data stores อาจล้มเหลวเนื่องจากการเชื่อมต่อที่ไม่ดีหรือปัญหาอื่น ๆ เพื่อจัดการกับข้อผิดพลาดและส่งคืนข้อความพร้อมรหัสข้อผิดพลาด ให้ห่อฟังก์ชัน data store ภายใน pcall()
การเรียกเขียนที่ล้มเหลว เช่น UpdateAsync() หมายความว่าเซิร์ฟเวอร์เกมไม่ได้รับการตอบสนองที่สำเร็จ มันไม่สามารถการันตีได้ว่าการเขียนด้านหลังไม่เกิดขึ้น ในบางสถานการณ์ของความล้มเหลว สถานะการเขียนขั้นสุดท้ายอาจไม่เป็นที่รู้จักสำหรับผู้เรียกจนกว่าจะมีการตรวจสอบด้วยการอ่านตามหลังโดยไม่ใช้ cache
อ้างอิงรหัสข้อผิดพลาด
| รหัสข้อผิดพลาด | ชื่อข้อผิดพลาด | ข้อความข้อผิดพลาด | หมายเหตุ | |
|---|---|---|---|---|
| 101 | KeyNameEmpty | ชื่อคีย์ไม่สามารถเป็นค่าว่างได้ | ตรวจสอบว่าคีย์ที่ใส่เข้าไปในฟังก์ชัน data store เป็นสตริงว่างหรือไม่ | |
| 102 | KeyNameLimit | ชื่อคีย์เกินขีดจำกัด 50 ตัวอักษร | ตรวจสอบว่าคีย์ที่ใส่เข้าในฟังก์ชัน data store เกินความยาว 50 หรือไม่ | |
| 103 | ValueNotAllowed | ไม่สามารถอนุญาต X ใน DataStore | ฟังก์ชันการอัปเดตที่ไม่ถูกต้องส่งคืนค่าประเภท X | |
| 104 | CantStoreValue | ไม่สามารถเก็บ X ใน DataStore | ฟังก์ชันการอัปเดตส่งคืนค่าประเภท X ที่ไม่สามารถจัดเก็บได้ | |
| 105 | ValueTooLarge | ค่าที่จัดเก็บถูกจัดรูปแบบเกินขีดจำกัด 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 | ไม่สามารถเขียนไปยัง DataStore จาก Studio ได้เนื่องจากการเข้าถึง API ไม่ถูกเปิดใช้งาน | ต้องมีการเข้าถึง API ที่เปิดใช้งานเพื่อใช้ data stores ใน Studio | |
| 404 | InternalError | OrderedDataStore ไม่ได้อยู่ | OrderedDataStore ที่เกี่ยวข้องกับคำขอนี้ไม่ถูกพบ นี่อาจเป็นสัญญาณของการเสื่อมสภาพของข้อมูล ลองอีกครั้งในภายหลัง | |
| 501 | InternalError | ไม่สามารถวิเคราะห์การตอบสนองได้เนื่องจากข้อมูลอาจมีการเสียหาย | เซิร์ฟเวอร์ไม่สามารถวิเคราะห์การตอบสนองต่อคำขอของคุณ นี่อาจเป็นสัญญาณของการเสื่อมสภาพของข้อมูล ลองอีกครั้งในภายหลัง | |
| 502 | RequestRejected | API Services ได้ปฏิเสธคำขอด้วยข้อผิดพลาด X | ข้อผิดพลาด X เกิดขึ้นเมื่อประมวลผลบนเซิร์ฟเวอร์ Roblox ลองอีกครั้งในภายหลัง | |
| 503 | InternalError | คำขอ data store สำเร็จ แต่ไม่พบคีย์ | คีย์ที่ร้องขอไม่พบใน data store นี่อาจเป็นสัญญาณของการเสื่อมสภาพของข้อมูล ลองอีกครั้งในภายหลัง | |
| 504 | InternalError | คำขอ data store สำเร็จ แต่การตอบสนองไม่ได้จัดรูปแบบอย่างถูกต้อง | เซิร์ฟเวอร์ไม่สามารถวิเคราะห์การตอบสนองต่อคำขอของคุณ นี่อาจเป็นสัญญาณของการเสื่อมสภาพของข้อมูล ลองอีกครั้งในภายหลัง | |
| 505 | InternalError | คำขอ OrderedDataStore สำเร็จ แต่การตอบสนองไม่ได้จัดรูปแบบอย่างถูกต้อง | เซิร์ฟเวอร์ไม่สามารถวิเคราะห์การตอบสนองต่อคำขอ OrderedDataStore ของคุณ นี่อาจเป็นสัญญาณของการเสื่อมสภาพของข้อมูล ลองอีกครั้งในภายหลัง | |
| 509 | OperationNotAllowed | การดำเนินการ data store ถูกบล็อกในขณะที่ทำงานบน Personal RCC เพื่อป้องกันการเสื่อมสภาพของข้อมูลที่เป็นไปได้ | การเขียน data store ถูกบล็อกในช่องสัญญาณ RCC ส่วนตัว | |
| 511 | AttributeSizeTooLarge | ขนาดคุณลักษณะข้อมูลเมตาเกินขีดจำกัด X | ขนาดข้อมูลเมตาที่ถูกจัดเก็บเกินขีดจำกัด X ค่าดังกล่าว X เป็นค่าที่เปลี่ยนแปลงได้ หากขนาดของมันเปลี่ยนแปลง ค่าอาจเปลี่ยนแปลงด้วย | |
| 512 | UserIdLimitExceeded | ขนาด UserID เกินขีดจำกัด X | ความยาวของอาร์เรย์ ID ผู้ใช้ที่ผู้ใช้จัดเตรียมไว้เกินขีดจำกัด X | |
| 513 | AttributeFormatError | รูปแบบแอตทริบิวต์ userId ไม่ถูกต้อง | หมายเลขผู้ใช้ที่จัดเตรียมไม่เป็นตัวเลข | |
| 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 | Timestamp ต้องเป็นบวกและไม่เกินสิบในอนาคต | timestamp ที่ส่งไปยัง GetVersionAtTimeAsync() ไม่ถูกต้อง | ||
| StandardReadExperienceThrottled | คำขอ StandardRead ถูกจำกัดโดยขีดจำกัดประสบการณ์ | คำขอ GetAsync(), GetVersionAsync(), GetVersionAtTimeAsync(), หรือการอ่านของ UpdateAsync() บน data store มาตรฐานเกินขีดจำกัดการอ่านประสบการณ์ระดับ StandardRead | ||
| StandardWriteExperienceThrottled | คำขอ StandardWrite ถูกจำกัดโดยขีดจำกัดประสบการณ์ | คำขอ SetAsync(), IncrementAsync(), หรือการเขียนของ UpdateAsync() บน data store มาตรฐานเกินขีดจำกัดการเขียนประสบการณ์ระดับ StandardWrite | ||
| StandardListExperienceThrottled | คำขอ StandardList ถูกจำกัดโดยขีดจำกัดประสบการณ์ | คำขอ ListKeysAsync(), ListVersionsAsync(), หรือ ListDataStoresAsync() บน data stores มาตรฐานเกินขีดจำกัดการลิสต์ประสบการณ์ระดับ StandardList | ||
| StandardRemoveExperienceThrottled | คำขอ StandardRemove ถูกจำกัดโดยขีดจำกัดประสบการณ์ | คำขอ RemoveAsync() บน data store มาตรฐานเกินขีดจำกัดการลบประสบการณ์ระดับ StandardRemove | ||
| OrderedReadExperienceThrottled | คำขอ OrderedRead ถูกจำกัดโดยขีดจำกัดประสบการณ์ | คำขอ GetAsync() หรือการอ่าน UpdateAsync() บน data store ที่จัดเรียงเกินขีดจำกัดการอ่านประสบการณ์ระดับ OrderedRead | ||
| OrderedWriteExperienceThrottled | คำขอ OrderedWrite ถูกจำกัดโดยขีดจำกัดประสบการณ์ | คำขอ SetAsync(), IncrementAsync(), หรือการเขียนของ UpdateAsync() บน data store ที่จัดเรียงเกินขีดจำกัดการเขียนประสบการณ์ระดับ OrderedWrite | ||
| OrderedListExperienceThrottled | คำขอ OrderedList ถูกจำกัดโดยขีดจำกัดประสบการณ์ | คำขอ GetSortedAsync() บน data store ที่จัดเรียงเกินขีดจำกัดการลิสต์ประสบการณ์ระดับ OrderedList | ||
| OrderedRemoveExperienceThrottled | คำขอ OrderedRemove ถูกจำกัดโดยขีดจำกัดประสบการณ์ | คำขอ RemoveAsync() บน data store ที่จัดเรียงเกินขีดจำกัดการลบประสบการณ์ระดับ OrderedRemove | ||
| StandardReadGameServerThrottled | คำขอ StandardRead ถูกจำกัดโดยขีดจำกัดเซิร์ฟเวอร์เกมหรือคิวคำขอเต็ม | คำขอ GetAsync(), GetVersionAsync(), GetVersionAtTimeAsync(), หรือการอ่านของ UpdateAsync() บน data store มาตรฐานเกินขีดจำกัดการอ่านระดับเซิร์ฟเวอร์เกม StandardRead | ||
| StandardWriteGameServerThrottled | คำขอ StandardWrite ถูกจำกัดโดยขีดจำกัดเซิร์ฟเวอร์เกมหรือคิวคำขอเต็ม | คำขอ SetAsync(), IncrementAsync(), หรือการเขียนของ UpdateAsync() บน data store มาตรฐานเกินขีดจำกัดการเขียนระดับเซิร์ฟเวอร์เกม StandardWrite | ||
| StandardListGameServerThrottled | คำขอ StandardList ถูกจำกัดโดยขีดจำกัดเซิร์ฟเวอร์เกมหรือคิวคำขอเต็ม | คำขอ ListKeysAsync(), ListVersionsAsync(), หรือ ListDataStoresAsync() บน data stores มาตรฐานเกินขีดจำกัดการลิสต์ระดับเซิร์ฟเวอร์เกม StandardList | ||
| StandardRemoveGameServerThrottled | คำขอ StandardRemove ถูกจำกัดโดยขีดจำกัดเซิร์ฟเวอร์เกมหรือคิวคำขอเต็ม | คำขอ RemoveAsync() บน data store มาตรฐานเกินขีดจำกัดการลบระดับเซิร์ฟเวอร์เกม StandardRemove | ||
| OrderedReadGameServerThrottled | คำขอ OrderedRead ถูกจำกัดโดยขีดจำกัดเซิร์ฟเวอร์เกมหรือคิวคำขอเต็ม | คำขอ GetAsync() หรือการอ่านของ UpdateAsync() บน data store ที่จัดเรียงเกินขีดจำกัดการอ่านระดับเซิร์ฟเวอร์เกม OrderedRead | ||
| OrderedWriteGameServerThrottled | คำขอ OrderedWrite ถูกจำกัดโดยขีดจำกัดเซิร์ฟเวอร์เกมหรือคิวคำขอเต็ม | คำขอ SetAsync(), IncrementAsync(), หรือการเขียนของ UpdateAsync() บน data store ที่จัดเรียงเกินขีดจำกัดการเขียนระดับเซิร์ฟเวอร์เกม OrderedWrite | ||
| OrderedListGameServerThrottled | คำขอ OrderedList ถูกจำกัดโดยขีดจำกัดเซิร์ฟเวอร์เกมหรือคิวคำขอเต็ม | คำขอ GetSortedAsync() บน data store ที่จัดเรียงเกินขีดจำกัดการลิสต์ระดับเซิร์ฟเวอร์เกม OrderedList | ||
| OrderedRemoveGameServerThrottled | คำขอ OrderedRemove ถูกจำกัดโดยขีดจำกัดเซิร์ฟเวอร์เกมหรือคิวคำขอเต็ม | คำขอ RemoveAsync() บน data store ที่จัดเรียงเกินขีดจำกัดการลบระดับเซิร์ฟเวอร์เกม OrderedRemove |
รหัสข้อผิดพลาดเซิร์ฟเวอร์
| ชื่อข้อผิดพลาด | ข้อความข้อผิดพลาด | หมายเหตุ |
|---|---|---|
| DatastoreDeleted | Data store ถูกลบแล้ว | ไม่สามารถดำเนินการบน data store ได้เพราะ data store ถูกลบก่อนหน้านี้ |
| DatastoreThrottled | อัตราคำขอเกินสูงสุดที่อนุญาตสำหรับ datastore | ส่งคำขอไปยัง data store มากเกินไป |
| InternalServerError | เกิดข้อผิดพลาดเซิร์ฟเวอร์ภายใน | ข้อผิดพลาดบางประการบนเซิร์ฟเวอร์ Roblox ลองอีกครั้ง หวังว่าสูตรการถอยแบบเอ็กซ์โพเนนเชียล |
| InvalidExclusiveStartKey | กุญแจเริ่มต้นพิเศษที่ให้ไว้ไม่ถูกต้อง | กุญแจเริ่มต้นพิเศษ (cursor) ที่ให้กับการดำเนินการลิสต์เช่น ListKeysAsync() ไม่ถูกต้อง |
| InvalidPlace | สถานที่ที่ให้มายังไม่ถูกต้อง | ไม่มี Universe ID ที่ตรงกันสำหรับสถานที่ ลองอีกครั้งในภายหลัง |
| InvalidTarget | เป้าหมายที่ให้มายังไม่ถูกต้อง | ชื่อคีย์ใน data store ที่จัดเรียงเกินขีดจำกัด 50 ตัวอักษร |
| InvalidUniverse | จักรวาลที่จัดให้ยังไม่ถูกต้อง | ไม่มี ID สถานที่ที่ตรงกันสำหรับจักรวาล ลองอีกครั้งในภายหลัง |
| InvalidUserIds | ID ผู้ใช้ที่ให้มาอยู่ในรูปแบบไม่ถูกต้อง | ไม่สามารถวิเคราะห์ ID ผู้ใช้ |
| KeyThrottled | อัตราคำขอเกินสูงสุดที่อนุญาตสำหรับคีย์ | อัตราคำขอเกินอัตราคำขอสูงสุดที่อนุญาตสำหรับคีย์เดียว |
| KeyNotFound | คีย์ที่ร้องขอไม่มีอยู่ | คีย์ไม่มีอยู่ |
| N/A | ไม่มีเพจสำหรับดำเนินการต่อ | ข้อผิดพลาดนี้เกิดขึ้นเมื่อคุณเรียก Pages:AdvanceToNextPageAsync() บนหน้าแรก |
| StandardReadExperienceThrottled | อัตราคำขอการอ่านมาตรฐานเกินสูงสุดที่อนุญาตสำหรับประสบการณ์ | คำขอ GetAsync(), GetVersionAsync(), GetVersionAtTimeAsync(), หรือการอ่านของ UpdateAsync() บน data store มาตรฐานเกินขีดจำกัดการอ่านระดับประสบการณ์ StandardRead |
| StandardWriteExperienceThrottled | อัตราคำขอการเขียนมาตรฐานเกินสูงสุดที่อนุญาตสำหรับประสบการณ์ | คำขอ SetAsync(), IncrementAsync(), หรือการเขียนของ UpdateAsync() บน data store มาตรฐานเกินขีดจำกัดการเขียนระดับประสบการณ์ StandardWrite |
| StandardListExperienceThrottled | อัตราคำขอลิสต์มาตรฐานเกินสูงสุดที่อนุญาตสำหรับประสบการณ์ | คำขอ ListKeysAsync(), ListVersionsAsync(), หรือ ListDataStoresAsync() บน data stores มาตรฐานเกินขีดจำกัดการลิสต์ระดับประสบการณ์ StandardList |
| StandardRemoveExperienceThrottled | อัตราคำออถอนมาตรฐานเกินสูงสุดที่อนุญาตสำหรับประสบการณ์ | คำขอ RemoveAsync() บน data store มาตรฐานเกินขีดจำกัดการลบระดับประสบการณ์ StandardRemove |
| OrderedReadExperienceThrottled | อัตราคำขอการอ่านที่จัดเรียงเกินสูงสุดที่อนุญาตสำหรับประสบการณ์ | คำขอ GetAsync() หรือการอ่าน UpdateAsync() บน data store ที่จัดเรียงเกินขีดจำกัดการอ่านระดับประสบการณ์ OrderedRead |
| OrderedWriteExperienceThrottled | อัตราคำขอการเขียนที่จัดเรียงเกินสูงสุดที่อนุญาตสำหรับประสบการณ์ | คำขอ SetAsync(), IncrementAsync(), หรือการเขียนของ UpdateAsync() บน data store ที่จัดเรียงเกินขีดจำกัดการเขียนระดับประสบการณ์ OrderedWrite |
| OrderedListExperienceThrottled | อัตราคำขอลิสต์ที่จัดเรียงเกินสูงสุดที่อนุญาตสำหรับประสบการณ์ | คำขอ GetSortedAsync() บน data store ที่จัดเรียงเกินขีดจำกัดการลิสต์ระดับประสบการณ์ OrderedList |
| OrderedRemoveExperienceThrottled | อัตราคำออถอนที่จัดเรียงเกินสูงสุดที่อนุญาตสำหรับประสบการณ์ | คำขอ RemoveAsync() บน data store ที่จัดเรียงเกินขีดจำกัดการลบระดับประสบการณ์ OrderedRemove |
ขีดจำกัด
โมเดลข้อมูลมี ขีดจำกัด หากประสบการณ์เกินขีดจำกัดเหล่านี้ บริการจะจำกัดการใช้งาน data store ของประสบการณ์โดยอัตโนมัติและทำให้คำขอในอนาคตอยู่ในคิวใดคิวหนึ่งตามนี้:
- ตั้งค่า
- ตั้งค่าเรียงลำดับ
- รับ
- รับเรียงลำดับ
คำขอในคิวจะถูกจัดการตามลำดับที่ได้รับ ฟังก์ชันที่เรียกจะยังคงรอผลตอบแทนจนกว่าคำขอจะถูกจัดการ หากคีย์ของ data store ถูกจำกัด คำขอจะถูกใส่ในคิวแต่จะถูกข้ามในชั่วคราว
แต่ละคิวมีขีดจำกัด 30 คำขอ เมื่อถึงขีดจำกัดของคิว คำขอจะล้มเหลวด้วยรหัสข้อผิดพลาดในช่วง 301-306 โดยบ่งบอกว่าคำขอถูกยกเลิกทั้งหมด
ขีดจำกัดการเข้าถึง
Data stores อยู่ภายใต้ ขีดจำกัดระดับประสบการณ์และเซิร์ฟเวอร์ ขีดจำกัดระดับประสบการณ์จะปรับตามจำนวนผู้ใช้ที่เชื่อมต่อพร้อมกันในประสบการณ์ ขณะที่ขีดจำกัดระดับเซิร์ฟเวอร์สามารถตั้งค่าได้และมีไว้เพื่อใช้เป็นเครื่องมือโดยผู้สร้าง
ขีดจำกัดประสบการณ์
แต่ละประสบการณ์ได้รับอนุญาตให้มีจำนวนคำขอ data store ที่แน่นอนขึ้นอยู่กับประเภทของ data store, ประเภทคำขอ และจำนวนผู้ใช้ที่เชื่อมต่อพร้อมกัน สำหรับแต่ละประเภทของ data store และประเภทคำขอ ขีดจำกัดจะแบ่งปันกันระหว่างฟังก์ชันทั้งหมดที่ระบุ
โปรดทราบว่า UpdateAsync() จะใช้ขีดจำกัดของคำขอทั้งการอ่านและเขียน การเรียกครั้งเดียวจะลดลงทั้งสองขีดจำกัด
Data stores มาตรฐาน
| ประเภทคำขอ | ฟังก์ชัน | คำขอต่อนาที |
|---|---|---|
| การอ่าน | GetAsync() GetVersionAsync() GetVersionAtTimeAsync() UpdateAsync() | 250 + concurrentUsers × 40 |
| การเขียน | SetAsync() IncrementAsync() UpdateAsync() | 250 + concurrentUsers × 20 |
| ลิสต์ | ListDataStoresAsync() ListKeysAsync() ListVersionsAsync() | 10 + concurrentUsers × 2 |
| การลบ | RemoveAsync() | 100 + concurrentUsers × 40 |
Data stores ที่จัดเรียง
| ประเภทคำขอ | ฟังก์ชัน | คำขอต่อนาที |
|---|---|---|
| การอ่าน | GetAsync() UpdateAsync() | 250 + concurrentUsers × 40 |
| การเขียน | SetAsync() IncrementAsync() UpdateAsync() | 250 + concurrentUsers × 20 |
| ลิสต์ | GetSortedAsync() | 100 + concurrentUsers × 2 |
| การลบ | RemoveAsync() | 100 + concurrentUsers × 40 |
ขีดจำกัดเซิร์ฟเวอร์
แต่ละเซิร์ฟเวอร์มีขีดจำกัดอัตราที่สามารถตั้งค่าได้สำหรับแต่ละประเภทคำขอ ขึ้นอยู่กับจำนวนผู้เล่นในเซิร์ฟเวอร์นั้น เซิร์ฟเวอร์จะได้รับการเพิ่มคำขอเมื่อสร้างครั้งแรก ใช้ GetRequestBudgetForRequestType() เพื่อยืนยันจำนวนคำขอ data store ที่เซิร์ฟเวอร์ปัจจุบันสามารถทำได้ในแต่ละช่วงเวลา
ขีดจำกัดเหล่านี้สามารถตั้งค่าได้โดยผู้สร้างด้วย API SetRateLimitForRequestType() โดยใช้ API นี้ ผู้สร้างสามารถกำหนดขีดจำกัดการเรียกใช้ data stores สำหรับแต่ละประเภทคำขอด้วยตนเอง
ขีดจำกัดการตั้งค่าเริ่มต้น ดั้งเดิม ที่ใช้บังคับหากไม่มีการเรียก API:
Data stores มาตรฐาน
| ประเภทคำขอ | DataStoreRequestType Enum | ฟังก์ชัน | คำขอต่อนาที |
|---|---|---|---|
| การอ่าน | StandardRead | GetAsync() GetVersionAsync() GetVersionAtTimeAsync() UpdateAsync() | 60 + numPlayers × 40 |
| การเขียน | StandardWrite | SetAsync() IncrementAsync() UpdateAsync() | 60 + numPlayers × 40 |
| ลิสต์ | StandardList | ListDataStoresAsync() ListKeysAsync() ListVersionsAsync() | 5 + numPlayers × 2 |
| การลบ | StandardRemove | RemoveAsync() | 60 + numPlayers × 40 |
| RemoveVersion (เลิกใช้) | RemoveVersionAsync | RemoveVersionAsync() | 5 + numPlayers × 2 |
Data stores ที่จัดเรียง
| ประเภทคำขอ | DataStoreRequestType Enum | ฟังก์ชัน | คำขอต่อนาที |
|---|---|---|---|
| การอ่าน | OrderedRead | GetAsync() UpdateAsync() | 60 + numPlayers × 40 |
| การเขียน | OrderedWrite | SetAsync() IncrementAsync() UpdateAsync() | 30 + numPlayers × 5 |
| ลิสต์ | OrderedList | GetSortedAsync() | 5 + numPlayers × 2 |
| การลบ | OrderedRemove | RemoveAsync() | 30 + numPlayers × 5 |
ขีดจำกัดข้อมูล
Data stores จำกัดปริมาณข้อมูลที่สามารถใช้ต่อรายการได้
ชื่อ data store, ชื่อคีย์ และ ขอบเขต ต้องมีความยาวตัวอักษรภายใต้ข้อจำกัดที่กำหนด ใช้ string.len() เพื่อตรวจสอบความยาว
ข้อมูล (คีย์ค่า) จะถูกจัดเก็บเป็นสตริง ไม่ว่าในประเภทแรกจะเป็นประเภทใด คุณสามารถตรวจสอบขนาดของข้อมูลได้โดยใช้ฟังก์ชัน JSONEncode() ซึ่งจะแปลงข้อมูล Luau ให้อยู่ในรูปแบบ JSON
| ส่วนประกอบ | จำนวนตัวอักษรสูงสุด |
|---|---|
| ชื่อ data store | 50 |
| ชื่อคีย์ | 50 |
| ขอบเขต | 50 |
| ข้อมูล (คีย์ค่า) | 4,194,304 ต่อคีย์ |
ขีดจำกัดข้อมูลเมตา
จำกัดจำนวนตัวอักษรในข้อมูลเมตาที่กำหนดโดยผู้ใช้
| ส่วนประกอบ | จำนวนตัวอักษรสูงสุด |
|---|---|
| ชื่อคีย์ | 50 |
| ค่า | 250 |
| คู่คีย์-ค่า | 300 |
ขีดจำกัดการส่งข้อมูล
ขีดจำกัดการส่งข้อมูลต่อคีย์ช่วยให้มั่นใจว่าประสิทธิภาพมีความเหมาะสมบนเซิร์ฟเวอร์ของ Roblox ขีดจำกัดแต่ละอย่างจะใช้กับคีย์ทั้งหมดในเซิร์ฟเวอร์ทั้งหมดในประสบการณ์และจะทำการรีเฟรชตามเวลา
Roblox จะตรวจสอบการใช้โควต้าที่เกี่ยวข้องกับคีย์ใน 60 วินาทีที่ผ่านมา หากการใช้งานรวมถึงคำขอปัจจุบันอยู่ภายในขีดจำกัดการส่งข้อมูล คำขอจะได้รับการอนุมัติ หากการใช้งานเกินขีดจำกัด คำขอจะถูกปฏิเสธ
| ประเภทคำขอ | ขีดจำกัด |
|---|---|
| การอ่าน | 25 MB ต่อต่อเดือน |
| การเขียน | 4 MB ต่อต่อเดือน |
นอกจากขีดจำกัดการส่งข้อมูลด้านบนแล้ว Roblox ยังจัดระเบียบข้อมูลเป็นพาร์ทิชันตามแผนผังภายใน เป็นผลให้เมื่อเซิร์ฟเวอร์ด้านหลังได้รับปริมาณคำขอที่สูงต่อ data store เดียวกัน มันอาจนำไปสู่การจำกัดอีกครั้ง ไม่ว่าจะเกิดจากสาเหตุใด การจำกัดจะปรากฏเป็นข้อผิดพลาด DatastoreThrottled หรือ KeyThrottled ขึ้นอยู่กับว่าขีดจำกัดการส่งข้อมูลถูกเกินสำหรับ data store เดียวกันหรือคีย์ ข้อความข้อผิดพลาดเหล่านี้จะใช้ได้ทั้งสำหรับ data stores ที่จัดเรียงและมาตรฐาน
ขีดจำกัดการเก็บข้อมูล
ในอนาคต เพื่อให้ประสบการณ์การเก็บข้อมูลสามารถปรับขนาดได้และมีเสถียรภาพ Data stores จะใช้ขีดจำกัดการเก็บข้อมูลระดับประสบการณ์สำหรับการใช้งานการเก็บข้อมูลของคุณ
ขีดจำกัดนี้จะเป็นผลรวมของขีดจำกัดพื้นฐานสำหรับแต่ละประสบการณ์ของคุณและขีดจำกัดต่อผู้ใช้ตามจำนวนผู้ใช้ตลอดชีพในประสบการณ์ของคุณ ผู้ใช้ตลอดชีพคือผู้ใดก็ตามที่เข้าร่วมประสบการณ์ของคุณอย่างน้อยหนึ่งครั้ง
ขีดจำกัดใการเก็บข้อมูลจะคำนวณตามสูตร Total latest version storage limit = 100 MB + 1 MB * lifetime user count
คีย์ใด ๆ ที่คุณลบหรือแทนที่ แม้จะยังสามารถเข้าถึงได้ผ่าน APIs เวอร์ชัน จะไม่นับรวมในการใช้ข้อมูลเก็บของประสบการณ์ของคุณ อย่างไรก็ตาม data stores ทั้งหมดที่ถูกลบผ่าน Open Cloud DeleteDataStore จะยังคงนับรวมในการใช้งานการเก็บข้อมูลของคุณในระยะเวลา 30 วันจนกว่าจะถูกลบอย่างถาวร