Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mesin Amazon Neptune Versi 1.2.0.0 (2022-07-21)
Pada 2022-07-21, versi mesin 1.2.0.0 secara umum sedang digunakan. Harap dicatat bahwa perlu beberapa hari agar rilis baru tersedia di setiap wilayah.
catatan
Jika memutakhirkan dari versi mesin lebih awal dari 1.2.0.0:
-
Rilis mesin 1.2.0.0 memperkenalkan format baru untuk grup parameter kustom dan grup parameter cluster kustom. Akibatnya, jika Anda memutakhirkan dari versi mesin yang lebih awal dari 1.2.0.0 ke versi mesin 1.2.0.0 atau lebih tinggi, Anda harus membuat ulang semua grup parameter kustom yang ada dan grup parameter cluster kustom menggunakan keluarga grup parameter.
neptune1.2Rilis sebelumnya menggunakan keluarga grup parameterneptune1, dan grup parameter tersebut tidak akan berfungsi dengan rilis 1.2.0.0 ke atas. Untuk informasi selengkapnya, lihat Grup parameter Amazon Neptunus. -
Rilis mesin 1.2.0.0 juga memperkenalkan format baru untuk undo log. Akibatnya, setiap log undo yang dibuat oleh versi engine sebelumnya harus dibersihkan dan UndoLogsListSize CloudWatch metrik harus turun ke nol sebelum peningkatan dari versi yang lebih awal dari 1.2.0.0 dapat dimulai. Jika ada terlalu banyak catatan log batalkan (200.000 atau lebih) saat Anda mencoba memulai pembaruan, upaya pemutakhiran dapat habis sementara menunggu pembersihan log undo selesai.
Anda dapat mempercepat laju pembersihan dengan memutakhirkan instance penulis cluster, yang merupakan tempat pembersihan terjadi. Melakukan hal itu sebelum mencoba memutakhirkan dapat menurunkan jumlah log undo sebelum Anda mulai. Meningkatkan ukuran penulis ke jenis instans 24XL dapat meningkatkan tingkat pembersihan Anda menjadi lebih dari satu juta catatan per jam.
Jika
UndoLogsListSizeCloudWatch metriknya sangat besar, membuka kasus dukungan dapat membantu Anda menjelajahi strategi tambahan untuk menurunkannya. -
Akhirnya, ada perubahan besar dalam rilis 1.2.0.0 yang mempengaruhi kode sebelumnya yang menggunakan protokol Bolt dengan otentikasi IAM. Dimulai dengan rilis 1.2.0.0, Bolt memerlukan jalur sumber daya untuk penandatanganan IAM. Di Java, pengaturan jalur sumber daya mungkin terlihat seperti ini:
request.setResourcePath("/openCypher"));. Dalam bahasa lain,/openCypherdapat ditambahkan ke URI titik akhir. Lihat Menggunakan protokol Bolt sebagai contoh.
Rilis Patch Berikutnya untuk Rilis Ini
Fitur Baru dalam Rilis Mesin Ini
Menambahkan dukungan untuk database global. Database global Neptunus mencakup beberapa Wilayah AWS, dan terdiri dari cluster DB primer di satu wilayah, dan hingga lima cluster DB sekunder di wilayah lain.
Menambahkan dukungan untuk kontrol akses yang lebih terperinci dalam kebijakan IAM Neptune daripada yang tersedia sebelumnya, berdasarkan tindakan bidang data. Ini adalah perubahan besar karena kebijakan IAM yang ada yang didasarkan pada tindakan yang tidak digunakan lagi harus disesuaikan untuk menggunakan
connecttindakan bidang data yang lebih terperinci. Lihat Jenis kebijakan IAM.Peningkatan ketersediaan instance pembaca. Sebelumnya, ketika instance penulis dimulai ulang, semua instance pembaca di cluster Neptunus juga secara otomatis dimulai ulang. Dimulai dengan rilis mesin 1.2.0.0, instance pembaca tetap aktif setelah restart penulis, yang meningkatkan ketersediaan pembaca. Instans pembaca dapat dimulai ulang secara terpisah untuk mengambil perubahan grup parameter. Lihat Mem-boot ulang instans DB di Amazon Neptunus.
Menambahkan parameter cluster Neptune_streams_expiry_days DB baru yang memungkinkan Anda mengatur jumlah hari rekaman aliran disimpan di server sebelum dihapus. Kisarannya adalah 1 hingga 90, dan defaultnya adalah 7.
Perbaikan dalam Rilis Mesin Ini
Peningkatan kinerja serialisasi Gremlin untuk kueri. ByteCode
Neptunus sekarang memproses predikat teks menggunakan mesin DFE, untuk meningkatkan kinerja.
Neptunus sekarang memproses
limit()langkah-langkah Gremlin menggunakan mesin DFE, termasuk batas traversal non-terminal dan anak.Mengubah penanganan DFE dari
union()langkah Gremlin untuk bekerja dengan fitur baru lainnya, yang berarti bahwa node referensi muncul di profil kueri seperti yang diharapkan.Peningkatan kinerja hingga faktor 5 dari beberapa operasi gabungan mahal dalam DFE dengan memparalelkannya.
Men
by()ambahkan dukungan modulasiOrderGlobalStep order(global)untuk mesin Gremlin DFE.Menambahkan tampilan nilai statis yang disuntikkan dalam menjelaskan detail untuk DFE.
Peningkatan kinerja saat memangkas pola duplikat.
Menambahkan dukungan pelestarian pesanan di mesin Gremlin DFE.
-
Meningkatkan kinerja kueri Gremlin yang memiliki filter kosong, seperti ini:
g.V().hasId(P.within([]))g.V().hasId([]) Peningkatan pesan kesalahan saat kueri SPARQL menggunakan nilai numerik yang terlalu besar untuk diwakili oleh Neptunus secara internal.
Peningkatan kinerja untuk menjatuhkan simpul dengan tepi terkait dengan mengurangi pencarian indeks saat aliran dinonaktifkan.
-
Dukungan DFE yang diperluas ke lebih banyak varian
has()langkah, khususnya ke,hasKey()hasLabel(), dan untuk menjangkau predikat untuk strings/URIs di dalam.has()Ini memengaruhi kueri seperti berikut ini:// hasKey() on properties g.V().properties().hasKey("name") g.V().properties().has(T.key, TextP.startingWith("a")) g.E().properties().hasKey("weight") g.E().properties().hasKey(TextP.containing("t")) // hasLabel() on vertex properties g.V().properties().hasLabel("name") // range predicates on ID and Label fields g.V().has(T.label, gt("person")) g.E().has(T.id, lte("(an ID value)")) Menambahkan join() fungsi Neptune-specific OpenCypher yang menggabungkan string dalam daftar menjadi satu string.
Memperbarui kebijakan yang dikelola Neptune untuk menyertakan izin akses data dan izin untuk API database global baru.
Perbaikan Cacat dalam Rilis Mesin Ini
Memperbaiki bug di mana permintaan HTTP tanpa jenis konten yang ditentukan akan secara otomatis gagal.
Memperbaiki bug SPARQL di pengoptimal kueri yang mencegah penggunaan panggilan layanan di dalam kueri.
Memperbaiki bug SPARQL di Turtle RDF parser di mana kombinasi tertentu dari data Unicode menyebabkan kegagalan.
Memperbaiki bug SPARQL di mana kombinasi
GRAPHdanSELECTklausa tertentu menghasilkan hasil kueri yang salah.-
Memperbaiki bug Gremlin yang menyebabkan masalah kebenaran untuk kueri yang menggunakan langkah filter apa pun dalam langkah penyatuan, seperti berikut ini:
g.V("1").union(hasLabel("person"), out()) Memperbaiki bug Gremlin di mana
both().simplePath()akancount()menghasilkan dua kali lipat jumlah hasil aktual yang dikembalikan tanpa.count()Memperbaiki bug OpenCypher di mana pengecualian ketidakcocokan tanda tangan yang salah dihasilkan oleh server untuk permintaan Bolt ke cluster dengan otentikasi IAM diaktifkan.
Memperbaiki bug OpenCypher di mana kueri menggunakan HTTP keep-alive dapat ditutup dengan salah jika dikirimkan setelah permintaan gagal.
Memperbaiki bug OpenCypher yang dapat menyebabkan kesalahan internal muncul ketika kueri yang mengembalikan nilai konstan dikirimkan.
-
Memperbaiki bug dalam detail penjelasan sehingga subkueri DFE
Time(ms)sekarang dengan benar menjumlahkan waktu CPU operator dalam subkueri DFE. Pertimbangkan kutipan berikut dari output penjelasan sebagai contoh:subQuery1 ╔════╤════════╤════════╤═══════════════════════╤═══════════════════════════════════╤══════╤══════════╤═══════════╤═══════╤═══════════╗ ║ ID │ Out #1 │ Out #2 │ Name │ Arguments │ Mode │ Units In │ Units Out │ Ratio │ Time (ms) ║ ╠════╪════════╪════════╪═══════════════════════╪═══════════════════════════════════╪══════╪══════════╪═══════════╪═══════╪═══════════╣ ... ╟────┼────────┼────────┼───────────────────────┼───────────────────────────────────┼──────┼──────────┼───────────┼───────┼───────────╢ ║ 1 │ 2 │ - │ DFEChunkLocalSubQuery │ subQuery=...graph#336e.../graph_1 │ - │ 1 │ 1 │ 1.00 │ 0.38 ║ ║ │ │ │ │ coordinationTime(ms)=0.026 │ │ │ │ │ ║ ╟────┼────────┼────────┼───────────────────────┼───────────────────────────────────┼──────┼──────────┼───────────┼───────┼───────────╢ ... subQuery=...graph#336e.../graph_1 ╔════╤════════╤════════╤═══════════════════════╤═══════════════════════════════════╤══════╤══════════╤═══════════╤═══════╤═══════════╗ ║ ID │ Out #1 │ Out #2 │ Name │ Arguments │ Mode │ Units In │ Units Out │ Ratio │ Time (ms) ║ ╠════╪════════╪════════╪═══════════════════════╪═══════════════════════════════════╪══════╪══════════╪═══════════╪═══════╪═══════════╣ ║ 0 │ 1 │ - │ DFESolutionInjection │ solutions=[?100 -> [-10^^<LONG>]] │ - │ 0 │ 1 │ 0.00 │ 0.04 ║ ║ │ │ │ │ outSchema=[?100] │ │ │ │ │ ║ ╟────┼────────┼────────┼───────────────────────┼───────────────────────────────────┼──────┼──────────┼───────────┼───────┼───────────╢ ║ 1 │ 3 │ - │ DFERelationalJoin │ joinVars=[] │ - │ 2 │ 1 │ 0.50 │ 0.29 ║ ╟────┼────────┼────────┼───────────────────────┼───────────────────────────────────┼──────┼──────────┼───────────┼───────┼───────────╢ ║ 2 │ 1 │ - │ DFESolutionInjection │ outSchema=[] │ - │ 0 │ 1 │ 0.00 │ 0.01 ║ ╟────┼────────┼────────┼───────────────────────┼───────────────────────────────────┼──────┼──────────┼───────────┼───────┼───────────╢ ║ 3 │ - │ - │ DFEDrain │ - │ - │ 1 │ 0 │ 0.00 │ 0.02 ║ ╚════╧════════╧════════╧═══════════════════════╧═══════════════════════════════════╧══════╧══════════╧═══════════╧═══════╧═══════════╝Waktu SubQuery di kolom terakhir tabel bawah bertambah hingga 0,36 ms ()
.04 + .29 + .01 + .02 = .36. Ketika Anda menambahkan waktu koordinasi untuk subquery (.36 + .026 = .386) itu, Anda mendapatkan hasil yang mendekati waktu untuk subQuery yang direkam di kolom terakhir tabel atas, yaitu0.38ms.
Query-Language Versi yang Didukung dalam Rilis Ini
Sebelum memutakhirkan cluster DB ke versi 1.2.0.0, pastikan proyek Anda kompatibel dengan versi bahasa kueri ini:
Versi paling awal Gremlin didukung:
3.5.2Gremlin versi terbaru didukung:
3.5.4Versi OpenCypher:
Neptune-9.0.20190305-1.0Versi SPARQL:
1.1
Tingkatkan Jalur ke Rilis Mesin 1.2.0.0
Karena ini adalah rilis mesin utama, tidak ada peningkatan otomatis untuk itu.
Anda hanya dapat meningkatkan untuk merilis 1.2.0.0 secara manual, dari rilis patch terbaru dari rilis mesin 1.1.1.0. Rilis mesin sebelumnya harus ditingkatkan terlebih dahulu ke rilis terbaru 1.1.1.0 sebelum dapat ditingkatkan1.2.0.0.
Oleh karena itu, sebelum Anda mencoba memutakhirkan ke rilis ini, harap konfirmasikan bahwa Anda sedang menjalankan rilis patch terbaru dari rilis1.1.1.0. Jika tidak, mulailah dengan memutakhirkan ke rilis patch terbaru1.1.1.0.
Sebelum memutakhirkan, Anda juga harus membuat ulang grup parameter cluster DB kustom yang telah Anda gunakan dengan versi sebelumnya, menggunakan keluarga neptune1.2 grup parameter. Untuk informasi selengkapnya, lihat Grup parameter Amazon Neptunus.
Jika Anda memutakhirkan terlebih dahulu untuk rilis 1.1.1.0 dan kemudian segera ke1.2.0.0, Anda mungkin mengalami kesalahan seperti berikut:
We're sorry, your request to modify DB cluster (cluster identifier) has failed. Cannot modify engine version because instance (instance identifier) is running on an old configuration. Apply any pending maintenance actions on the instance before proceeding with the upgrade.
Jika Anda mengalami kesalahan ini, tunggu tindakan yang tertunda selesai, atau segera picu jendela pemeliharaan untuk membiarkan pemutakhiran sebelumnya selesai (lihatMempertahankan Cluster DB Amazon Neptunus Anda).
Peningkatan ke Rilis Ini
Jika klaster DB menjalankan versi mesin yang ada peningkatan jalur untuk rilis ini, klaster tersebut sekarang memenuhi syarat untuk ditingkatkan. Anda dapat meningkatkan klaster yang memenuhi syarat menggunakan operasi klaster DB pada konsol atau dengan menggunakan SDK. Perintah CLI berikut akan meningkatkan klaster yang memenuhi syarat dengan segera:
Untuk Linux, macOS, atau Unix:
aws neptune modify-db-cluster \ --db-cluster-identifier(your-neptune-cluster)\ --engine-version 1.2.0.0 \ --allow-major-version-upgrade \ --apply-immediately
Untuk Windows:
aws neptune modify-db-cluster ^ --db-cluster-identifier(your-neptune-cluster)^ --engine-version 1.2.0.0 ^ --allow-major-version-upgrade ^ --apply-immediately
Alih-alih--apply-immediately, Anda dapat menentukan--no-apply-immediately. Untuk melakukan peningkatan versi utama, parameter allow-major-version-upgrade diperlukan. Juga, pastikan untuk menyertakan versi mesin atau mesin Anda mungkin ditingkatkan ke versi yang berbeda.
Jika cluster Anda menggunakan grup parameter cluster kustom, pastikan untuk menyertakan parameter ini untuk menentukannya:
--db-cluster-parameter-group-name(name of the custom DB cluster parameter group)
Demikian pula, jika ada instance di cluster yang menggunakan grup parameter DB kustom, pastikan untuk menyertakan parameter ini untuk menentukannya:
--db-instance-parameter-group-name(name of the custom instance parameter group)
Selalu uji sebelum Anda meningkatkan
Saat versi mesin Neptunus mayor atau minor baru dirilis, selalu uji aplikasi Neptunus Anda terlebih dahulu sebelum memutakhirkannya. Bahkan peningkatan kecil dapat memperkenalkan fitur atau perilaku baru yang akan memengaruhi kode Anda.
Mulailah dengan membandingkan halaman catatan rilis dari versi Anda saat ini dengan versi yang ditargetkan untuk melihat apakah akan ada perubahan dalam versi bahasa kueri atau perubahan besar lainnya.
Cara terbaik untuk menguji versi baru sebelum memutakhirkan cluster DB produksi Anda adalah dengan mengkloning cluster produksi Anda sehingga klon menjalankan versi mesin baru. Anda kemudian dapat menjalankan kueri pada klon tanpa mempengaruhi cluster DB produksi.
Selalu buat snapshot manual sebelum Anda memutakhirkan
Sebelum melakukan upgrade, kami sangat menyarankan agar Anda selalu membuat snapshot manual dari cluster DB Anda. Memiliki snapshot otomatis hanya menawarkan perlindungan jangka pendek, sedangkan snapshot manual tetap tersedia sampai Anda secara eksplisit menghapusnya.
Dalam kasus tertentu Neptunus membuat snapshot manual untuk Anda sebagai bagian dari proses peningkatan, tetapi Anda tidak boleh mengandalkan ini, dan harus membuat snapshot manual Anda sendiri dalam hal apa pun.
Ketika Anda yakin bahwa Anda tidak perlu mengembalikan cluster DB Anda ke status pra-upgrade, Anda dapat secara eksplisit menghapus snapshot manual yang Anda buat sendiri, serta snapshot manual yang mungkin telah dibuat Neptunus. Jika Neptune membuat snapshot manual, itu akan memiliki nama yang dimulai denganpreupgrade, diikuti oleh nama cluster DB Anda, versi mesin sumber, versi mesin target, dan tanggal.
catatan
Jika Anda mencoba memutakhirkan saat tindakan tertunda sedang dalam proses, Anda mungkin mengalami kesalahan seperti berikut ini:
We're sorry, your request to modify DB cluster (cluster identifier) has failed. Cannot modify engine version because instance (instance identifier) is running on an old configuration. Apply any pending maintenance actions on the instance before proceeding with the upgrade.
Jika Anda mengalami kesalahan ini, tunggu tindakan yang tertunda selesai, atau segera picu jendela pemeliharaan untuk membiarkan pemutakhiran sebelumnya selesai.
Untuk informasi selengkapnya tentang peningkatan versi mesin Anda, lihat Mempertahankan Cluster DB Amazon Neptunus Anda. Jika Anda memiliki pertanyaan atau masalah, tim AWS Dukungan tersedia di forum komunitas dan melalui AWS Dukungan Premium