You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-07-29 08:21:15 +03:00
Merge branch 'develop' into MCOL-3536
This commit is contained in:
@ -86,7 +86,7 @@ else ()
|
||||
SETA(CPACK_RPM_columnstore-engine_PACKAGE_REQUIRES "boost >= 1.53.0" "snappy" "jemalloc" "net-tools")
|
||||
endif()
|
||||
|
||||
SET(CPACK_RPM_columnstore-engine_PRE_INSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/build/preInstall_storeage_engine.sh)
|
||||
SET(CPACK_RPM_columnstore-engine_PRE_INSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/build/preInstall_storage_engine.sh)
|
||||
SET(CPACK_RPM_columnstore-engine_POST_INSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/build/postInstall_storage_engine.sh)
|
||||
SET(CPACK_RPM_columnstore-engine_PRE_UNINSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/build/preUn_storage_engine.sh)
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Copyright (C) 2014 InfiniDB, Inc.
|
||||
* Copyright (C) 2016 MariaDB Corporation.
|
||||
* Copyright (C) 2016-2020 MariaDB Corporation.
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
@ -36,6 +36,8 @@
|
||||
#include <ctime>
|
||||
#include <algorithm>
|
||||
#include <unistd.h>
|
||||
#include <chrono>
|
||||
#include <thread>
|
||||
using namespace std;
|
||||
|
||||
#include <boost/scoped_array.hpp>
|
||||
@ -240,11 +242,10 @@ void DistributedEngineComm::Setup()
|
||||
newClients.clear();
|
||||
newLocks.clear();
|
||||
|
||||
throttleThreshold = fRm->getDECThrottleThreshold();
|
||||
uint32_t newPmCount = fRm->getPsCount();
|
||||
int cpp = (fIsExeMgr ? fRm->getPsConnectionsPerPrimProc() : 1);
|
||||
throttleThreshold = fRm->getDECThrottleThreshold();
|
||||
tbpsThreadCount = fRm->getJlNumScanReceiveThreads();
|
||||
unsigned numConnections = newPmCount * cpp;
|
||||
unsigned numConnections = getNumConnections();
|
||||
oam::Oam oam;
|
||||
ModuleTypeConfig moduletypeconfig;
|
||||
|
||||
@ -386,9 +387,7 @@ void DistributedEngineComm::Listen(boost::shared_ptr<MessageQueueClient> client,
|
||||
Error:
|
||||
// @bug 488 - error condition! push 0 length bs to messagequeuemap and
|
||||
// eventually let jobstep error out.
|
||||
/* boost::mutex::scoped_lock lk(fMlock);
|
||||
//cout << "WARNING: DEC READ 0 LENGTH BS FROM " << client->otherEnd()<< endl;
|
||||
|
||||
boost::mutex::scoped_lock lk(fMlock);
|
||||
MessageQueueMap::iterator map_tok;
|
||||
sbs.reset(new ByteStream(0));
|
||||
|
||||
@ -400,10 +399,24 @@ Error:
|
||||
}
|
||||
lk.unlock();
|
||||
|
||||
if (fIsExeMgr)
|
||||
{
|
||||
//std::cout << "WARNING: DEC READ 0 LENGTH BS FROM "
|
||||
// << client->otherEnd()<< " OR GOT AN EXCEPTION READING" << std::endl;
|
||||
decltype(pmCount) originalPMCount = pmCount;
|
||||
// Re-establish if a remote PM restarted.
|
||||
std::this_thread::sleep_for(std::chrono::seconds(3));
|
||||
Setup();
|
||||
if (originalPMCount != pmCount)
|
||||
{
|
||||
ostringstream os;
|
||||
os << "DEC: lost connection to " << client->addr2String();
|
||||
writeToLog(__FILE__, __LINE__, os.str(), LOG_TYPE_ERROR);
|
||||
}
|
||||
|
||||
/*
|
||||
// reset the pmconnection vector
|
||||
ClientList tempConns;
|
||||
|
||||
{
|
||||
boost::mutex::scoped_lock onErrLock(fOnErrMutex);
|
||||
string moduleName = client->moduleName();
|
||||
//cout << "moduleName=" << moduleName << endl;
|
||||
@ -420,17 +433,13 @@ Error:
|
||||
fPmConnections.swap(tempConns);
|
||||
pmCount = (pmCount == 0 ? 0 : pmCount - 1);
|
||||
//cout << "PMCOUNT=" << pmCount << endl;
|
||||
*/
|
||||
// send alarm & log it
|
||||
ALARMManager alarmMgr;
|
||||
string alarmItem = client->addr2String();
|
||||
alarmItem.append(" PrimProc");
|
||||
alarmMgr.sendAlarmReport(alarmItem.c_str(), oam::CONN_FAILURE, SET);
|
||||
|
||||
// log it
|
||||
ostringstream os;
|
||||
os << "DEC: lost connection to " << client->addr2String();
|
||||
writeToLog(__FILE__, __LINE__, os.str(), LOG_TYPE_CRITICAL);
|
||||
// }
|
||||
*/
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
@ -999,10 +1008,10 @@ int DistributedEngineComm::writeToClient(size_t index, const ByteStream& bs, uin
|
||||
catch (...)
|
||||
{
|
||||
// @bug 488. error out under such condition instead of re-trying other connection,
|
||||
// by pushing 0 size bytestream to messagequeue and throw excpetion
|
||||
/* SBS sbs;
|
||||
// by pushing 0 size bytestream to messagequeue and throw exception
|
||||
SBS sbs;
|
||||
lk.lock();
|
||||
//cout << "WARNING: DEC WRITE BROKEN PIPE. PMS index = " << index << endl;
|
||||
//std::cout << "WARNING: DEC WRITE BROKEN PIPE. PMS index = " << index << std::endl;
|
||||
MessageQueueMap::iterator map_tok;
|
||||
sbs.reset(new ByteStream(0));
|
||||
|
||||
@ -1014,7 +1023,7 @@ int DistributedEngineComm::writeToClient(size_t index, const ByteStream& bs, uin
|
||||
}
|
||||
|
||||
lk.unlock();
|
||||
|
||||
/*
|
||||
// reconfig the connection array
|
||||
ClientList tempConns;
|
||||
{
|
||||
@ -1033,7 +1042,6 @@ int DistributedEngineComm::writeToClient(size_t index, const ByteStream& bs, uin
|
||||
fPmConnections.swap(tempConns);
|
||||
pmCount = (pmCount == 0 ? 0 : pmCount - 1);
|
||||
}
|
||||
*/
|
||||
// send alarm
|
||||
ALARMManager alarmMgr;
|
||||
string alarmItem("UNKNOWN");
|
||||
@ -1045,6 +1053,7 @@ int DistributedEngineComm::writeToClient(size_t index, const ByteStream& bs, uin
|
||||
|
||||
alarmItem.append(" PrimProc");
|
||||
alarmMgr.sendAlarmReport(alarmItem.c_str(), oam::CONN_FAILURE, SET);
|
||||
*/
|
||||
throw runtime_error("DistributedEngineComm::write: Broken Pipe error");
|
||||
}
|
||||
}
|
||||
|
@ -197,6 +197,12 @@ public:
|
||||
return pmCount;
|
||||
}
|
||||
|
||||
unsigned getNumConnections() const
|
||||
{
|
||||
unsigned cpp = (fIsExeMgr ? fRm->getPsConnectionsPerPrimProc() : 1);
|
||||
return fRm->getPsCount() * cpp;
|
||||
}
|
||||
|
||||
messageqcpp::Stats getNetworkStats(uint32_t uniqueID);
|
||||
|
||||
friend class ::TestDistributedEngineComm;
|
||||
|
@ -293,8 +293,6 @@ extern "C"
|
||||
SystemStatus systemstatus;
|
||||
|
||||
try
|
||||
{
|
||||
if (getenv("SKIP_OAM_INIT"))
|
||||
{
|
||||
if (dbrm.getSystemReady()
|
||||
&& dbrm.getSystemQueryReady())
|
||||
@ -302,18 +300,6 @@ extern "C"
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
oam.getSystemStatus(systemstatus);
|
||||
|
||||
if (systemstatus.SystemOpState == ACTIVE
|
||||
&& dbrm.getSystemReady()
|
||||
&& dbrm.getSystemQueryReady())
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
*error = 1;
|
||||
|
@ -891,7 +891,11 @@ int ha_mcs_impl_write_batch_row_(const uchar* buf, TABLE* table, cal_impl_if::ca
|
||||
if (current_thd->variables.sql_mode & MODE_PAD_CHAR_TO_FULL_LENGTH)
|
||||
{
|
||||
// Pad to the full length of the field
|
||||
if (ci.utf8)
|
||||
escape.assign((char*)buf, ci.columnTypes[colpos].colWidth * 3);
|
||||
else
|
||||
escape.assign((char*)buf, ci.columnTypes[colpos].colWidth);
|
||||
|
||||
boost::replace_all(escape, "\\", "\\\\");
|
||||
|
||||
fprintf(ci.filePtr, "%c%.*s%c%c", ci.enclosed_by, (int)escape.length(),
|
||||
@ -904,8 +908,10 @@ int ha_mcs_impl_write_batch_row_(const uchar* buf, TABLE* table, cal_impl_if::ca
|
||||
bitmap_set_bit(table->read_set, field->field_index);
|
||||
String attribute;
|
||||
field->val_str(&attribute);
|
||||
|
||||
escape.assign((char*)buf, attribute.length());
|
||||
boost::replace_all(escape, "\\", "\\\\");
|
||||
|
||||
fprintf(ci.filePtr, "%c%.*s%c%c", ci.enclosed_by, (int)escape.length(),
|
||||
escape.c_str(), ci.enclosed_by, ci.delimiter);
|
||||
}
|
||||
@ -1777,32 +1783,35 @@ int ha_mcs_impl_write_batch_row_(const uchar* buf, TABLE* table, cal_impl_if::ca
|
||||
case CalpontSystemCatalog::BLOB:
|
||||
case CalpontSystemCatalog::TEXT:
|
||||
{
|
||||
// MCOL-4005 Note that we don't handle nulls as a special
|
||||
// case here as we do for other datatypes, the below works
|
||||
// as expected for nulls.
|
||||
uint32_t dataLength = 0;
|
||||
uintptr_t* dataptr;
|
||||
uchar* ucharptr;
|
||||
uint colWidthInBytes = (ci.utf8 ?
|
||||
ci.columnTypes[colpos].colWidth * 3: ci.columnTypes[colpos].colWidth);
|
||||
|
||||
if (ci.columnTypes[colpos].colWidth < 256)
|
||||
if (colWidthInBytes < 256)
|
||||
{
|
||||
dataLength = *(uint8_t*) buf;
|
||||
buf++;
|
||||
}
|
||||
else if (ci.columnTypes[colpos].colWidth < 65536)
|
||||
else if (colWidthInBytes < 65536)
|
||||
{
|
||||
dataLength = *(uint16_t*) buf;
|
||||
buf = buf + 2 ;
|
||||
buf += 2;
|
||||
}
|
||||
else if (ci.columnTypes[colpos].colWidth < 16777216)
|
||||
else if (colWidthInBytes < 16777216)
|
||||
{
|
||||
dataLength = *(uint16_t*) buf;
|
||||
buf = buf + 2 ;
|
||||
if (*(uint8_t*)buf)
|
||||
dataLength += 256*256*(*(uint8_t*)buf) ;
|
||||
buf++;
|
||||
dataLength |= ((int) buf[2]) << 16;
|
||||
buf += 3;
|
||||
}
|
||||
else
|
||||
{
|
||||
dataLength = *(uint32_t*) buf;
|
||||
buf = buf + 4 ;
|
||||
buf += 4;
|
||||
}
|
||||
|
||||
// buf contains pointer to blob, for example:
|
||||
@ -1826,7 +1835,9 @@ int ha_mcs_impl_write_batch_row_(const uchar* buf, TABLE* table, cal_impl_if::ca
|
||||
else
|
||||
{
|
||||
// TEXT Column
|
||||
fprintf(ci.filePtr, "%c%.*s%c%c", ci.enclosed_by, dataLength, ucharptr, ci.enclosed_by, ci.delimiter);
|
||||
escape.assign((char*)ucharptr, dataLength);
|
||||
boost::replace_all(escape, "\\", "\\\\");
|
||||
fprintf(ci.filePtr, "%c%.*s%c%c", ci.enclosed_by, (int)escape.length(), escape.c_str(), ci.enclosed_by, ci.delimiter);
|
||||
}
|
||||
|
||||
break;
|
||||
|
@ -1308,7 +1308,7 @@ uint32_t buildOuterJoin(gp_walk_info& gwi, SELECT_LEX& select_lex)
|
||||
// View is already processed in view::transform
|
||||
// @bug5319. view is sometimes treated as derived table and
|
||||
// fromSub::transform does not build outer join filters.
|
||||
if (!table_ptr->derived && table_ptr->view)
|
||||
if (!table_ptr->derived && table_ptr->view && !gwi.subQuery)
|
||||
continue;
|
||||
|
||||
CalpontSystemCatalog:: TableAliasName tan = make_aliasview(
|
||||
|
@ -17,7 +17,7 @@ for arg in "$@"; do
|
||||
done
|
||||
|
||||
# DELETE libcalmysql.so entries first as they are in ha_columnstore.so in 1.4.2 onwards
|
||||
mysql --force --user=root mysql 2> ${tmpdir}/mysql_install.log <<EOD
|
||||
su -s /bin/sh -c 'mysql' mysql 2> ${tmpdir}/mysql_install.log <<EOD
|
||||
DELETE FROM mysql.func WHERE dl='libcalmysql.so';
|
||||
INSERT INTO mysql.func VALUES ('calgetstats',0,'ha_columnstore.so','function');
|
||||
INSERT INTO mysql.func VALUES ('calsettrace',2,'ha_columnstore.so','function');
|
||||
@ -110,9 +110,10 @@ CREATE TABLE IF NOT EXISTS infinidb_querystats.priority
|
||||
insert ignore into infinidb_querystats.priority values ('High', 100),('Medium', 66), ('Low', 33);
|
||||
EOD
|
||||
|
||||
mysql --user=root mysql 2>/dev/null <@ENGINE_SUPPORTDIR@/syscatalog_mysql.sql
|
||||
mysql --user=root mysql 2>/dev/null <@ENGINE_SUPPORTDIR@/calsetuserpriority.sql
|
||||
mysql --user=root mysql 2>/dev/null <@ENGINE_SUPPORTDIR@/calremoveuserpriority.sql
|
||||
mysql --user=root mysql 2>/dev/null <@ENGINE_SUPPORTDIR@/calshowprocesslist.sql
|
||||
mysql --user=root mysql 2>/dev/null <@ENGINE_SUPPORTDIR@/columnstore_info.sql
|
||||
su -s /bin/sh -c 'mysql <@ENGINE_SUPPORTDIR@/syscatalog_mysql.sql' mysql 2>/dev/null
|
||||
su -s /bin/sh -c 'mysql <@ENGINE_SUPPORTDIR@/calsetuserpriority.sql' mysql 2>/dev/null
|
||||
su -s /bin/sh -c 'mysql <@ENGINE_SUPPORTDIR@/calremoveuserpriority.sql' mysql 2>/dev/null
|
||||
su -s /bin/sh -c 'mysql <@ENGINE_SUPPORTDIR@/calshowprocesslist.sql' mysql 2>/dev/null
|
||||
su -s /bin/sh -c 'mysql <@ENGINE_SUPPORTDIR@/columnstore_info.sql' mysql 2>/dev/null
|
||||
|
||||
|
||||
|
@ -644,7 +644,11 @@ new_plan:
|
||||
std::cout << "### For session id " << csep.sessionID() << ", got a CSEP" << std::endl;
|
||||
|
||||
setRMParms(csep.rmParms());
|
||||
|
||||
// Re-establish lost PP connections.
|
||||
if (UNLIKELY(fEc->getNumConnections() != fEc->connectedPmServers()))
|
||||
{
|
||||
fEc->Setup();
|
||||
}
|
||||
// @bug 1021. try to get schema cache for a come in query.
|
||||
// skip system catalog queries.
|
||||
if (!csep.isInternal())
|
||||
@ -1647,7 +1651,7 @@ int main(int argc, char* argv[])
|
||||
{
|
||||
}
|
||||
}
|
||||
if (getenv("SKIP_OAM_INIT"))
|
||||
|
||||
{
|
||||
BRM::DBRM *dbrm = new BRM::DBRM();
|
||||
dbrm->setSystemQueryReady(true);
|
||||
|
@ -6,6 +6,8 @@
|
||||
-->
|
||||
<ClusterManager>0.0.0.0</ClusterManager>
|
||||
<ConfigRevision>1</ConfigRevision>
|
||||
<NextNodeId>2</NextNodeId>
|
||||
<NextDBRootId>2</NextDBRootId>
|
||||
<ExeMgr1>
|
||||
<IPAddr>127.0.0.1</IPAddr>
|
||||
<Port>8601</Port>
|
||||
@ -246,7 +248,7 @@
|
||||
<DBRoot1>/var/lib/columnstore/data1</DBRoot1>
|
||||
<DBRMRoot>/var/lib/columnstore/data1/systemFiles/dbrm/BRM_saves</DBRMRoot>
|
||||
<TableLockSaveFile>/var/lib/columnstore/data1/systemFiles/dbrm/tablelocks</TableLockSaveFile>
|
||||
<DBRMTimeOut>20</DBRMTimeOut> <!-- in seconds -->
|
||||
<DBRMTimeOut>15</DBRMTimeOut> <!-- in seconds -->
|
||||
<DBRMSnapshotInterval>100000</DBRMSnapshotInterval>
|
||||
<ExternalCriticalThreshold>90</ExternalCriticalThreshold>
|
||||
<ExternalMajorThreshold>80</ExternalMajorThreshold>
|
||||
|
@ -20,6 +20,7 @@ configure_file("${CMAKE_CURRENT_SOURCE_DIR}/mcs-writeengineserver.service.in" "$
|
||||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/mcs-dmlproc.service.in" "${CMAKE_CURRENT_SOURCE_DIR}/mcs-dmlproc.service" @ONLY)
|
||||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/mcs-ddlproc.service.in" "${CMAKE_CURRENT_SOURCE_DIR}/mcs-ddlproc.service" @ONLY)
|
||||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/mcs-loadbrm.service.in" "${CMAKE_CURRENT_SOURCE_DIR}/mcs-loadbrm.service" @ONLY)
|
||||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/mcs-stop-controllernode.sh.in" "${CMAKE_CURRENT_SOURCE_DIR}/mcs-stop-controllernode.sh" @ONLY)
|
||||
|
||||
install(PROGRAMS columnstore-post-install
|
||||
columnstore-pre-uninstall
|
||||
@ -42,6 +43,7 @@ install(PROGRAMS columnstore-post-install
|
||||
disable-rep-columnstore.sh
|
||||
mariadb-command-line.sh
|
||||
mcs_module_installer.sh
|
||||
mcs-stop-controllernode.sh
|
||||
DESTINATION ${ENGINE_BINDIR} COMPONENT columnstore-engine)
|
||||
|
||||
install(FILES mariadb-columnstore.service
|
||||
|
@ -4,11 +4,33 @@
|
||||
#
|
||||
# Post-install steps for columnstore install
|
||||
|
||||
running_systemd() {
|
||||
if [ "$(ps --no-headers -o comm 1)" == "systemd" ]; then
|
||||
echo 0
|
||||
else
|
||||
echo 1
|
||||
fi
|
||||
}
|
||||
|
||||
rpmmode=install
|
||||
user=`whoami 2>/dev/null`
|
||||
|
||||
quiet=0
|
||||
|
||||
stop_mysqld=0
|
||||
if [ -z "$(pgrep -x mysqld)" ];then
|
||||
|
||||
# Startup mysqld
|
||||
systemctl cat mariadb.service > /dev/null 2>&1
|
||||
if [ $? -eq 0 ] && [ $(running_systemd) -eq 0 ]; then
|
||||
systemctl start mariadb.service
|
||||
else
|
||||
/usr/bin/mysqld_safe &
|
||||
fi
|
||||
stop_mysqld=1
|
||||
fi
|
||||
sleep 2
|
||||
|
||||
if [ -f @ENGINE_SYSCONFDIR@/columnstore/storagemanager.cnf.rpmsave ]; then
|
||||
/bin/cp -f @ENGINE_SYSCONFDIR@/columnstore/storagemanager.cnf @ENGINE_SYSCONFDIR@/columnstore/storagemanager.cnf.new
|
||||
/bin/cp -f @ENGINE_SYSCONFDIR@/columnstore/storagemanager.cnf.rpmsave @ENGINE_SYSCONFDIR@/columnstore/storagemanager.cnf
|
||||
@ -157,11 +179,23 @@ fi
|
||||
postConfigure
|
||||
systemctl start mariadb-columnstore
|
||||
|
||||
while [ -z $(pgrep -x controllernode) ];
|
||||
# Wait for all columnstore to be ready, DDLProc is final process in startup order
|
||||
while [ -z "$(pgrep -x DDLProc)" ];
|
||||
do
|
||||
sleep 2
|
||||
sleep 1
|
||||
done
|
||||
|
||||
dbbuilder 7 > $tmpDir/dbbuilder.log
|
||||
exit 0
|
||||
|
||||
if [ $stop_mysqld -eq 1 ];then
|
||||
# Make sure we stop mariadb since it wasn't running prior to columnstore installation
|
||||
systemctl cat mariadb.service > /dev/null 2>&1
|
||||
if [ $? -eq 0 ] && [ $(running_systemd) -eq 0 ]; then
|
||||
systemctl stop mariadb.service > /dev/null 2>&1
|
||||
else
|
||||
pkill mysqld
|
||||
fi
|
||||
|
||||
fi
|
||||
sleep 2
|
||||
exit 0
|
||||
|
@ -10,7 +10,6 @@ running_systemd() {
|
||||
else
|
||||
echo 1
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
# Test we are using systemd
|
||||
@ -22,29 +21,32 @@ else
|
||||
kill $(pidof $PROGS) > /dev/null
|
||||
sleep 3
|
||||
kill -9 $(pidof $PROGS) > /dev/null
|
||||
clearShm > /dev/null 2>&1
|
||||
fi
|
||||
|
||||
if [ -n "$(pgrep -x ProcMon)" ] || [ -n "$(pgrep -x ProcMgr)" ];then
|
||||
# Old system must be running, kill ProcMon/ProcMgr
|
||||
pkill ProcMon
|
||||
pkill ProcMgr
|
||||
fi
|
||||
|
||||
rm -f /etc/profile.d/columnstoreAlias.sh
|
||||
|
||||
rm -f /var/log/mariadb/columnstore/activeAlarms > /dev/null 2>&1
|
||||
rm -f /var/log/mariadb/columnstore/*.log1 > /dev/null 2>&1
|
||||
|
||||
# delete Mariab Columnstore shared memory segments
|
||||
clearShm > /dev/null 2>&1
|
||||
|
||||
#get temp directory
|
||||
tmpDir=`mcsGetConfig SystemConfig SystemTempFileDir`
|
||||
if [[ $tmpDir = *"tmp" ]]; then
|
||||
# delete tmp files
|
||||
rm -rf $tmpDir/*
|
||||
fi
|
||||
|
||||
rm -f /var/lib/columnstore/local/*.columnstore
|
||||
rm -rf /var/lib/columnstore/local/etc/
|
||||
rm -f /var/lib/columnstore/data/bulk/tmp/job/* >/dev/null 2>&1
|
||||
rm -f /var/lib/columnstore/local/moveDbrootTransactionLog
|
||||
rm -rf /var/log/mariadb/columnstore/
|
||||
rm -rf /tmp/columnstore_tmp_files
|
||||
rm -rf /usr/share/columnstore
|
||||
|
||||
lockdir=`mcsGetConfig Installation LockFileDirectory`
|
||||
rm -f $lockdir/columnstore
|
||||
@ -107,7 +109,6 @@ fi
|
||||
/bin/cp -f @ENGINE_SYSCONFDIR@/columnstore/Columnstore.xml @ENGINE_SYSCONFDIR@/columnstore/Columnstore.xml.rpmsave > /dev/null 2>&1
|
||||
/bin/cp -f @ENGINE_SYSCONFDIR@/columnstore/storagemanager.cnf @ENGINE_SYSCONFDIR@/columnstore/storagemanager.cnf.rpmsave > /dev/null 2>&1
|
||||
/bin/cp -f @MARIADB_MYCNFDIR@/columnstore.cnf @MARIADB_MYCNFDIR@/columnstore.cnf.rpmsave > /dev/null 2>&1
|
||||
cp @ENGINE_SUPPORTDIR@/myCnf-include-args.text @ENGINE_SUPPORTDIR@/myCnf-include-args.text.rpmsave >& /dev/null
|
||||
rm -f @ENGINE_SYSCONFDIR@/columnstore/AlarmConfig.xml.installSave
|
||||
|
||||
#remove OAMdbrootCheck file
|
||||
|
@ -8,7 +8,7 @@ Type=forking
|
||||
Environment="SKIP_OAM_INIT=1"
|
||||
ExecStart=@ENGINE_BINDIR@/controllernode
|
||||
Restart=on-failure
|
||||
ExecStop=/usr/bin/env bash -c "/bin/kill -15 $MAINPID && sleep 2 && /bin/kill -9 $(pidof controllernode) || /bin/true"
|
||||
ExecStop=@ENGINE_BINDIR@/mcs-stop-controllernode.sh $MAINPID
|
||||
|
||||
[Install]
|
||||
WantedBy=mariadb-columnstore.service
|
||||
|
@ -1,6 +1,6 @@
|
||||
[Unit]
|
||||
Description=mcs-ddlproc
|
||||
PartOf=mcs-writeengineserver.service
|
||||
PartOf=mcs-exemgr.service
|
||||
After=mcs-dmlproc.service
|
||||
|
||||
[Service]
|
||||
@ -8,7 +8,7 @@ Type=simple
|
||||
Environment="SKIP_OAM_INIT=1"
|
||||
ExecStart=@ENGINE_BINDIR@/DDLProc
|
||||
Restart=on-failure
|
||||
ExecStop=/usr/bin/env bash -c "/bin/kill -15 $(pidof DDLProc) && sleep 2 && /bin/kill -9 $(pidof DDLProc) || /bin/true"
|
||||
TimeoutStopSec=2
|
||||
|
||||
[Install]
|
||||
WantedBy=mariadb-columnstore.service
|
||||
|
@ -1,14 +1,14 @@
|
||||
[Unit]
|
||||
Description=mcs-dmlproc
|
||||
PartOf=mcs-writeengineserver.service
|
||||
After=mcs-writeengineserver.service
|
||||
PartOf=mcs-exemgr.service
|
||||
After=mcs-exemgr.service
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
Environment="SKIP_OAM_INIT=1"
|
||||
ExecStart=@ENGINE_BINDIR@/DMLProc
|
||||
Restart=on-failure
|
||||
ExecStop=/usr/bin/env bash -c "/bin/kill -15 $(pidof DMLProc) && sleep 2 && /bin/kill -9 $(pidof DMLProc) || /bin/true"
|
||||
TimeoutStopSec=2
|
||||
|
||||
[Install]
|
||||
WantedBy=mariadb-columnstore.service
|
||||
|
@ -1,14 +1,14 @@
|
||||
[Unit]
|
||||
Description=mcs-exemgr
|
||||
PartOf=mcs-controllernode.service
|
||||
After=mcs-controllernode.service
|
||||
PartOf=mcs-writeengineserver.service
|
||||
After=mcs-writeengineserver.service
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
Environment="SKIP_OAM_INIT=1"
|
||||
ExecStart=@ENGINE_BINDIR@/ExeMgr
|
||||
Restart=on-failure
|
||||
ExecStop=/usr/bin/env bash -c "/bin/kill -15 $(pidof ExeMgr) && sleep 2 && /bin/kill -9 $(pidof ExeMgr) || /bin/true"
|
||||
TimeoutStopSec=2
|
||||
|
||||
[Install]
|
||||
WantedBy=mariadb-columnstore.service
|
||||
|
@ -1,14 +1,15 @@
|
||||
[Unit]
|
||||
Description=mcs-primproc
|
||||
PartOf=mcs-exemgr.service
|
||||
After=mcs-exemgr.service
|
||||
PartOf=mcs-workernode.service
|
||||
PartOf=mcs-controllernode.service
|
||||
After=mcs-controllernode.service
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
Environment="SKIP_OAM_INIT=1"
|
||||
ExecStart=@ENGINE_BINDIR@/PrimProc
|
||||
Restart=on-failure
|
||||
ExecStop=/usr/bin/env bash -c "/bin/kill -15 $(pidof PrimProc) && sleep 2 && /bin/kill -9 $(pidof PrimProc) || /bin/true"
|
||||
TimeoutStopSec=2
|
||||
|
||||
[Install]
|
||||
WantedBy=mariadb-columnstore.service
|
||||
|
15
oam/install_scripts/mcs-stop-controllernode.sh.in
Normal file
15
oam/install_scripts/mcs-stop-controllernode.sh.in
Normal file
@ -0,0 +1,15 @@
|
||||
#!/bin/bash
|
||||
|
||||
/bin/kill -15 "$1"
|
||||
systemctl stop mcs-workernode --ignore-dependencies
|
||||
timeout=$(mcsGetConfig SystemConfig DBRMTimeout)
|
||||
|
||||
while [ -n "$(pgrep -x controllernode)" ] && [ $timeout -gt 0 ]
|
||||
do
|
||||
sleep 1
|
||||
((--timeout))
|
||||
done
|
||||
|
||||
if [ -n "$(pgrep -x controllernode)" ]; then
|
||||
/bin/kill -9 "$1"
|
||||
fi
|
@ -9,8 +9,8 @@ Environment="SKIP_OAM_INIT=1"
|
||||
ExecStart=@ENGINE_BINDIR@/workernode DBRM_Worker1
|
||||
Restart=on-failure
|
||||
ExecStop=-@ENGINE_BINDIR@/save_brm
|
||||
ExecStop=/usr/bin/env bash -c "/bin/kill -15 $MAINPID && sleep 2 && /bin/kill -9 $(pidof workernode) || /bin/true"
|
||||
ExecStopPost=/usr/bin/env bash -c "clearShm > /dev/null 2>&1"
|
||||
TimeoutStopSec=2
|
||||
|
||||
[Install]
|
||||
WantedBy=mariadb-columnstore.service
|
||||
|
@ -1,14 +1,14 @@
|
||||
[Unit]
|
||||
Description=WriteEngineServer
|
||||
PartOf=mcs-exemgr.service
|
||||
After=mcs-exemgr.service
|
||||
PartOf=mcs-primproc.service
|
||||
After=mcs-primproc.service
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
Environment="SKIP_OAM_INIT=1"
|
||||
ExecStart=@ENGINE_BINDIR@/WriteEngineServer
|
||||
Restart=on-failure
|
||||
ExecStop=/usr/bin/env bash -c "/bin/kill -15 $(pidof WriteEngineServer) && sleep 2 && /bin/kill -9 $(pidof WriteEngineServer) || /bin/true"
|
||||
TimeoutStopSec=2
|
||||
|
||||
[Install]
|
||||
WantedBy=mariadb-columnstore.service
|
||||
|
@ -5,13 +5,6 @@
|
||||
# Post-install steps for calpont-mysql install
|
||||
|
||||
# check if running systemd
|
||||
running_systemd() {
|
||||
if [ "$(ps --no-headers -o comm 1)" == "systemd" ]; then
|
||||
echo 0
|
||||
else
|
||||
echo 1
|
||||
fi
|
||||
}
|
||||
|
||||
# check log for error
|
||||
checkForError() {
|
||||
@ -63,20 +56,6 @@ done
|
||||
# Install various Calpont stuff...
|
||||
install_mcs_mysql.sh --tmpdir=$tmpdir
|
||||
|
||||
# Restart MariDB, otherwise engine does not show up.
|
||||
# Test we are using systemd
|
||||
systemctl cat mariadb.service > /dev/null 2>&1
|
||||
if [ $? -eq 0 ] && [ $(running_systemd) -eq 0 ]; then
|
||||
systemctl restart mariadb.service > /dev/null 2>&1
|
||||
else
|
||||
pkill mysqld
|
||||
sleep 2
|
||||
export MYSQL_OPTS="--skip-grant-tables"
|
||||
/usr/bin/mysqld_safe --skip-grant-tables &
|
||||
unset MYSQL_OPTS
|
||||
fi
|
||||
sleep 5
|
||||
|
||||
checkForError
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "ERROR: Invalid password in .my.cnf, or Columnstore plugin install missing"
|
||||
|
@ -2372,7 +2372,7 @@ void Oam::setProcessStatus(const std::string process, const std::string module,
|
||||
void Oam::processInitComplete(std::string processName, int state)
|
||||
{
|
||||
//This method takes too long on Windows and doesn't do anything there anyway...
|
||||
if (getenv("SKIP_OAM_INIT") != NULL)
|
||||
// Disable legacy OAM
|
||||
return;
|
||||
// get current Module name
|
||||
string moduleName;
|
||||
|
@ -111,6 +111,8 @@ void OamCache::checkReload()
|
||||
// Restore for Windows when we support multiple PMs
|
||||
while (it != uniquePids.end())
|
||||
{
|
||||
// Disable legacy-OAM.
|
||||
/*
|
||||
if (getenv("SKIP_OAM_INIT") == NULL)
|
||||
{
|
||||
try
|
||||
@ -182,6 +184,7 @@ void OamCache::checkReload()
|
||||
}
|
||||
}
|
||||
else
|
||||
*/
|
||||
{
|
||||
pmToConnectionMap[*it] = i++;
|
||||
moduleIds.push_back(*it);
|
||||
|
@ -174,10 +174,8 @@ void setupSignalHandlers()
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
|
||||
// print a warning if this is a developer build
|
||||
if (getenv("SKIP_OAM_INIT"))
|
||||
{
|
||||
cout << "SKIP_OAM_INIT is set" << endl;
|
||||
cout << "SKIP_OAM_INIT is set and legacy OAM is disabled by default" << endl;
|
||||
sleep(2);
|
||||
}
|
||||
|
||||
|
@ -250,12 +250,10 @@ void mysqlSetup()
|
||||
{
|
||||
Oam oam;
|
||||
string cmd;
|
||||
|
||||
string tmpDir = startup::StartUp::tmpDir();
|
||||
|
||||
string mysqlpw = oam.getMySQLPassword();
|
||||
|
||||
string passwordOption = "";
|
||||
|
||||
if ( mysqlpw != oam::UnassignedName )
|
||||
passwordOption = " --password=" + mysqlpw;
|
||||
|
||||
|
@ -89,13 +89,8 @@ int main(int argc, char* argv[])
|
||||
string cmd;
|
||||
string numBlocksPctParam = "";
|
||||
string totalUmMemoryParam = "";
|
||||
string reuseConfig = "n";
|
||||
string mysqlPort = "";
|
||||
string homeDir = "/root";
|
||||
bool rootUser = true;
|
||||
Config* sysConfig = Config::makeConfig();
|
||||
|
||||
mysqlPort = sysConfig->getConfig("Installation", "MySQLPort");
|
||||
|
||||
//check if root-user
|
||||
int user;
|
||||
@ -122,15 +117,11 @@ int main(int argc, char* argv[])
|
||||
char timestamp[200];
|
||||
strftime (timestamp, 200, "%m:%d:%y-%H:%M:%S", &tm);
|
||||
string currentDate = timestamp;
|
||||
|
||||
string postConfigureLog = "/var/log/columnstore-postconfigure-" + currentDate;
|
||||
|
||||
// perform single server install
|
||||
cout << endl << "Performing the Single Server Install." << endl << endl;
|
||||
|
||||
//setup to Columnstore.xml file for single server
|
||||
//singleServerConfigSetup(sysConfig);
|
||||
|
||||
if (!rootUser)
|
||||
{
|
||||
if (!updateBash(homeDir))
|
||||
@ -147,7 +138,7 @@ int main(int argc, char* argv[])
|
||||
totalUmMemoryParam = "-";
|
||||
}
|
||||
|
||||
cmd = "columnstore_installer dummy.rpm dummy.rpm dummy.rpm dummy.rpm dummy.rpm initial dummy " + reuseConfig + " --nodeps ' ' 1 " + numBlocksPctParam + " " + totalUmMemoryParam;
|
||||
cmd = "columnstore_installer dummy.rpm dummy.rpm dummy.rpm dummy.rpm dummy.rpm initial dummy n --nodeps ' ' 1 " + numBlocksPctParam + " " + totalUmMemoryParam;
|
||||
system(cmd.c_str());
|
||||
exit(0);
|
||||
}
|
||||
|
@ -618,6 +618,7 @@ int RedistributeControlThread::executeRedistributePlan()
|
||||
try
|
||||
{
|
||||
// skip system status check in case no OAM
|
||||
/*
|
||||
if (getenv("SKIP_OAM_INIT") == NULL)
|
||||
{
|
||||
// make sure system is in active state
|
||||
@ -646,6 +647,7 @@ int RedistributeControlThread::executeRedistributePlan()
|
||||
sleep(1);;
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
if (fStopAction)
|
||||
return RED_EC_USER_STOP;
|
||||
|
@ -542,7 +542,7 @@ void WESDHandler::setup()
|
||||
}
|
||||
|
||||
// getModuleStatus will take too long. Also to test in development
|
||||
if (getenv("SKIP_OAM_INIT") == NULL)
|
||||
/* if (getenv("SKIP_OAM_INIT") == NULL)
|
||||
{
|
||||
vector<unsigned int>& aVec = fRef.fCmdArgs.getPmVec();
|
||||
|
||||
@ -573,6 +573,7 @@ void WESDHandler::setup()
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
int rtn = fDbrm.getSystemReady();
|
||||
|
||||
|
Reference in New Issue
Block a user