From 9280b7ece1d27a9e3e1eb7f01834181655fd772e Mon Sep 17 00:00:00 2001 From: Jose Date: Thu, 28 May 2020 20:53:56 +0000 Subject: [PATCH 1/2] MCOL-4025 systemd units now preload libjemalloc --- CMakeLists.txt | 4 ++-- cmake/cpackEngineRPM.cmake | 6 +++--- oam/install_scripts/columnstore-post-install.in | 16 ++++++++++------ .../mcs-controllernode.service.in | 1 - oam/install_scripts/mcs-ddlproc.service.in | 1 - oam/install_scripts/mcs-dmlproc.service.in | 1 - oam/install_scripts/mcs-exemgr.service.in | 2 +- oam/install_scripts/mcs-loadbrm.service.in | 1 - oam/install_scripts/mcs-primproc.service.in | 2 +- oam/install_scripts/mcs-workernode.service.in | 1 - .../mcs-writeengineserver.service.in | 2 +- oam/install_scripts/post-mysql-install | 5 +---- 12 files changed, 19 insertions(+), 23 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a11483145..c42857cf4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -392,9 +392,9 @@ IF (INSTALL_LAYOUT) set(SUSE_VERSION_NUMBER "${CMAKE_MATCH_1}") ENDIF () if (${SUSE_VERSION_NUMBER} EQUAL 12) - SETA(CPACK_RPM_columnstore-engine_PACKAGE_REQUIRES "expect" "boost-devel >= 1.54.0" "snappy" "jemalloc" "net-tools" PARENT_SCOPE) + SETA(CPACK_RPM_columnstore-engine_PACKAGE_REQUIRES "expect" "boost-devel >= 1.54.0" "snappy" "jemalloc" "net-tools MariaDB-server" PARENT_SCOPE) else () - SETA(CPACK_RPM_columnstore-engine_PACKAGE_REQUIRES "expect" "boost >= 1.53.0" "snappy" "jemalloc" "net-tools" PARENT_SCOPE) + SETA(CPACK_RPM_columnstore-engine_PACKAGE_REQUIRES "expect" "boost >= 1.53.0" "snappy" "jemalloc" "net-tools MariaDB-server" PARENT_SCOPE) endif() SET(CPACK_RPM_columnstore-engine_PRE_INSTALL_SCRIPT_FILE ${CMAKE_CURRENT_SOURCE_DIR}/build/preInstall_storage_engine.sh PARENT_SCOPE) diff --git a/cmake/cpackEngineRPM.cmake b/cmake/cpackEngineRPM.cmake index 211362102..c624143a3 100644 --- a/cmake/cpackEngineRPM.cmake +++ b/cmake/cpackEngineRPM.cmake @@ -77,13 +77,13 @@ IF (EXISTS "/etc/SuSE-release") set(SUSE_VERSION_NUMBER "${CMAKE_MATCH_1}") ENDIF () if (${REDHAT_VERSION_NUMBER} EQUAL 6) - SETA(CPACK_RPM_columnstore-engine_PACKAGE_REQUIRES "MariaDB-columnstore-shared" "snappy" "net-tools") + SETA(CPACK_RPM_columnstore-engine_PACKAGE_REQUIRES "MariaDB-columnstore-shared" "snappy" "net-tools" "MariaDB-server") # Disable auto require as this will also try to pull Boost via RPM SET(CPACK_RPM_PACKAGE_AUTOREQPROV " no") elseif (${SUSE_VERSION_NUMBER} EQUAL 12) - SETA(CPACK_RPM_columnstore-engine_PACKAGE_REQUIRES "boost-devel >= 1.54.0" "libsnappy1" "jemalloc" "net-tools") + SETA(CPACK_RPM_columnstore-engine_PACKAGE_REQUIRES "boost-devel >= 1.54.0" "libsnappy1" "jemalloc" "net-tools" "MariaDB-server") else () - SETA(CPACK_RPM_columnstore-engine_PACKAGE_REQUIRES "boost >= 1.53.0" "snappy" "jemalloc" "net-tools") + SETA(CPACK_RPM_columnstore-engine_PACKAGE_REQUIRES "boost >= 1.53.0" "snappy" "jemalloc" "net-tools" "MariaDB-server") endif() SET(CPACK_RPM_columnstore-engine_PRE_INSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/build/preInstall_storage_engine.sh) diff --git a/oam/install_scripts/columnstore-post-install.in b/oam/install_scripts/columnstore-post-install.in index 72969eaff..4545ac120 100755 --- a/oam/install_scripts/columnstore-post-install.in +++ b/oam/install_scripts/columnstore-post-install.in @@ -177,13 +177,17 @@ if [ -z "aws" ]; then fi postConfigure -systemctl start mariadb-columnstore -# Wait for all columnstore to be ready, DDLProc is final process in startup order -while [ -z "$(pgrep -x DDLProc)" ]; -do - sleep 1 -done +systemctl cat mariadb-columnstore.service > /dev/null 2>&1 +if [ $? -eq 0 ] && [ $(running_systemd) -eq 0 ]; then + systemctl start mariadb-columnstore + + # Wait for all columnstore to be ready, DDLProc is final process in startup order + while [ -z "$(pgrep -x DDLProc)" ]; + do + sleep 1 + done +fi dbbuilder 7 > $tmpDir/dbbuilder.log diff --git a/oam/install_scripts/mcs-controllernode.service.in b/oam/install_scripts/mcs-controllernode.service.in index e51b01c4c..928393fde 100644 --- a/oam/install_scripts/mcs-controllernode.service.in +++ b/oam/install_scripts/mcs-controllernode.service.in @@ -5,7 +5,6 @@ After=mcs-workernode.service [Service] Type=forking -Environment="SKIP_OAM_INIT=1" ExecStart=@ENGINE_BINDIR@/controllernode Restart=on-failure ExecStop=@ENGINE_BINDIR@/mcs-stop-controllernode.sh $MAINPID diff --git a/oam/install_scripts/mcs-ddlproc.service.in b/oam/install_scripts/mcs-ddlproc.service.in index 44f3c5494..837e04b04 100644 --- a/oam/install_scripts/mcs-ddlproc.service.in +++ b/oam/install_scripts/mcs-ddlproc.service.in @@ -5,7 +5,6 @@ After=mcs-dmlproc.service [Service] Type=simple -Environment="SKIP_OAM_INIT=1" ExecStart=@ENGINE_BINDIR@/DDLProc Restart=on-failure TimeoutStopSec=2 diff --git a/oam/install_scripts/mcs-dmlproc.service.in b/oam/install_scripts/mcs-dmlproc.service.in index a25841a99..8e1aa4280 100644 --- a/oam/install_scripts/mcs-dmlproc.service.in +++ b/oam/install_scripts/mcs-dmlproc.service.in @@ -5,7 +5,6 @@ After=mcs-exemgr.service [Service] Type=simple -Environment="SKIP_OAM_INIT=1" ExecStart=@ENGINE_BINDIR@/DMLProc Restart=on-failure TimeoutStopSec=2 diff --git a/oam/install_scripts/mcs-exemgr.service.in b/oam/install_scripts/mcs-exemgr.service.in index 2130f7cf6..c528b184b 100644 --- a/oam/install_scripts/mcs-exemgr.service.in +++ b/oam/install_scripts/mcs-exemgr.service.in @@ -5,7 +5,7 @@ After=mcs-writeengineserver.service [Service] Type=simple -Environment="SKIP_OAM_INIT=1" +Environment="LD_PRELOAD=libjemalloc.so.1 libjemalloc.so.2" ExecStart=@ENGINE_BINDIR@/ExeMgr Restart=on-failure TimeoutStopSec=2 diff --git a/oam/install_scripts/mcs-loadbrm.service.in b/oam/install_scripts/mcs-loadbrm.service.in index d9a634287..47cd00f42 100644 --- a/oam/install_scripts/mcs-loadbrm.service.in +++ b/oam/install_scripts/mcs-loadbrm.service.in @@ -6,7 +6,6 @@ ConditionPathExists=/var/lib/columnstore/data1/systemFiles/dbrm/BRM_saves_curren [Service] Type=simple -Environment="SKIP_OAM_INIT=1" ExecStart=/usr/bin/env bash -c "/usr/bin/load_brm /var/lib/columnstore/data1/systemFiles/dbrm/$(cat /var/lib/columnstore/data1/systemFiles/dbrm/BRM_saves_current)" [Install] diff --git a/oam/install_scripts/mcs-primproc.service.in b/oam/install_scripts/mcs-primproc.service.in index 84c08d436..64c421710 100644 --- a/oam/install_scripts/mcs-primproc.service.in +++ b/oam/install_scripts/mcs-primproc.service.in @@ -6,7 +6,7 @@ After=mcs-controllernode.service [Service] Type=simple -Environment="SKIP_OAM_INIT=1" +Environment="LD_PRELOAD=libjemalloc.so.1 libjemalloc.so.2" ExecStart=@ENGINE_BINDIR@/PrimProc Restart=on-failure TimeoutStopSec=2 diff --git a/oam/install_scripts/mcs-workernode.service.in b/oam/install_scripts/mcs-workernode.service.in index 714d85058..65862a360 100644 --- a/oam/install_scripts/mcs-workernode.service.in +++ b/oam/install_scripts/mcs-workernode.service.in @@ -5,7 +5,6 @@ After=mcs-loadbrm.service [Service] Type=forking -Environment="SKIP_OAM_INIT=1" ExecStart=@ENGINE_BINDIR@/workernode DBRM_Worker1 Restart=on-failure ExecStop=-@ENGINE_BINDIR@/save_brm diff --git a/oam/install_scripts/mcs-writeengineserver.service.in b/oam/install_scripts/mcs-writeengineserver.service.in index c603efe18..2b5099039 100644 --- a/oam/install_scripts/mcs-writeengineserver.service.in +++ b/oam/install_scripts/mcs-writeengineserver.service.in @@ -5,7 +5,7 @@ After=mcs-primproc.service [Service] Type=simple -Environment="SKIP_OAM_INIT=1" +Environment="LD_PRELOAD=libjemalloc.so.1 libjemalloc.so.2" ExecStart=@ENGINE_BINDIR@/WriteEngineServer Restart=on-failure TimeoutStopSec=2 diff --git a/oam/install_scripts/post-mysql-install b/oam/install_scripts/post-mysql-install index d4cd68339..88ddd040f 100755 --- a/oam/install_scripts/post-mysql-install +++ b/oam/install_scripts/post-mysql-install @@ -22,10 +22,7 @@ checkForError() { # See if engine columnstore exist #--------------------------------------------------------------------------- echo "checking for engine columnstore..." - mysql \ - --user=root \ - --execute='show engines;' \ - | grep -i columnstore + su -s /bin/sh -c 'mysql --execute="show engines"' mysql 2> ${tmpdir}/post-mysql-install.log | grep -i columnstore # # Add compressiontype column to SYSCOLUMN if applicable From d056090d23fef26a4da232e6b183ba14d84ae859 Mon Sep 17 00:00:00 2001 From: Jose Date: Thu, 28 May 2020 23:10:21 +0000 Subject: [PATCH 2/2] MCOL-4025 libjemalloc preloading update --- oam/install_scripts/mcs-controllernode.service.in | 1 + oam/install_scripts/mcs-ddlproc.service.in | 2 +- oam/install_scripts/mcs-dmlproc.service.in | 4 ++-- oam/install_scripts/mcs-exemgr.service.in | 7 +++---- oam/install_scripts/mcs-primproc.service.in | 4 ++-- oam/install_scripts/mcs-writeengineserver.service.in | 7 +++---- 6 files changed, 12 insertions(+), 13 deletions(-) diff --git a/oam/install_scripts/mcs-controllernode.service.in b/oam/install_scripts/mcs-controllernode.service.in index 928393fde..1ac114c68 100644 --- a/oam/install_scripts/mcs-controllernode.service.in +++ b/oam/install_scripts/mcs-controllernode.service.in @@ -5,6 +5,7 @@ After=mcs-workernode.service [Service] Type=forking +ExecStartPre=/usr/bin/env bash -c "systemctl start mcs-workernode" ExecStart=@ENGINE_BINDIR@/controllernode Restart=on-failure ExecStop=@ENGINE_BINDIR@/mcs-stop-controllernode.sh $MAINPID diff --git a/oam/install_scripts/mcs-ddlproc.service.in b/oam/install_scripts/mcs-ddlproc.service.in index 837e04b04..c40703792 100644 --- a/oam/install_scripts/mcs-ddlproc.service.in +++ b/oam/install_scripts/mcs-ddlproc.service.in @@ -1,6 +1,6 @@ [Unit] Description=mcs-ddlproc -PartOf=mcs-exemgr.service +PartOf=mcs-writeengineserver.service After=mcs-dmlproc.service [Service] diff --git a/oam/install_scripts/mcs-dmlproc.service.in b/oam/install_scripts/mcs-dmlproc.service.in index 8e1aa4280..576fdce42 100644 --- a/oam/install_scripts/mcs-dmlproc.service.in +++ b/oam/install_scripts/mcs-dmlproc.service.in @@ -1,7 +1,7 @@ [Unit] Description=mcs-dmlproc -PartOf=mcs-exemgr.service -After=mcs-exemgr.service +PartOf=mcs-writeengineserver.service +After=mcs-writeengineserver.service [Service] Type=simple diff --git a/oam/install_scripts/mcs-exemgr.service.in b/oam/install_scripts/mcs-exemgr.service.in index c528b184b..439d3a6a0 100644 --- a/oam/install_scripts/mcs-exemgr.service.in +++ b/oam/install_scripts/mcs-exemgr.service.in @@ -1,12 +1,11 @@ [Unit] Description=mcs-exemgr -PartOf=mcs-writeengineserver.service -After=mcs-writeengineserver.service +PartOf=mcs-primproc.service +After=mcs-primproc.service [Service] Type=simple -Environment="LD_PRELOAD=libjemalloc.so.1 libjemalloc.so.2" -ExecStart=@ENGINE_BINDIR@/ExeMgr +ExecStart=/usr/bin/env bash -c "LD_PRELOAD=$(ldconfig -p | grep -m1 libjemalloc | awk '{print $1}') exec @ENGINE_BINDIR@/ExeMgr" Restart=on-failure TimeoutStopSec=2 diff --git a/oam/install_scripts/mcs-primproc.service.in b/oam/install_scripts/mcs-primproc.service.in index 64c421710..baee874d4 100644 --- a/oam/install_scripts/mcs-primproc.service.in +++ b/oam/install_scripts/mcs-primproc.service.in @@ -6,8 +6,8 @@ After=mcs-controllernode.service [Service] Type=simple -Environment="LD_PRELOAD=libjemalloc.so.1 libjemalloc.so.2" -ExecStart=@ENGINE_BINDIR@/PrimProc +ExecStart=/usr/bin/env bash -c "LD_PRELOAD=$(ldconfig -p | grep -m1 libjemalloc | awk '{print $1}') exec @ENGINE_BINDIR@/PrimProc" +ExecStartPost=sleep 2 Restart=on-failure TimeoutStopSec=2 diff --git a/oam/install_scripts/mcs-writeengineserver.service.in b/oam/install_scripts/mcs-writeengineserver.service.in index 2b5099039..3764c80ab 100644 --- a/oam/install_scripts/mcs-writeengineserver.service.in +++ b/oam/install_scripts/mcs-writeengineserver.service.in @@ -1,12 +1,11 @@ [Unit] Description=WriteEngineServer -PartOf=mcs-primproc.service -After=mcs-primproc.service +PartOf=mcs-exemgr.service +After=mcs-exemgr.service [Service] Type=simple -Environment="LD_PRELOAD=libjemalloc.so.1 libjemalloc.so.2" -ExecStart=@ENGINE_BINDIR@/WriteEngineServer +ExecStart=/usr/bin/env bash -c "LD_PRELOAD=$(ldconfig -p | grep -m1 libjemalloc | awk '{print $1}') exec @ENGINE_BINDIR@/WriteEngineServer" Restart=on-failure TimeoutStopSec=2