QSoC proposal: Rewrite pg_dump and pg_restore

Поиск
Список
Период
Сортировка
От Alexandr
Тема QSoC proposal: Rewrite pg_dump and pg_restore
Дата
Msg-id 5328E7BF.8000805@gmail.com
обсуждение исходный текст
Ответы Re: QSoC proposal: Rewrite pg_dump and pg_restore  (Robert Haas <robertmhaas@gmail.com>)
Список pgsql-hackers
Hello!<br /> Here is the text of my proposal which I've applied to GSoC.<br /> (and link <a
class="moz-txt-link-freetext"
href="https://docs.google.com/document/d/1s-Q4rzEysPxo-dINsk_eKFJOBoVjNYDrQ-Oh75gtYEM/edit?usp=sharing">https://docs.google.com/document/d/1s-Q4rzEysPxo-dINsk_eKFJOBoVjNYDrQ-Oh75gtYEM/edit?usp=sharing</a>)<br
/>Any suggestions and comments are welcome.<br /><b id="docs-internal-guid-cbd5f555-d7c4-35b8-0764-622e27f77da0"
style="font-weight:normal;"><pdir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:
center;"><spanstyle="font-size:19px;font-family:'Times New
 

Roman';color:#000000;background-color:transparent;font-weight:bold;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">PostgreSQL
GSoC2014 proposal</span><br /><span style="font-size:16px;font-family:'Times New
 

Roman';color:#000000;background-color:transparent;font-weight:bold;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;"></span><br
/><spanstyle="font-size:16px;font-family:'Times New
 

Roman';color:#000000;background-color:transparent;font-weight:bold;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;"></span><p
dir="ltr"style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:       justify;"><span
style="font-size:16px;font-family:'TimesNew
 

Roman';color:#000000;background-color:transparent;font-weight:bold;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">Project
name</span><pdir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:       justify;"><span
style="font-size:16px;font-family:'TimesNew
 

Roman';color:#000000;background-color:#ffffff;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">Rewrite
(add)pg_dump and pg_restore utilities as libraries (.so, .dll & .dylib)</span><br /><span
style="font-size:11px;font-family:'TimesNew
 

Roman';color:#000000;background-color:#ffffff;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;"></span><br
/><spanstyle="font-size:11px;font-family:'Times New
 

Roman';color:#000000;background-color:#ffffff;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;"></span><p
dir="ltr"style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:       justify;"><span
style="font-size:16px;font-family:'TimesNew
 

Roman';color:#000000;background-color:#ffffff;font-weight:bold;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">Short
description</span><pdir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:
justify;"><spanstyle="font-size:16px;font-family:'Times New
 

Roman';color:#000000;background-color:#ffffff;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">pg_dump
isa utility for backing up a PostgreSQL database. It makes consistent backups even if the database is being used
concurrently.pg_restore is a utility for restoring a PostgreSQL database from an archive created by pg_dump in one of
thenon-plain-text formats. I think it will be more comforatable to use these tools as libraries.</span><br /><span
style="font-size:11px;font-family:'TimesNew
 

Roman';color:#000000;background-color:#ffffff;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;"></span><p
dir="ltr"style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:       justify;"><span
style="font-size:16px;font-family:'TimesNew
 

Roman';color:#000000;background-color:#ffffff;font-weight:bold;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">Name</span><span
style="font-size:16px;font-family:'TimesNew
 

Roman';color:#000000;background-color:#ffffff;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">:
AlexanderShvidchenko</span><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:
justify;"><spanstyle="font-size:16px;font-family:'Times New
 

Roman';color:#000000;background-color:#ffffff;font-weight:bold;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">E-mail</span><span
style="font-size:16px;font-family:'TimesNew
 

Roman';color:#000000;background-color:#ffffff;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">:
</span><ahref="mailto:askellio@gmail.com" style="text-decoration:none;"><span style="font-size:16px;font-family:'Times
New

Roman';color:#1155cc;background-color:#ffffff;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap;">askellio@gmail.com</span></a><span
style="font-size:16px;font-family:'TimesNew
 

Roman';color:#000000;background-color:#ffffff;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;"></span><p
dir="ltr"style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:       justify;"><span
style="font-size:16px;font-family:'TimesNew
 

Roman';color:#000000;background-color:#ffffff;font-weight:bold;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">Location</span><span
style="font-size:16px;font-family:'TimesNew
 

Roman';color:#000000;background-color:#ffffff;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">:
Rostov-on-Don,Russia (UTC +04.00)</span><br /><span style="font-size:11px;font-family:'Times New
 

Roman';color:#000000;background-color:#ffffff;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;"></span><p
dir="ltr"style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:       justify;"><span
style="font-size:16px;font-family:'TimesNew
 

Roman';color:#000000;background-color:#ffffff;font-weight:bold;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">Benefits
tothe PostgreSQL Community</span><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:
justify;"><span style="font-size:16px;font-family:'Times New
 

Roman';color:#000000;background-color:#ffffff;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">This
featurewill expand opportunities to work with backups of databases. Especially, it’s important for third-party
developers.It will be easier to use the functionality of the tools in applications when they will be
libraries.</span><br/><span style="font-size:11px;font-family:'Times New
 

Roman';color:#000000;background-color:#ffffff;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;"></span><p
dir="ltr"style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:       justify;"><span
style="font-size:16px;font-family:'TimesNew
 

Roman';color:#000000;background-color:#ffffff;font-weight:bold;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">Quantifiable
results</span><pdir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:       justify;"><span
style="font-size:16px;font-family:'TimesNew
 

Roman';color:#000000;background-color:#ffffff;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">Static
anddynamic libraries with the functionality of pg_dump and pg_restore tools (.so, .dll and .dylib files)</span><br
/><spanstyle="font-size:11px;font-family:'Times New
 

Roman';color:#000000;background-color:#ffffff;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;"></span><p
dir="ltr"style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:       justify;"><span
style="font-size:16px;font-family:'TimesNew
 

Roman';color:#000000;background-color:#ffffff;font-weight:bold;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">Project
Schedule</span><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:       justify;"><span
style="font-size:16px;font-family:'TimesNew
 

Roman';color:#000000;background-color:#ffffff;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">until
May31 </span><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:       justify;"><span
style="font-size:16px;font-family:'TimesNew
 

Roman';color:#000000;background-color:#ffffff;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">Make
codereview and solve architecture questions with help of community</span><p dir="ltr"
style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:      justify;"><span
style="font-size:16px;font-family:'TimesNew
 

Roman';color:#000000;background-color:#ffffff;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">1
June– 30 June</span><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:
justify;"><spanstyle="font-size:16px;font-family:'Times New
 

Roman';color:#000000;background-color:#ffffff;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">Detailed
implementationof libraries.</span><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:
 justify;"><span style="font-size:16px;font-family:'Times New
 

Roman';color:#000000;background-color:#ffffff;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">1
July– 31 July</span><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:
justify;"><spanstyle="font-size:16px;font-family:'Times New
 

Roman';color:#000000;background-color:#ffffff;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">Finish
Implementationof libraires and begin testing. </span><p dir="ltr"
style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:      justify;"><span
style="font-size:16px;font-family:'TimesNew
 

Roman';color:#000000;background-color:#ffffff;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">1
August-15 August</span><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:
justify;"><spanstyle="font-size:16px;font-family:'Times New
 

Roman';color:#000000;background-color:#ffffff;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">Final
refactoring,testing and commit.</span><br /><span style="font-size:11px;font-family:'Times New
 

Roman';color:#000000;background-color:#ffffff;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;"></span><p
dir="ltr"style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:       justify;"><span
style="font-size:16px;font-family:'TimesNew
 

Roman';color:#000000;background-color:#ffffff;font-weight:bold;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">Academic
experience</span><pdir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:       justify;"><span
style="font-size:16px;font-family:'TimesNew
 

Roman';color:#000000;background-color:#ffffff;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">I
enteredthe university in 2013. Before entering the university I finished the college in 2012. My graduate work in the
collegewas the client-server application. It was a realization of XMPP. The client was realized in Qt. The client
workedwith SQLite database and the server worked with MySQL database.</span><br /><span
style="font-size:16px;font-family:'TimesNew
 

Roman';color:#000000;background-color:#ffffff;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;"></span><p
dir="ltr"style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:       justify;"><span
style="font-size:16px;font-family:'TimesNew
 

Roman';color:#000000;background-color:#ffffff;font-weight:bold;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">Why
isPostgreSQL?</span><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:
justify;"><spanstyle="font-size:16px;font-family:'Times New
 

Roman';color:#000000;background-color:#ffffff;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">-
</span><spanstyle="font-size:16px;font-family:'Times New
 

Roman';color:#444444;background-color:#ffffff;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">I’m
interetedin this idea and believe this project would be useful for the community;</span><span
style="font-size:16px;font-family:'TimesNew
 

Roman';color:#000000;background-color:#ffffff;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;"></span><p
dir="ltr"style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:       justify;"><span
style="font-size:16px;font-family:'TimesNew
 

Roman';color:#000000;background-color:#ffffff;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">-
PostgreSQLis a very respected community. I would be proud to be a part of it;</span><p dir="ltr"
style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:      justify;"><span
style="font-size:16px;font-family:'TimesNew 

Roman';color:#000000;background-color:#ffffff;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">-
PostgreSQLis one of the best DBMS and I would like to make it better.</span><br /><span
style="font-size:11px;font-family:'TimesNew
 

Roman';color:#000000;background-color:#ffffff;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;"></span><p
dir="ltr"style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:       justify;"><span
style="font-size:16px;font-family:'TimesNew
 

Roman';color:#000000;background-color:#ffffff;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">Links</span><p
dir="ltr"style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:       justify;"><span
style="font-size:16px;font-family:'TimesNew
 

Roman';color:#000000;background-color:#ffffff;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">1)
PostgreSQL9.3.3 Documentation, pg_dump</span><p dir="ltr"
style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:      justify;"><a
href="http://www.postgresql.org/docs/9.3/static/app-pgdump.html"style="text-decoration:none;"><span
style="font-size:16px;font-family:'TimesNew
 

Roman';color:#1155cc;background-color:#ffffff;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap;">http://www.postgresql.org/docs/9.3/static/app-pgdump.html</span></a><span
style="font-size:16px;font-family:'TimesNew
 

Roman';color:#000000;background-color:#ffffff;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;"></span><p
dir="ltr"style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:       justify;"><span
style="font-size:16px;font-family:'TimesNew
 

Roman';color:#000000;background-color:#ffffff;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">2)
PostgreSQL9.3.3 Documentation, pg_restore</span><p dir="ltr"
style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:      justify;"><a
href="http://www.postgresql.org/docs/9.3/static/app-pgrestore.html"style="text-decoration:none;"><span
style="font-size:16px;font-family:'TimesNew
 

Roman';color:#1155cc;background-color:#ffffff;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap;">http://www.postgresql.org/docs/9.3/static/app-pgrestore.html</span></a><span
style="font-size:16px;font-family:'TimesNew
 

Roman';color:#000000;background-color:#ffffff;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;"></span><p
dir="ltr"style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:       justify;"><span
style="font-size:16px;font-family:'TimesNew
 

Roman';color:#000000;background-color:#ffffff;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">3)
Staticlibrary</span><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:
justify;"><ahref="http://en.wikipedia.org/wiki/Static_library" style="text-decoration:none;"><span
style="font-size:16px;font-family:'TimesNew
 

Roman';color:#1155cc;background-color:#ffffff;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap;">http://en.wikipedia.org/wiki/Static_library</span></a><span
style="font-size:16px;font-family:'TimesNew
 

Roman';color:#000000;background-color:#ffffff;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;"></span><p
dir="ltr"style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:       justify;"><span
style="font-size:16px;font-family:'TimesNew
 

Roman';color:#000000;background-color:#ffffff;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">4)
Dynamiclibrary</span><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-align:
justify;"><ahref="http://en.wikipedia.org/wiki/Dynamic-link_library" style="text-decoration:none;"><span
style="font-size:16px;font-family:'TimesNew
 

Roman';color:#1155cc;background-color:#ffffff;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap;">http://en.wikipedia.org/wiki/Dynamic-link_library</span></a><span
style="font-size:16px;font-family:'TimesNew
 

Roman';color:#000000;background-color:#ffffff;font-weight:normal;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;"></span></b><br
class="Apple-interchange-newline"/><br /> With best wishes,<br /> Alexander S.<br /> 

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Bruce Momjian
Дата:
Сообщение: Re: pg_archivecleanup bug
Следующее
От: "Wang, Jing"
Дата:
Сообщение: Re: issue log message to suggest VACUUM FULL if a table is nearly empty