Tingkatan data - Amazon MemoryDB

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Tingkatan data

Cluster yang menggunakan tipe node dari keluarga r6gd memiliki data berjenjang antara memori dan penyimpanan SSD lokal (solid state drive). Tiering data menyediakan opsi harga-kinerja baru untuk beban kerja Redis OSS dengan memanfaatkan solid state drive (SSD) berbiaya rendah di setiap node cluster selain menyimpan data dalam memori. Mirip dengan tipe node lainnya, data yang ditulis ke node r6gd disimpan dengan tahan lama dalam log transaksi multi-AZ. Tingkatan data sangat ideal untuk beban kerja yang mengakses hingga 20 persen dari keseluruhan set datanya secara rutin, dan untuk aplikasi yang dapat menoleransi latensi tambahan saat mengakses data di SSD.

Pada cluster dengan tiering data, MemoryDB memantau waktu akses terakhir dari setiap item yang disimpannya. Ketika memori yang tersedia (DRAM) sepenuhnya dikonsumsi, MemoryDB menggunakan algoritma yang paling tidak baru digunakan (LRU) untuk secara otomatis memindahkan item yang jarang diakses dari memori ke SSD. Ketika data pada SSD kemudian diakses, MemoryDB secara otomatis dan asinkron memindahkannya kembali ke memori sebelum memproses permintaan. Jika Anda memiliki beban kerja yang mengakses hanya subset dari datanya secara teratur, tingkatan data adalah cara optimal untuk menskalakan kapasitas Anda dengan hemat biaya.

Perhatikan bahwa saat menggunakan tingkatan data, kunci itu sendiri selalu tetap dalam memori, sedangkan LRU mengatur penempatan nilai pada memori vs disk. Secara umum, sebaiknya buat kunci Anda lebih kecil dari ukuran nilai Anda saat menggunakan tingkatan data.

Tingkatan data dirancang untuk memiliki dampak performa minimal pada beban kerja aplikasi. Misalnya, dengan asumsi nilai String 500 byte, Anda biasanya dapat mengharapkan latensi 450 mikrodetik tambahan untuk permintaan baca ke data yang disimpan di SSD dibandingkan dengan permintaan baca ke data dalam memori.

Dengan ukuran node tiering data terbesar (db.r6gd.8xlarge), Anda dapat menyimpan hingga ~500 TB dalam satu cluster 500 node (250 TB saat menggunakan 1 replika baca). Untuk tiering Data, MemoryDB menyimpan 19% memori (DRAM) per node untuk penggunaan non-data. Tiering data kompatibel dengan semua perintah Redis OSS dan struktur data yang didukung di MemoryDB. Anda tidak memerlukan perubahan sisi klien untuk menggunakan fitur ini.

Praktik terbaik

Kami merekomendasikan praktik terbaik berikut:

  • Tingkatan data sangat ideal untuk beban kerja yang mengakses hingga 20 persen dari keseluruhan set datanya secara rutin, dan untuk aplikasi yang dapat menoleransi latensi tambahan saat mengakses data di SSD.

  • Saat menggunakan kapasitas SSD yang tersedia pada simpul bertingkatan data, kami menyarankan agar ukuran nilai lebih besar dari ukuran kunci. Ukuran nilai tidak boleh lebih besar dari 128MB; jika tidak, itu tidak akan dipindahkan ke disk. Ketika item dipindahkan antara DRAM dan SSD, kunci akan selalu tetap dalam memori dan hanya nilai yang dipindahkan ke tingkat SSD.

Batasan

Tingkatan data memiliki batasan berikut:

  • Jenis node yang Anda gunakan harus berasal dari keluarga r6gd, yang tersedia di wilayah berikut:us-east-2,,,,us-east-1,us-west-2,us-west-1,eu-west-1,eu-west-3,eu-central-1, ap-northeast-1 ap-southeast-1ap-southeast-2, ap-south-1 dan. ca-central-1 sa-east-1

  • Anda tidak dapat memulihkan snapshot cluster r6gd ke cluster lain kecuali jika ia juga menggunakan r6gd.

  • Anda tidak dapat mengekspor snapshot ke Amazon S3 untuk kluster tingkat data.

  • Penyimpanan forkless tidak didukung.

  • Penskalaan tidak didukung dari klaster tingkatan data (misalnya, sebuah klaster yang menggunakan jenis simpul r6gd) ke klaster yang tidak menggunakan tingkatan data (misalnya, klaster yang menggunakan jenis simpul r6g).

  • Tingkatan data hanya mendukung kebijakan maxmemory volatile-lru, allkeys-lru, dan noeviction.

  • Item yang lebih besar dari 128 MiB tidak dipindahkan ke SSD.

Harga tingkatan data

Node R6gd memiliki kapasitas total 5x lebih besar (memori+SSD) dan dapat membantu Anda mencapai penghematan biaya penyimpanan lebih dari 60 persen saat berjalan pada pemanfaatan maksimum dibandingkan dengan node R6g (hanya memori). Untuk informasi lebih lanjut, lihat harga MemoryDB.

Pemantauan

MemoryDB menawarkan metrik yang dirancang khusus untuk memantau cluster kinerja yang menggunakan tingkatan data. Untuk memantau rasio item dalam DRAM dibandingkan dengan SSD, Anda dapat menggunakan CurrItems metrik di.. Metrik untuk MemoryDB Anda dapat menghitung persentase sebagai:(CurrItems with Dimension: Tier = Memory * 100) / (CurrItems with no dimension filter). Ketika persentase item dalam memori berkurang di bawah 5 persen, kami sarankan Anda mempertimbangkannyaPenskalaan cluster MemoryDB.

Untuk informasi selengkapnya, lihat Metrik untuk klaster MemoryDB yang menggunakan tingkat data di. Metrik untuk MemoryDB

Menggunakan tingkatan data

Saat membuat cluster, Anda menggunakan tiering data dengan memilih tipe node dari keluarga r6gd, seperti db.r6gd.xlarge. Memilih jenis simpul tersebut secara otomatis mengaktifkan tingkatan data.

Untuk informasi tentang cara membuat klaster, lihat Langkah 1: Buat cluster.

Saat membuat cluster menggunakan AWS CLI, Anda menggunakan tiering data dengan memilih tipe node dari keluarga r6gd, seperti db.r6gd.xlarge dan mengatur parameter. --data-tiering

Anda tidak dapat membatalkan penggunaan tingkatan data ketika memilih jenis simpul dari keluarga r6gd. Jika Anda mengatur parameter --no-data-tiering, operasi akan gagal.

Untuk Linux, macOS, atau Unix:

aws memorydb create-cluster \ --cluster-name my-cluster \ --node-type db.r6gd.xlarge \ --acl-name my-acl \ --subnet-group my-sg \ --data-tiering

Untuk Windows:

aws memorydb create-cluster ^ --cluster-name my-cluster ^ --node-type db.r6gd.xlarge ^ --acl-name my-acl ^ --subnet-group my-sg --data-tiering

Setelah menjalankan operasi ini, Anda akan melihat respons seperti yang berikut ini:

{ "Cluster": { "Name": "my-cluster", "Status": "creating", "NumberOfShards": 1, "AvailabilityMode": "MultiAZ", "ClusterEndpoint": { "Port": 6379 }, "NodeType": "db.r6gd.xlarge", "EngineVersion": "6.2", "EnginePatchVersion": "6.2.6", "ParameterGroupName": "default.memorydb-redis6", "ParameterGroupStatus": "in-sync", "SubnetGroupName": "my-sg", "TLSEnabled": true, "ARN": "arn:aws:memorydb:us-east-1:xxxxxxxxxxxxxx:cluster/my-cluster", "SnapshotRetentionLimit": 0, "MaintenanceWindow": "wed:03:00-wed:04:00", "SnapshotWindow": "04:30-05:30", "ACLName": "my-acl", "DataTiering":"true", "AutoMinorVersionUpgrade": true } }

Memulihkan data dari snapshot ke cluster dengan tiering data diaktifkan

Anda dapat memulihkan snapshot ke cluster baru dengan tiering data yang diaktifkan menggunakan (Console), (AWS CLI) atau (MemoryDB API). Ketika Anda membuat sebuah klaster menggunakan jenis simpul dalam keluarga r6gd, tingkatan data diaktifkan.

Memulihkan data dari snapshot ke cluster dengan tiering data diaktifkan (konsol)

Untuk memulihkan snapshot ke cluster baru dengan tiering data diaktifkan (konsol), ikuti langkah-langkah di Memulihkan dari snapshot (Konsol)

Perhatikan bahwa untuk mengaktifkan data-tiering, Anda perlu memilih jenis node dari keluarga r6gd.

Saat membuat cluster menggunakan AWS CLI, tiering data secara default digunakan dengan memilih tipe node dari keluarga r6gd, seperti db.r6gd.xlarge dan mengatur parameter. --data-tiering

Anda tidak dapat membatalkan penggunaan tingkatan data ketika memilih jenis simpul dari keluarga r6gd. Jika Anda mengatur parameter --no-data-tiering, operasi akan gagal.

Untuk Linux, macOS, atau Unix:

aws memorydb create-cluster \ --cluster-name my-cluster \ --node-type db.r6gd.xlarge \ --acl-name my-acl \ --subnet-group my-sg \ --data-tiering \ --snapshot-name my-snapshot

Untuk Linux, macOS, atau Unix:

aws memorydb create-cluster ^ --cluster-name my-cluster ^ --node-type db.r6gd.xlarge ^ --acl-name my-acl ^ --subnet-group my-sg ^ --data-tiering ^ --snapshot-name my-snapshot

Setelah menjalankan operasi ini, Anda akan melihat respons seperti yang berikut ini:

{ "Cluster": { "Name": "my-cluster", "Status": "creating", "NumberOfShards": 1, "AvailabilityMode": "MultiAZ", "ClusterEndpoint": { "Port": 6379 }, "NodeType": "db.r6gd.xlarge", "EngineVersion": "6.2", "EnginePatchVersion": "6.2.6", "ParameterGroupName": "default.memorydb-redis6", "ParameterGroupStatus": "in-sync", "SubnetGroupName": "my-sg", "TLSEnabled": true, "ARN": "arn:aws:memorydb:us-east-1:xxxxxxxxxxxxxx:cluster/my-cluster", "SnapshotRetentionLimit": 0, "MaintenanceWindow": "wed:03:00-wed:04:00", "SnapshotWindow": "04:30-05:30", "ACLName": "my-acl", "DataTiering": "true" }