ИздаванС Π½Π° FerretDB 0.3, изпълнСниС Π½Π° MongoDB, Π±Π°Π·ΠΈΡ€Π°Π½ΠΎ Π½Π° Π‘Π£Π‘Π” PostgreSQL

ΠŸΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½Π° Π΅ вСрсията Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° FerretDB 0.3, която Π²ΠΈ позволява Π΄Π° Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Π°Π½Π°Ρ‚Π° към Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈ Π‘Π£Π‘Π” MongoDB с PostgreSQL, Π±Π΅Π· Π΄Π° ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² ΠΊΠΎΠ΄Π° Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ. FerretDB Π΅ Π²Π½Π΅Π΄Ρ€Π΅Π½ ΠΊΠ°Ρ‚ΠΎ прокси ΡΡŠΡ€Π²ΡŠΡ€, ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π° обаТданията към MongoDB Π² SQL заявки към PostgreSQL, ΠΊΠΎΠ΅Ρ‚ΠΎ Π²ΠΈ позволява Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ PostgreSQL ΠΊΠ°Ρ‚ΠΎ дСйствитСлно Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅. ΠšΠΎΠ΄ΡŠΡ‚ Π΅ написан Π½Π° Go ΠΈ сС разпространява ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π· Apache 2.0.

НСобходимостта ΠΎΡ‚ миграция ΠΌΠΎΠΆΠ΅ Π΄Π° възникнС във Π²Ρ€ΡŠΠ·ΠΊΠ° с ΠΏΡ€Π΅Ρ…ΠΎΠ΄Π° Π½Π° MongoDB към патСнтования SSPL Π»ΠΈΡ†Π΅Π½Π·, ΠΊΠΎΠΉΡ‚ΠΎ сС основава Π½Π° AGPLv3 Π»ΠΈΡ†Π΅Π½Π·Π°, Π½ΠΎ Π½Π΅ Π΅ ΠΎΡ‚Π²ΠΎΡ€Π΅Π½, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° дискриминационно изискванС Π΄Π° сС доставя ΠΏΠΎΠ΄ SSPL Π»ΠΈΡ†Π΅Π½Π· Π½Π΅ само самия ΠΊΠΎΠ΄ Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ , Π½ΠΎ ΡΡŠΡ‰ΠΎ ΠΈ ΠΈΠ·Ρ…ΠΎΠ΄Π½ΠΈΡ‚Π΅ ΠΊΠΎΠ΄ΠΎΠ²Π΅ Π½Π° всички ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ, участващи Π² прСдоставянСто Π½Π° ΠΎΠ±Π»Π°Ρ‡Π½Π° услуга.

ΠžΡΠ½ΠΎΠ²Π½Π°Ρ‚Π° Ρ†Π΅Π»Π΅Π²Π° аудитория Π½Π° FerretDB са ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡ‚Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Π½Π° MongoDB Π² своитС прилоТСния, Π½ΠΎ искат Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ напълно ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ софтуСрСн стСк. На настоящия Π΅Ρ‚Π°ΠΏ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° FerretDB всС ΠΎΡ‰Π΅ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° само част ΠΎΡ‚ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈΡ‚Π΅ Π½Π° MongoDB, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π°ΠΉ-чСсто сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π² Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΈΡ‚Π΅ прилоТСния. Π’ Π±ΡŠΠ΄Π΅Ρ‰Π΅ Ρ‚Π΅ ΠΏΠ»Π°Π½ΠΈΡ€Π°Ρ‚ Π΄Π° постигнат пълна ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ с Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΈΡ‚Π΅ Π·Π° MongoDB ΠΈ Π΄Π° прСдоставят Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° FerretDB ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π΅Π½ замСститСл Π½Π° MongoDB.

MongoDB Π·Π°Π΅ΠΌΠ° ниша ΠΌΠ΅ΠΆΠ΄Ρƒ Π±ΡŠΡ€Π·ΠΈ ΠΈ ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΈ систСми, ΠΊΠΎΠΈΡ‚ΠΎ работят с Π΄Π°Π½Π½ΠΈ Π·Π° ΠΊΠ»ΡŽΡ‡/стойност ΠΈ Ρ€Π΅Π»Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ Π‘Π£Π‘Π”, ΠΊΠΎΠΈΡ‚ΠΎ са Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΈ ΠΈ лСсни Π·Π° заявки. MongoDB ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈ във Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π° JSON, ΠΈΠΌΠ° доста гъвкав Π΅Π·ΠΈΠΊ Π·Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° заявки, ΠΌΠΎΠΆΠ΅ Π΄Π° създава индСкси Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΈ, осигурява Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈ Π΄Π²ΠΎΠΈΡ‡Π½ΠΈ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ, ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° рСгистриранС Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π·Π° промяна ΠΈ добавянС Π½Π° Π΄Π°Π½Π½ΠΈ към Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ, ΠΌΠΎΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π² ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΈΠ΅ с ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ°Ρ‚Π° Map/Reduce, ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° рСпликация ΠΈ ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° устойчиви Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.

Π˜Π·Π΄Π°Π½ΠΈΠ΅Ρ‚ΠΎ FerretDB 0.3 въвСдС ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° findAndModify, която ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚, Π½ΠΎ Π³ΠΎ Π²Ρ€ΡŠΡ‰Π° към ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π½Π°Ρ‚Π° ΠΌΡƒ вСрсия. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ Π·Π° Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΠΎΠ»Π΅Ρ‚ΠΎ $inc ΠΈ $set са Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈ. Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° сортиранС Π½Π° скаларни Ρ‚ΠΈΠΏΠΎΠ²Π΅ Π΄Π°Π½Π½ΠΈ.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€