Mesin Amazon Neptunus Versi 1.2.0.0 (2022-07-21) - Amazon Neptune

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

Mesin Amazon Neptunus Versi 1.2.0.0 (2022-07-21)

Pada 2022-07-21, engine versi 1.2.0.0 umumnya 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:

  • Engine release 1.2.0.0 memperkenalkan format baru untuk grup parameter kustom dan grup parameter cluster kustom. Akibatnya, jika Anda memutakhirkan dari versi engine lebih awal dari 1.2.0.0 ke engine versi 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.2 Rilis sebelumnya menggunakan keluarga grup parameterneptune1, dan grup parameter tersebut tidak akan berfungsi dengan rilis 1.2.0.0 ke atas. Lihat Grup parameter Amazon Neptunus untuk informasi selengkapnya.

  • Engine release 1.2.0.0 juga memperkenalkan format baru untuk membatalkan log. Akibatnya, setiap log pembatalan yang dibuat oleh versi mesin sebelumnya harus dibersihkan dan UndoLogsListSize CloudWatch metrik harus jatuh ke nol sebelum peningkatan apa pun dari versi yang lebih awal dari 1.2.0.0 dapat dimulai. Jika ada terlalu banyak catatan log undo (200.000 atau lebih) saat Anda mencoba memulai pembaruan, upaya pemutakhiran dapat habis sementara menunggu pembersihan log pembatalan selesai.

    Anda dapat mempercepat tingkat pembersihan dengan memutakhirkan instance penulis cluster, di mana pembersihan terjadi. Melakukan itu sebelum mencoba memutakhirkan dapat menurunkan jumlah log batal sebelum Anda mulai. Meningkatkan ukuran penulis ke jenis instans 24XL dapat meningkatkan tingkat pembersihan Anda menjadi lebih dari satu juta catatan per jam.

    Jika UndoLogsListSize CloudWatch metriknya sangat besar, membuka kasus dukungan dapat membantu Anda mengeksplorasi 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 membutuhkan jalur sumber daya untuk penandatanganan IAM. Di Java, pengaturan jalur sumber daya mungkin terlihat seperti ini:request.setResourcePath("/openCypher"));. Dalam bahasa lain, /openCypher dapat ditambahkan ke URI endpoint. 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 Wilayah AWS beberapa, 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 Neptunus daripada yang telah tersedia sebelumnya, berdasarkan tindakan bidang data. Ini adalah perubahan besar dalam kebijakan IAM yang ada yang didasarkan pada tindakan yang tidak digunakan lagi harus disesuaikan untuk menggunakan connect tindakan bidang data yang lebih terperinci. Lihat Jenis IAM kebijakan.

  • Peningkatan ketersediaan instance pembaca. Sebelumnya, ketika instance penulis dimulai ulang, semua instance pembaca di cluster Neptunus juga otomatis dimulai ulang. Dimulai dengan rilis mesin 1.2.0.0, instance pembaca tetap aktif setelah penulis memulai ulang, yang meningkatkan ketersediaan pembaca. Instance pembaca dapat dimulai ulang secara terpisah untuk mengambil perubahan grup parameter. Lihat Mem-boot ulang instans DB di Amazon Neptunus.

  • Menambahkan parameter cluster DB neptune_streams_expiry_days baru yang memungkinkan Anda mengatur jumlah hari rekaman streaming 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 langkah-langkah limit() 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 yang mahal dalam DFE dengan memparalelkannya.

  • Menambahkan dukungan by() modulasi OrderGlobalStep 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 query Gremlin memiliki filter kosong, seperti ini:

    g.V().hasId(P.within([]))
    g.V().hasId([])
  • Perpesanan kesalahan yang ditingkatkan ketika kueri SPARQL menggunakan nilai numerik yang terlalu besar untuk diwakili 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 untuk,, dan untuk hasKey() berbagai predikat untuk string/URI di dalamnya. hasLabel() has() Ini memengaruhi kueri seperti berikut:

    // 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 OpenCypher khusus Neptunus yang menggabungkan string dalam daftar menjadi satu string.

  • Memperbarui kebijakan terkelola Neptunus untuk menyertakan izin akses data dan izin untuk API database global yang baru.

Perbaikan Cacat dalam Rilis Mesin Ini

  • Memperbaiki bug di mana permintaan HTTP tanpa tipe 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 parser Turtle RDF di mana kombinasi tertentu dari data Unicode menyebabkan kegagalan.

  • Memperbaiki bug SPARQL di mana kombinasi GRAPH dan SELECT klausa tertentu menghasilkan hasil kueri yang salah.

  • Memperbaiki bug Gremlin yang menyebabkan masalah kebenaran untuk kueri yang menggunakan langkah filter apa pun dalam langkah gabungan, seperti berikut ini:

    g.V("1").union(hasLabel("person"), out())
  • Memperbaiki bug Gremlin di mana count() both().simplePath() akan 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 bisa salah ditutup jika dikirimkan setelah permintaan gagal.

  • Memperbaiki bug OpenCypher yang dapat menyebabkan kesalahan internal dilemparkan saat kueri yang mengembalikan nilai konstan dikirimkan.

  • Memperbaiki bug dalam detail penjelasan sehingga subquery DFE Time(ms) sekarang dengan benar menjumlahkan waktu CPU operator dalam subquery DFE. Pertimbangkan kutipan berikut menjelaskan output 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 dari tabel bawah bertambah hingga 0,36 ms ().04 + .29 + .01 + .02 = .36. Ketika Anda menambahkan ke waktu koordinasi untuk subquery (.36 + .026 = .386), Anda mendapatkan hasil yang mendekati waktu untuk subQuery direkam di kolom terakhir dari tabel atas, yaitu 0.38 ms.

Versi Kueri Bahasa 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.2

  • Gremlin versi terbaru didukung: 3.5.4

  • Versi OpenCypher: Neptune-9.0.20190305-1.0

  • Versi 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 terlebih dahulu ditingkatkan ke rilis terbaru 1.1.1.0 sebelum dapat ditingkatkan ke. 1.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 terbaru dari. 1.1.1.0

Sebelum memutakhirkan, Anda juga harus membuat ulang grup parameter cluster DB kustom yang telah Anda gunakan dengan versi sebelumnya, menggunakan keluarga grup parameter. neptune1.2 Lihat Grup parameter Amazon Neptunus untuk informasi selengkapnya.

Jika Anda memutakhirkan terlebih dahulu untuk merilis 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 hingga tindakan yang tertunda selesai, atau segera picu jendela pemeliharaan agar 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 upgrade versi utama, allow-major-version-upgrade parameter diperlukan. Juga, pastikan untuk menyertakan versi mesin atau mesin Anda dapat ditingkatkan ke versi yang berbeda.

Jika klaster Anda menggunakan grup parameter cluster kustom, pastikan untuk menyertakan paramater 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 melanggar 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 meningkatkan

Sebelum melakukan upgrade, kami sangat menyarankan agar Anda selalu membuat snapshot manual cluster DB Anda. Memiliki snapshot otomatis hanya menawarkan perlindungan jangka pendek, sedangkan snapshot manual tetap tersedia sampai Anda menghapusnya secara eksplisit.

Dalam kasus tertentu Neptunus membuat snapshot manual untuk Anda sebagai bagian dari proses peningkatan, tetapi Anda tidak harus bergantung pada 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-pemutakhiran, Anda dapat secara eksplisit menghapus snapshot manual yang Anda buat sendiri, serta snapshot manual yang mungkin dibuat Neptunus. Jika Neptunus membuat snapshot manual, itu akan memiliki nama yang dimulai preupgrade dengan, diikuti dengan nama cluster DB Anda, versi mesin sumber, versi mesin target, dan tanggal.

catatan

Jika Anda mencoba memutakhirkan saat tindakan yang tertunda sedang dalam proses, 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 hingga tindakan yang tertunda selesai, atau segera picu jendela pemeliharaan agar 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 Support AWS tersedia di forum komunitas dan melalui Premium Support AWS.