Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Large last written lsn cache #177

Merged
merged 168 commits into from
Jul 9, 2022
Merged
Show file tree
Hide file tree
Changes from 165 commits
Commits
Show all changes
168 commits
Select commit Hold shift + click to select a range
6c5225e
[smgr_api] [community] smgr_api.patch
lubennikovaav May 16, 2021
4dc7b76
[contrib/zenith] contrib_zenith.patch
lubennikovaav May 16, 2021
7448697
[walredo] zenith_wal_redo.patch
lubennikovaav May 16, 2021
4783dfc
lastWrittenPageLSN.patch
lubennikovaav May 16, 2021
0fd9474
Fix GetPage requests right after replaying CREATE DATABASE
hlinnaka May 21, 2021
c178d58
handle_eviction_of_non_wal_logged_pages.patch
lubennikovaav May 16, 2021
3ee8149
[walproposer] wal_proposer.patch
lubennikovaav May 16, 2021
782eacf
persist_unlogged_tables.patch
lubennikovaav May 16, 2021
31a077b
fix_pg_table_size.patch
lubennikovaav May 16, 2021
917462d
[walredo] fix_gin_redo.patch
lubennikovaav May 16, 2021
7276b7f
[walredo] fix_brin_redo.patch
lubennikovaav May 16, 2021
6d7bafb
speculative_records_workaround.patch
lubennikovaav May 16, 2021
87b826f
wallog_t_ctid.patch
lubennikovaav May 16, 2021
9f457bf
vacuumlazy_debug_stub.patch
lubennikovaav May 16, 2021
ac7bd68
[test] zenith_test_evict.patch
lubennikovaav May 16, 2021
74ae59f
fix_sequence_wallogging.patch
lubennikovaav May 16, 2021
e27aaea
Bring back change that got lost in refactoring. silence ReadBuffer_co…
lubennikovaav May 18, 2021
6ac8b6e
[contrib/zenith] [refer #225] if insert WAL position points at the en…
knizhnik Jun 7, 2021
8360d74
[walproposer] Create replication slot for walproposer to avoid loose …
knizhnik Jun 8, 2021
b9e24d1
[walproposer] Skip absent WAL segment removed by pg_resetwal
lubennikovaav Aug 17, 2021
232d876
[walproposer] Fix breaking out of WalProposerPoll and WaitEventSetWai…
arssher Jun 11, 2021
45e9074
[walproposer] Make it possible to start postgres without reading chec…
knizhnik Jun 17, 2021
5085205
[walproposer] Simplify WL_LATCH_SET testing in the walproposer
ololobus Jul 5, 2021
1f5c11d
[walredo] Add basic support for Seccomp BPF mode
funbringer Jun 24, 2021
fb8c2a1
[smgr_api] [contrib/zenith] 1. Do not call mdinit from smgrinit() bec…
knizhnik Jul 9, 2021
15becb6
[walproposer] [contrib/zenith] support zenith_tenant
LizardWizzard Jul 15, 2021
87797bb
[walproposer] Remove graceful termination of COPY during walproposer …
arssher Aug 4, 2021
4319a6f
[walproposer] [contrib/zenith] [refer #395] Do no align sart replicat…
knizhnik Aug 9, 2021
48fc26e
[test] Add contrib/zenith_test_utils with helpers for testing and deb…
lubennikovaav Aug 10, 2021
9dedb55
[walproposer] Change condition for triggering recovery
knizhnik Aug 11, 2021
eae6cb8
[contrib/zenith] Use authentication token passed as environment varia…
LizardWizzard Aug 4, 2021
4c15b7c
[contrib/zenith] Fix race condition while WAL-logging page, leading t…
hlinnaka Aug 13, 2021
209d0c0
[walproposer] Rework walkeeper protocol to use libpq (#60)
sharnoff Aug 13, 2021
743848e
Build zenithdb/compute-node:latest in CI (zenithdb/console#125)
ololobus Aug 16, 2021
657c3ed
zenith_regression_tests.patch
lubennikovaav Aug 23, 2021
9310468
Add test function to flush the shared buffer cache.
hlinnaka Aug 24, 2021
a4359e6
Basic safekeeper refactoring and bug fixing.
arssher Aug 17, 2021
3287dbb
Rename VCL to epochStartLsn and restart_lsn to truncate_lsn.
arssher Aug 27, 2021
09a8680
[refer #27] Implement shared relsize cache to improve zenith performa…
knizhnik Aug 3, 2021
82d969e
Cleanup walproposer changes from #60
sharnoff Aug 31, 2021
7d06d8f
pass tenant id in connection string to safekeeper
LizardWizzard Aug 31, 2021
6a45e63
Ask pageserver only with LSN's aligned on record boundary.
kelvich Aug 31, 2021
ffa97f0
[refer #506] Correctly initialize all fields of WAL page header for f…
knizhnik Sep 1, 2021
3600cce
Add --sync-safekeepers starting standalone walproposer to sync safeke…
knizhnik Aug 19, 2021
7e3d867
Update Dockerfile
ololobus Aug 27, 2021
b661532
Fix compiler warnings in walproposer.c
ololobus Sep 10, 2021
cc87ff1
Always advance truncateLsn to commitLsn, keeping it on record boundary.
arssher Sep 9, 2021
43dcc39
Minor logging editing.
arssher Sep 10, 2021
40c109b
Fix walproposer starting streaming point.
arssher Sep 10, 2021
3e79e7b
Mark all recovery messages as received by the donor.
arssher Sep 14, 2021
2750bac
Don't FATAL in walproposer when EOF arrives in SS_IDLE state.
arssher Sep 14, 2021
153d0f6
Optimize walproposer starting streaming point.
arssher Sep 15, 2021
7648f05
Silence a compiler warning.
hlinnaka Sep 17, 2021
afaad8f
Remove unused functions for reading non-rel pages.
hlinnaka Sep 17, 2021
ae5ee63
Misc cleanup in the code that communicates with the page server.
hlinnaka Sep 17, 2021
bf4c0cb
Improve the protocol between Postgres and page server.
hlinnaka Sep 17, 2021
3dc6bfb
Silence compiler warning when building without --enable-seccomp
hlinnaka Sep 17, 2021
75dc8ea
Run 'pgindent' on zenith-specific code in contrib/zenith and in walpr…
hlinnaka Sep 17, 2021
316ff47
Silence compiler warning
hlinnaka Sep 17, 2021
2ea36fd
Fix a badly worded comment
hlinnaka Sep 20, 2021
fd61df8
Simplify a2e929e by storing starting point in walkeeper itself.
arssher Sep 16, 2021
484ac78
Catch walkeeper ErrorResponse in PQgetCopyData
sharnoff Sep 22, 2021
5edfd25
Use buffered I/O for reading commands from stdin.
hlinnaka Sep 24, 2021
139a5b6
Replace fread() with plain read() and a hand-written buffer.
hlinnaka Sep 30, 2021
c4bd89e
Store unlogged tables locally, and replace PD_WAL_LOGGED.
hlinnaka Oct 6, 2021
7a6caaa
Fix queue cleanup in proposer (#93)
petuhovskiy Oct 14, 2021
f38fd05
Support read-only nodes
hlinnaka Oct 19, 2021
3642beb
Remove a drop of syncSafekeepers complexity.
arssher Oct 21, 2021
4744ed7
Fix compiler warning.
arssher Oct 21, 2021
b9e8a5c
Implement backpressure for compute node to avoid WAL overflow
knizhnik Sep 18, 2021
c7ce764
Initialize FSM/VM pages through buffer cache
ololobus Oct 19, 2021
6e5f8d6
Turn off back pressure by default
ololobus Oct 21, 2021
d6cb3fa
ShutdownConnection instead of ResetConnection in more places.
arssher Oct 21, 2021
bcbf12c
Handle partial writes to stdout in WAL redo process.
hlinnaka Nov 3, 2021
a3e992f
Handle keepalives while receiving WAL in recovery.
arssher Nov 8, 2021
1bb6aa9
Fix truncateLsn update (#101)
petuhovskiy Nov 9, 2021
b2e8da8
[walproposer] Get rid of SAB_Error after rebase
ololobus Nov 10, 2021
d4e813b
Add term history to safekeepers.
arssher Nov 5, 2021
7fb4e66
Clarify the meaning of StandbyReply LSNs used for backpressure
lubennikovaav Nov 9, 2021
3e0c8a3
Use max_replication_apply_lag instead of max_replication_write_lag.
lubennikovaav Nov 11, 2021
2c00fed
Forward pageserver connection string to safekeeper
LizardWizzard Nov 25, 2021
9e50f21
Move backpressure throttling to ProcessInterrupts()
lubennikovaav Nov 26, 2021
41e38c0
Stop building docker images in this repo.
kelvich Dec 15, 2021
9bbc511
[walproposer] Async WAL append (#105)
petuhovskiy Dec 21, 2021
9ba395f
Fix walsender to work with zenith style standbyReply that sends non-z…
lubennikovaav Dec 22, 2021
6d88bd2
Do not copy the obsolete apply_conf binary into Docker image
ololobus Dec 25, 2021
39d07f0
Reorder walproposer code in a more natural order (#112)
petuhovskiy Dec 31, 2021
326dbd7
Simplify walproposer code (#114)
petuhovskiy Jan 4, 2022
85b65e4
Don't change propTerm after quorum is acquired (#107)
petuhovskiy Jan 4, 2022
8e82eae
walproposer renames (#116)
petuhovskiy Jan 5, 2022
cb04c36
Report back-pressure trottling status of backend
knizhnik Dec 29, 2021
808848d
Add max_replication_write_lag
knizhnik Dec 29, 2021
27f713e
Do not throttle wal sender
knizhnik Jan 10, 2022
8f9af18
Do no throttle wal sender
knizhnik Jan 11, 2022
c2e8404
Don't track acks in walproposer (#119)
petuhovskiy Jan 13, 2022
c68dc1f
Silence excessively noisy logging from walproposer.
hlinnaka Jan 14, 2022
8916e66
Extend replication protocol with ZenithFeedback message.
lubennikovaav Dec 20, 2021
e7322f1
Allow to join empty safekeeper to existing cluster (#123)
petuhovskiy Jan 27, 2022
0df3071
Use local relation cache for smgr_exists
knizhnik Dec 29, 2021
a5db530
Reduce walproposer logging after ca5e7beaf.
arssher Feb 4, 2022
c0845f9
Implement cluster size quota for zenith compute node.
lubennikovaav Dec 20, 2021
14aaa50
Revert "Use local relation cache for smgr_exists"
arssher Feb 9, 2022
952a94e
Change the unit of cluster size limit GUC to MB, and other fixes.
hlinnaka Feb 9, 2022
d881913
Improve error handling while connecting to page server.
hlinnaka Feb 9, 2022
580c034
Make getpage requests interruptible.
hlinnaka Feb 9, 2022
e056fb6
Fix memory leak of messages received from safekeepers.
hlinnaka Feb 10, 2022
8524105
Initialize pgxactoff for walproposer
knizhnik Feb 11, 2022
7b5ee1c
Fix compilation warning after 8524105dc.
arssher Feb 14, 2022
d914790
Fix more compiler warnings.
arssher Feb 14, 2022
b426ffe
Remove dead code in handling ZenithFeedback part of an AppendResponse.
hlinnaka Feb 16, 2022
ecbcefb
Prevent recursive call of XLogBeginInsert
knizhnik Dec 24, 2021
d455371
Update src/backend/access/gin/ginfast.c
knizhnik Feb 16, 2022
2c2b362
Expose reading a relation page at a specific LSN (#131)
antons-antons Feb 18, 2022
a3709cc
Add backpressure_lsns() function. Fix zenith feedback processing
lubennikovaav Feb 17, 2022
1872ba6
Fix zenith_test_utils linkage on macOS
kelvich Feb 23, 2022
31dc24a
Add warning fr unrecgonized GUCs with zenith prefix
knizhnik Feb 21, 2022
ce7ff2d
Count WAL flushes in walreceiver (#139)
petuhovskiy Mar 8, 2022
093aa16
Use local relation cache for smgr_exists
knizhnik Dec 29, 2021
9a2d4ca
Populate relsize cache when relation is created.
hlinnaka Mar 10, 2022
756a01a
Fix pg_table_size() on a view
hlinnaka Mar 28, 2022
5c278ed
Don't set commitLsn to truncateLsn.
arssher Mar 28, 2022
1dc6535
Raise fatal error on failed recovery (#147)
petuhovskiy Mar 31, 2022
a260728
Enable dumping corrupt WAL segments (#145)
antons-antons Apr 1, 2022
8481459
Don't hold walproposer WAL in memory (#141)
petuhovskiy Apr 4, 2022
841376a
Add --sysid parameter to initdb
knizhnik Jan 27, 2022
d1be792
Add utilities for recovery database fmro WAL
knizhnik Jan 27, 2022
12f4e4e
Calculate wal position in restore_from_wal scripts
knizhnik Jan 28, 2022
8a364c1
Remove absolute pathes from restore_from_wal scripts
knizhnik Mar 14, 2022
5b3852f
Remove absolute pathes from restore_from_wal scripts
knizhnik Mar 14, 2022
4ffb3bd
Update scripts for recovery from WAL
knizhnik Mar 15, 2022
cc12d19
Make it possible to specify port and datadir for restore_from_wal
knizhnik Mar 15, 2022
61afbf9
Move recovery scripts to main repo
knizhnik Mar 16, 2022
d7c8426
Give up connection attempt to safekeeper after timeout.
arssher Apr 15, 2022
17213ed
Avoid redundand memory allocation and sycnhronization in walredo (#144)
knizhnik Apr 23, 2022
3256ff3
Fix missed include for InRecovery (#149)
knizhnik Apr 25, 2022
223652c
Avoid "bad syscall 39" on assertion failure in WAL redo process.
hlinnaka Apr 26, 2022
3d143d4
Add error context, if replaying a WAL record fails in WAL redo process.
hlinnaka Apr 26, 2022
352e286
Add WARNING for debugging purposes.
hlinnaka Apr 26, 2022
d2afbf7
Turn Assertion into elog(ERROR), to help with debugging.
hlinnaka Apr 26, 2022
20c37c0
Fix errors in WAL redo about relpersistence mismatch.
hlinnaka Apr 26, 2022
fcd2af7
Don't log 'last written LSN ahead of flushed'.
arssher Apr 26, 2022
a13fe64
Perform inmem_smgr cleaup after processing each record (#154)
knizhnik Apr 27, 2022
868e7be
Avoid extending relation in the WAL redo process.
hlinnaka May 3, 2022
ae5f314
Send timeline_start_lsn in Elected and receive it in VoteResponse mes…
arssher May 1, 2022
ce30579
Verify basebackup LSN against consensus LSN in walproposer.
arssher May 2, 2022
d35bd71
Implement pg_database_size():
lubennikovaav Jul 23, 2021
9a9459a
Shut down instance on basebackup LSN mismatch.
arssher May 6, 2022
d62ec22
Use compute-tools from the new neondatabase Docker Hub repo
ololobus May 9, 2022
5a595fd
zenith_test_utils extension: add neon_xlogflush()
yeputons May 10, 2022
1db115c
Reduce noise in the logs from inmem_write()
hlinnaka May 13, 2022
79af2fa
Use compute_ctl instead of zenith_ctl (#162)
ololobus May 18, 2022
038b2b9
Improve error messages on seccomp loading errors.
hlinnaka May 24, 2022
bb306d9
Rename contrib/zenith to contrib/neon. Rename custom GUCs:
lubennikovaav May 26, 2022
a424e3c
Rename 'wal_acceptors' GUC to 'safekeepers'
lubennikovaav Apr 19, 2022
64bed04
Cache last written LSN for last updated relations to reduce wait LSN…
knizhnik May 27, 2022
f96d40b
Store only relfilenode in last written LSN cache
knizhnik May 28, 2022
c9d8ec7
Add forknum as a part of the lastWrittenPageCacheOid[] key
lubennikovaav May 31, 2022
beace5d
Undo using of forknumber in last written page LSN cache
knizhnik May 31, 2022
f27f1fc
Path relNode to zenith_get_request_lsn
knizhnik May 31, 2022
37a0325
Fix caching in SetLastWrittenLsn function
knizhnik Jun 2, 2022
c871760
Keep last written LSN for each relation chunk to handle uploads of mu…
knizhnik Jun 22, 2022
2e9ce7a
Update contrib/neon/pagestore_smgr.c
knizhnik Jun 22, 2022
c977ff5
Adjust max last written LSN of non cached relations in case of evicti…
knizhnik Jun 22, 2022
2e4bf14
Update comments
knizhnik Jun 23, 2022
70c79ef
Update src/backend/access/transam/xlog.c
knizhnik Jun 23, 2022
b329959
Update contrib/neon/pagestore_smgr.c
knizhnik Jul 7, 2022
a9422b7
Add requested comment
knizhnik Jul 7, 2022
5ae9d59
Merge wih main
knizhnik Jul 9, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
.git
.vscode
.circleci
tmp_install
compute_build
69 changes: 69 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
#
# Image with pre-built tools
#
FROM neondatabase/compute-tools:latest AS compute-deps
# Only to get ready compute_ctl binary as deppendency

#
# Image with Postgres build deps
#
FROM debian:buster-slim AS build-deps

RUN apt-get update && apt-get -yq install automake libtool build-essential bison flex libreadline-dev zlib1g-dev libxml2-dev \
libcurl4-openssl-dev

#
# Image with built Postgres
#
FROM build-deps AS pg-build

# Add user postgres
RUN adduser postgres
RUN mkdir /pg && chown postgres:postgres /pg

# Copy source files
COPY . /pg/

# Build and install Postgres locally
RUN mkdir /pg/compute_build && cd /pg/compute_build && \
../configure CFLAGS='-O0 -g3' --prefix=$(pwd)/postgres_bin --enable-debug --enable-cassert --enable-depend && \
# Install main binaries and contribs
make MAKELEVEL=0 -j $(getconf _NPROCESSORS_ONLN) -s install && \
make MAKELEVEL=0 -j $(getconf _NPROCESSORS_ONLN) -s -C contrib/ install && \
make MAKELEVEL=0 -j $(getconf _NPROCESSORS_ONLN) -s -C contrib/neon install && \
# Install headers
make MAKELEVEL=0 -j $(getconf _NPROCESSORS_ONLN) -s -C src/include install

USER postgres
WORKDIR /pg

#
# Final compute node image to be exported
#
FROM debian:buster-slim

# libreadline-dev is required to run psql
RUN apt-get update && apt-get -yq install libreadline-dev

# Add user postgres
RUN mkdir /var/db && useradd -m -d /var/db/postgres postgres && \
echo "postgres:test_console_pass" | chpasswd && \
mkdir /var/db/postgres/compute && mkdir /var/db/postgres/specs && \
chown -R postgres:postgres /var/db/postgres && \
chmod 0750 /var/db/postgres/compute

# Copy ready Postgres binaries
COPY --from=pg-build /pg/compute_build/postgres_bin /usr/local

# Copy binaries from compute-tools
COPY --from=compute-deps /usr/local/bin/compute_ctl /usr/local/bin/compute_ctl

# XXX: temporary symlink for compatibility with old control-plane
RUN ln -s /usr/local/bin/compute_ctl /usr/local/bin/zenith_ctl

# Add postgres shared objects to the search path
RUN echo '/usr/local/lib' >> /etc/ld.so.conf && /sbin/ldconfig

USER postgres

ENTRYPOINT ["/usr/local/bin/compute_ctl"]
86 changes: 86 additions & 0 deletions configure
Original file line number Diff line number Diff line change
Expand Up @@ -712,6 +712,7 @@ with_libxml
with_uuid
with_readline
with_systemd
with_libseccomp
with_selinux
with_ldap
with_krb_srvnam
Expand Down Expand Up @@ -858,6 +859,7 @@ with_bsd_auth
with_ldap
with_bonjour
with_selinux
with_libseccomp
with_systemd
with_readline
with_libedit_preferred
Expand Down Expand Up @@ -1564,6 +1566,7 @@ Optional Packages:
--with-ldap build with LDAP support
--with-bonjour build with Bonjour support
--with-selinux build with SELinux support
--with-libseccomp build with libseccomp support
--with-systemd build with systemd support
--without-readline do not use GNU Readline nor BSD Libedit for editing
--with-libedit-preferred
Expand Down Expand Up @@ -8428,6 +8431,39 @@ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_selinux" >&5
$as_echo "$with_selinux" >&6; }

#
# libseccomp
#
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build with libseccomp support" >&5
$as_echo_n "checking whether to build with libseccomp support... " >&6; }



# Check whether --with-libseccomp was given.
if test "${with_libseccomp+set}" = set; then :
withval=$with_libseccomp;
case $withval in
yes)
:
;;
no)
:
;;
*)
as_fn_error $? "no argument expected for --with-libseccomp option" "$LINENO" 5
;;
esac

else
with_libseccomp=no

fi



{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_libseccomp" >&5
$as_echo "$with_libseccomp" >&6; }

#
# Systemd
#
Expand Down Expand Up @@ -14054,6 +14090,56 @@ else
fi


fi

if test "$with_libseccomp" = yes ; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for seccomp_init in -lseccomp" >&5
$as_echo_n "checking for seccomp_init in -lseccomp... " >&6; }
if ${ac_cv_lib_seccomp_seccomp_init+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lseccomp $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */

/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char seccomp_init ();
int
main ()
{
return seccomp_init ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_seccomp_seccomp_init=yes
else
ac_cv_lib_seccomp_seccomp_init=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_seccomp_seccomp_init" >&5
$as_echo "$ac_cv_lib_seccomp_seccomp_init" >&6; }
if test "x$ac_cv_lib_seccomp_seccomp_init" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_LIBSECCOMP 1
_ACEOF

LIBS="-lseccomp $LIBS"

else
as_fn_error $? "library 'libseccomp' is required for Seccomp BPF support" "$LINENO" 5
fi

fi

# for contrib/uuid-ossp
Expand Down
13 changes: 13 additions & 0 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -899,6 +899,14 @@ PGAC_ARG_BOOL(with, selinux, no, [build with SELinux support])
AC_SUBST(with_selinux)
AC_MSG_RESULT([$with_selinux])

#
# libseccomp
#
AC_MSG_CHECKING([whether to build with libseccomp support])
PGAC_ARG_BOOL(with, libseccomp, no, [build with libseccomp support])
AC_SUBST(with_libseccomp)
AC_MSG_RESULT([$with_libseccomp])

#
# Systemd
#
Expand Down Expand Up @@ -1538,6 +1546,11 @@ dnl If you want to use Apple's own Bonjour code on another platform,
dnl just add -ldns_sd to LIBS manually.
fi

if test "$with_libseccomp" = yes ; then
AC_CHECK_LIB(seccomp, seccomp_init, [],
[AC_MSG_ERROR([library 'libseccomp' is required for Seccomp BPF support])])
fi

# for contrib/uuid-ossp
if test "$with_uuid" = bsd ; then
AC_CHECK_HEADERS(uuid.h,
Expand Down
26 changes: 26 additions & 0 deletions contrib/neon/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# contrib/neon/Makefile


MODULE_big = neon
OBJS = \
$(WIN32RES) \
inmem_smgr.o libpagestore.o pagestore_smgr.o relsize_cache.o neon.o

PG_CPPFLAGS = -I$(libpq_srcdir)
SHLIB_LINK_INTERNAL = $(libpq)

EXTENSION = neon
DATA = neon--1.0.sql
PGFILEDESC = "neon - cloud storage for PostgreSQL"

ifdef USE_PGXS
PG_CONFIG = pg_config
PGXS := $(shell $(PG_CONFIG) --pgxs)
include $(PGXS)
else
SHLIB_PREREQS = submake-libpq
subdir = contrib/neon
top_builddir = ../..
include $(top_builddir)/src/Makefile.global
include $(top_srcdir)/contrib/contrib-global.mk
endif
Loading