Pengecualian Pembatasan DynamoDB

TL;DR — Tingkat permintaan Anda melebihi batas. Ini dapat dicoba lagi — mundur dan coba lagi (SDK melakukan ini secara default). Jika masalah ini terus berlanjut, Anda terlalu sering memanggil bidang kontrol API (CreateTable, UpdateTable, DescriptionTable), atau mencapai batas tingkat akun.

Apa artinya

ThrottlingException: Rate of requests exceeds the allowed throughput.

ThrottlingException (dan RequestLimitExceeded terkait) menandakan batas laju yang bukan merupakan setelan RCU/WCU tabel yang disediakan. Itu muncul kembali sebagai HTTP 400 dan dapat dicoba lagi. Hal ini paling umum terjadi pada operasi bidang kontrol yang dilakukan terlalu cepat, dan — untuk tabel sesuai permintaan — dapat dikembalikan untuk operasi bidang data apa pun ketika tingkat permintaan terlalu tinggi (termasuk saat Anda melebihi throughput maksimum sesuai permintaan yang dikonfigurasi). Kesalahan ini membawa bidang ThrottlingReason yang menyebutkan sumber daya yang dibatasi dan batas yang dicapai.

Mengapa itu terjadi

  • Polling control-plane APIs — memanggil DescribeTable, ListTables, UpdateTable dalam loop yang ketat (misalnya menunggu tabel menjadi ACTIVE).
  • Membuat banyak tabel/deleting dengan cepat — operasi bidang kontrol serentak dibatasi (tidak lebih dari 500 tabel/indexes di CREATING/UPDATING/DELETING sekaligus).
  • Throughput maksimum sesuai permintaan yang dikonfigurasi — melebihi MaxReadRequestUnits/MaxWriteRequestUnits pada tabel sesuai permintaan atau GSI mengembalikan ThrottlingException.
  • Ledakan tiba-tiba pada tabel sesuai permintaan — tabel baru dimulai pada 4.000 pembacaan/s dan 12.000 pembacaan/s, dan melebihi dua kali lipat puncak sebelumnya dalam waktu 30 menit dapat melambat hingga skala DynamoDB.

Bagaimana cara memperbaikinya

  1. Coba lagi dengan backoff eksponensial + jitter — SDK AWS melakukan ini secara otomatis; tetap aktifkan percobaan ulang dan pertimbangkan mode percobaan ulang adaptif.
  2. Hentikan polling ketat APIs. Gunakan pelayan (waitUntilTableExists) yang melakukan polling pada jadwal yang masuk akal, bukan hot loop.
  3. Penulisan data plane batch dan kecepatan. Tingkatkan pemuatan massal secara bertahap sehingga kapasitas sesuai permintaan dapat disesuaikan dengan kebutuhan Anda.
  4. Sebarkan operasi tabel dari waktu ke waktu daripada membuat lusinan sekaligus.
  5. Periksa ThrottlingReason di responsnya. Ini menyebutkan sumber daya dan batas yang dibatasi — pembatasan bidang kontrol vs bidang data sesuai permintaan memerlukan perbaikan yang berbeda.

Contoh

import {DynamoDBClient} from '@aws-sdk/client-dynamodb';
import {waitUntilTableExists} from '@aws-sdk/client-dynamodb';

const client = new DynamoDBClient({});
//  a waiter polls on a backoff schedule — not a tight DescribeTable loop
await waitUntilTableExists({client, maxWaitTime: 120}, {TableName: 'Orders'});

FAQ

Apakah ThrottlingException sama dengan ProvisionedThroughputExceededException? Tidak. ProvisionedThroughputExceededException adalah kesalahan bidang data karena melebihi kapasitas yang disediakan tabel. ThrottlingException paling umum terjadi pada operasi bidang kontrol (CreateTable, UpdateTable, DescribeTable), yang memiliki batas seluruh akun yang rendah, dan pada semburan volume yang sangat tinggi.

Bagaimana cara memperbaiki ThrottlingException DynamoDB? Coba lagi dengan backoff dan jitter eksponensial — SDK AWS melakukan ini secara otomatis. Hentikan API bidang kontrol pemungutan suara yang ketat (gunakan pelayan seperti waitUntilTableExists), tingkatkan muatan massal secara bertahap sehingga kapasitas sesuai permintaan dapat disesuaikan dengan Anda, dan sebarkan pengoperasian tabel seiring waktu.

Cek ukuran di DynoTable

Saat pengaturan tabel blok pembatasan bidang kontrol, gunakan DynoTable untuk menelusuri tabel yang ada alih-alih melakukan polling DescribeTable dalam satu lingkaran — buka tabel dengan ⌘K setelah satu penyegaran. Untuk muatan massal yang memicu pembatasan sesuai permintaan, ukur lalu lintas dengan kalkulator harga sebelum Anda melakukan peningkatan.

Ganti profil dengan ⌘P; Uji Koneksi pada Pengaturan → Profil mengonfirmasi akun. Lihat Menghubungkan ke AWS dan Instal.

Sumber

Kesalahan terkait

Referensi

Terakhir diverifikasi 2026-07-13 berdasarkan dokumentasi resmi AWS yang ditautkan di atas.

Bekerja dengan DynamoDB tanpa Console

Klien desktop DynamoDB yang cepat dan menjalankan SQL sungguhan yang tidak bisa dijalankan DynamoDB — JOINs, GROUP BY, agregasi — dengan editing visual dan agen AI pada kunci Bedrock milik Anda sendiri.

Uji coba gratis 30 hari, tanpa kartu kredit — lalu paket Free tanpa batas waktu.