You've already forked mariadb-columnstore-engine
							
							
				mirror of
				https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
				synced 2025-11-03 17:13:17 +03:00 
			
		
		
		
	chore(binaries): remove redundant reset_locks. Use mcs-shmem-locks instead.
This commit is contained in:
		
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -80,7 +80,6 @@ versioning/BRM/controllernode
 | 
				
			|||||||
versioning/BRM/copylocktest
 | 
					versioning/BRM/copylocktest
 | 
				
			||||||
versioning/BRM/dbrmctl
 | 
					versioning/BRM/dbrmctl
 | 
				
			||||||
versioning/BRM/load_brm
 | 
					versioning/BRM/load_brm
 | 
				
			||||||
versioning/BRM/reset_locks
 | 
					 | 
				
			||||||
versioning/BRM/rollback
 | 
					versioning/BRM/rollback
 | 
				
			||||||
versioning/BRM/save_brm
 | 
					versioning/BRM/save_brm
 | 
				
			||||||
versioning/BRM/tablelocktest
 | 
					versioning/BRM/tablelocktest
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										1
									
								
								debian/mariadb-plugin-columnstore.install
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								debian/mariadb-plugin-columnstore.install
									
									
									
									
										vendored
									
									
								
							@@ -44,7 +44,6 @@ usr/bin/mcsSetConfig
 | 
				
			|||||||
usr/bin/mycnfUpgrade
 | 
					usr/bin/mycnfUpgrade
 | 
				
			||||||
usr/bin/post-mysql-install
 | 
					usr/bin/post-mysql-install
 | 
				
			||||||
usr/bin/post-mysqld-install
 | 
					usr/bin/post-mysqld-install
 | 
				
			||||||
usr/bin/reset_locks
 | 
					 | 
				
			||||||
usr/bin/rollback
 | 
					usr/bin/rollback
 | 
				
			||||||
usr/bin/save_brm
 | 
					usr/bin/save_brm
 | 
				
			||||||
usr/bin/smcat
 | 
					usr/bin/smcat
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -59,13 +59,6 @@ columnstore_link(dbrmctl ${ENGINE_LDFLAGS} ${ENGINE_OAM_LIBS} ${ENGINE_EXEC_LIBS
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
# ########## next target ###############
 | 
					# ########## next target ###############
 | 
				
			||||||
 | 
					
 | 
				
			||||||
set(reset_locks_SRCS reset_locks.cpp)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
columnstore_executable(reset_locks ${reset_locks_SRCS})
 | 
					 | 
				
			||||||
columnstore_link(reset_locks ${ENGINE_LDFLAGS} ${ENGINE_OAM_LIBS} ${ENGINE_EXEC_LIBS} ${NETSNMP_LIBRARIES})
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# ########## next target ###############
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
set(rollback_SRCS rollback.cpp)
 | 
					set(rollback_SRCS rollback.cpp)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
columnstore_executable(rollback ${rollback_SRCS})
 | 
					columnstore_executable(rollback ${rollback_SRCS})
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,163 +0,0 @@
 | 
				
			|||||||
/* Copyright (C) 2014 InfiniDB, Inc.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   This program is free software; you can redistribute it and/or
 | 
					 | 
				
			||||||
   modify it under the terms of the GNU General Public License
 | 
					 | 
				
			||||||
   as published by the Free Software Foundation; version 2 of
 | 
					 | 
				
			||||||
   the License.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   This program is distributed in the hope that it will be useful,
 | 
					 | 
				
			||||||
   but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
					 | 
				
			||||||
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
					 | 
				
			||||||
   GNU General Public License for more details.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   You should have received a copy of the GNU General Public License
 | 
					 | 
				
			||||||
   along with this program; if not, write to the Free Software
 | 
					 | 
				
			||||||
   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
 | 
					 | 
				
			||||||
   MA 02110-1301, USA. */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// $Id: reset_locks.cpp 1823 2013-01-21 14:13:09Z rdempsey $
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include <unistd.h>
 | 
					 | 
				
			||||||
#include <iostream>
 | 
					 | 
				
			||||||
using namespace std;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include "calpontsystemcatalog.h"
 | 
					 | 
				
			||||||
#include "sessionmanager.h"
 | 
					 | 
				
			||||||
#include "mastersegmenttable.h"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include "rwlock.h"
 | 
					 | 
				
			||||||
using namespace rwlock;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include "shmkeys.h"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
using namespace BRM;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define RESET(str, i)                                      \
 | 
					 | 
				
			||||||
  do                                                       \
 | 
					 | 
				
			||||||
  {                                                        \
 | 
					 | 
				
			||||||
    cout << " - checking " << str << " semaphore" << endl; \
 | 
					 | 
				
			||||||
    rwlock[i]->reset();                                    \
 | 
					 | 
				
			||||||
  } while (0)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define PRINT(str, i)                                                                                \
 | 
					 | 
				
			||||||
  do                                                                                                 \
 | 
					 | 
				
			||||||
  {                                                                                                  \
 | 
					 | 
				
			||||||
    cout << " - checking " << str << " semaphore" << endl                                            \
 | 
					 | 
				
			||||||
         << "   - r: " << rwlock[i]->getReading() << " w: " << rwlock[i]->getWriting()               \
 | 
					 | 
				
			||||||
         << " rwt: " << rwlock[i]->getReadersWaiting() << " wwt: " << rwlock[i]->getWritersWaiting() \
 | 
					 | 
				
			||||||
         << endl;                                                                                    \
 | 
					 | 
				
			||||||
  } while (0)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
namespace
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
bool vFlg;
 | 
					 | 
				
			||||||
bool nFlg;
 | 
					 | 
				
			||||||
bool sFlg;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void usage()
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  cout << "usage: reset_locks [-vnh]" << endl;
 | 
					 | 
				
			||||||
  cout << "   reset all ColumnStore shared memory locks" << endl;
 | 
					 | 
				
			||||||
  cout << "   -h display this help" << endl;
 | 
					 | 
				
			||||||
  cout << "   -v verbose output" << endl;
 | 
					 | 
				
			||||||
  cout << "   -s skip session mgr resets" << endl;
 | 
					 | 
				
			||||||
  cout << "   -n don't actually reset anything (implies -v)" << endl;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
}  // namespace
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
int main(int argc, char** argv)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  BRM::DBRM dbrm;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  int c;
 | 
					 | 
				
			||||||
  opterr = 0;
 | 
					 | 
				
			||||||
  vFlg = false;
 | 
					 | 
				
			||||||
  nFlg = false;
 | 
					 | 
				
			||||||
  sFlg = false;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  while ((c = getopt(argc, argv, "vnh")) != EOF)
 | 
					 | 
				
			||||||
    switch (c)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      case 'v': vFlg = true; break;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      case 'n': nFlg = true; break;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      case 's': sFlg = true; break;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      case 'h':
 | 
					 | 
				
			||||||
      default:
 | 
					 | 
				
			||||||
        usage();
 | 
					 | 
				
			||||||
        return (c == 'h' ? 0 : 1);
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  if (nFlg)
 | 
					 | 
				
			||||||
    vFlg = true;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  ShmKeys keys;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  cerr << "(Exception msgs are probably OK)" << std::endl;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  RWLock* rwlock[MasterSegmentTable::nTables];
 | 
					 | 
				
			||||||
  int RWLockKeys[MasterSegmentTable::nTables];
 | 
					 | 
				
			||||||
  int i;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  if (MasterSegmentTable::nTables != 5)
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    cout << "There are more locks than reset_locks knows of.  Time for an update." << endl;
 | 
					 | 
				
			||||||
    exit(1);
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  RWLockKeys[0] = keys.KEYRANGE_EXTENTMAP_BASE;
 | 
					 | 
				
			||||||
  RWLockKeys[1] = keys.KEYRANGE_EMFREELIST_BASE;
 | 
					 | 
				
			||||||
  RWLockKeys[2] = keys.KEYRANGE_VBBM_BASE;
 | 
					 | 
				
			||||||
  RWLockKeys[3] = keys.KEYRANGE_VSS_BASE;
 | 
					 | 
				
			||||||
  RWLockKeys[4] = keys.KEYRANGE_CL_BASE;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  for (i = 0; i < MasterSegmentTable::nTables; i++)
 | 
					 | 
				
			||||||
    rwlock[i] = new RWLock(RWLockKeys[i]);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  if (vFlg)
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    PRINT("Extent Map", 0);
 | 
					 | 
				
			||||||
    PRINT("Extent Map free list", 1);
 | 
					 | 
				
			||||||
    PRINT("VBBM", 2);
 | 
					 | 
				
			||||||
    PRINT("VSS", 3);
 | 
					 | 
				
			||||||
    PRINT("CL", 4);
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  if (!nFlg)
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    RESET("Extent Map", 0);
 | 
					 | 
				
			||||||
    RESET("Extent Map free list", 1);
 | 
					 | 
				
			||||||
    RESET("VBBM", 2);
 | 
					 | 
				
			||||||
    RESET("VSS", 3);
 | 
					 | 
				
			||||||
    RESET("CL", 4);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (!sFlg)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      if (dbrm.isDBRMReady())
 | 
					 | 
				
			||||||
      {
 | 
					 | 
				
			||||||
        cout << " - resetting SessionManager semaphore" << endl;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        try
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          execplan::SessionManager sm;
 | 
					 | 
				
			||||||
          sm.reset();
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        catch (std::exception& e)
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          std::cout << e.what() << std::endl;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  for (i = 0; i < MasterSegmentTable::nTables; i++)
 | 
					 | 
				
			||||||
    delete rwlock[i];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  std::cout << "OK." << std::endl;
 | 
					 | 
				
			||||||
  return 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
		Reference in New Issue
	
	Block a user