PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Работи се към Postgres-XL 9.5

Беше натоварено няколко месеца, докато работим за сливане на Postgres-XL с най-новата и най-добра версия на PostgreSQL. Postgres-XL е разклонение с отворен код на PostgreSQL, което предоставя мащабируема платформа за OLTP и Business Intelligence. Текущата версия на Postgres-XL е базирана на PostgreSQL 9.2, така че липсват всички подобрения, направени в PostgreSQL през последните три години.

2ndQuadrant и други компании работят върху въвеждането на разпределена мащабируемост в ядрото на PostgreSQL, както и за изграждане на инструменти и разширения извън ядрото. Като част от това, Postgres-XL има редица функции, които бихме искали да върнем в ядрото на PostgreSQL, така че 2ndQuadrant пое задачата да актуализира кодовата база на Postgres-XL до най-новата версия на PostgreSQL като първа стъпка. След повече от 3 месеца работа, PostgreSQL 9.5 все още е в алфа фаза, така че искахме да дадем отчет за напредъка за това как върви работата. Трябва също да кажа вълшебните думи:Тази текуща работа по Postgres-XL е част от проекта AXLE, финансиран от Европейския съюз по споразумение за безвъзмездна помощ 318633.

Подготовка за сливането

Тъй като и PostgreSQL, и Postgres-XL използват GIT като система за контрол на източника, това прави процеса на сливане много по-опростен, тъй като GIT предоставя много инструменти за подпомагане на процеса. Но веднага щом опитахме сливането, се изправихме пред първото препятствие.

Разбрахме, че текущото хранилище на Postgres-XL е базирано на по-стара второстепенна версия 9.2 на PostgreSQL. Това означава, че е имало ангажименти и промени в главния клон на Postgres-XL, които или никога не са направени в главния клон на PostgreSQL, или са имали различни идентификатори на комит. Така че сливането с главен клон на PostgreSQL доведе до много повече конфликти, отколкото бихме очаквали. Така че първата задача, която трябва да изпълним, беше да пребазираме хранилището на Postgres-XL 9.2 на по-късна точка на комит. Това очевидно изискваше внимателно стъпване, като се уверите, че нищо не се счупи по време на процеса. След като направихме основното пребазиране, ние също обединихме всички корекции на грешки и подобрения на Postgres-XL, създадохме стабилен клон на Postgres-XL 9.2 и обедихме клона 9.2 с най-новата налична второстепенна версия на PostgreSQL 9.2.

Предизвикателства по време на сливането

Истинското сливане с главен клон на PostgreSQL също не беше лесна задача. Имайте предвид, че прескачахме 3 основни издания на PostgreSQL, които почти представляваха 3 години работа по разработката. За щастие, git-mergetool е много удобен за такива мащабни сливания. Можете да използвате любимия си редактор (vimdiff в нашия случай), за да видите добре конфликтите при сливане и да ги разрешите. Докато някои от конфликтите са ясни и изискват малки корекции, много от тях изискват внимателно четене и разбиране на кода. Въпреки че не е тривиално да поддържаме всички нови функции, ние се опитахме да запазим колкото е възможно повече и постигнахме доста успех.

Другото голямо предизвикателство беше сливането на промените в документацията. Тъй като проектът Postgres-XL създаде копие на съществуващата SGML документация, сливането на GIT с главния клон не доведе до никакви актуализации на копието. Това изисква ръчно сливане. За да гарантираме, че това няма да се изисква отново при бъдещи сливания, сега правим промените в документацията на място.

Какво следва?

Има много неща, които трябва да бъдат завършени, преди да можем да пуснем Postgres-XL 9.5 за широката публика:

  1. Подобрете покритието на регресионния тест за Postgres-XL
  2. Поправете грешки и добавете поддръжка за нови функции
  3. Правете систематични тестове и настройки на производителността
  4. Създайте клон на Postgres-XL 9.5 и се слеете с най-новия стабилен клон на PostgreSQL 9.5

Все още не сме готови за преглед на Postgres-XL, но очакваме Postgres-XL 9.5 Beta да бъде готов приблизително по същото време като PostgreSQL 9.5 Beta.

Потърсете следващата ми публикация в блога след около месец за следващата актуализация.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Разбиране на ограниченията за проверка в PostgreSQL

  2. Добавете колона с времеви клеймо с по подразбиране СЕГА() само за нови редове

  3. Заредете дъмпа на Postgres след докер-композиране

  4. Създаване на postgresql DB с помощта на psycopg2

  5. CTE и парадоксът за рождения ден