diff options
author | unknown <tomas@poseidon.ndb.mysql.com> | 2004-12-20 12:36:14 +0100 |
---|---|---|
committer | unknown <tomas@poseidon.ndb.mysql.com> | 2004-12-20 12:36:14 +0100 |
commit | 8c01aba776c21448f1f10be51200cd2d1ebd2ab5 (patch) | |
tree | 49a42be532437e1949397ca04ceb31401b770066 /ndb/src/ndbapi/Ndbinit.cpp | |
parent | 6cbcd3423afd72961d7f04c5536426ba92e24db8 (diff) | |
download | mariadb-git-8c01aba776c21448f1f10be51200cd2d1ebd2ab5.tar.gz |
added config parameter Group on connection
moved NdbWaiter, m_ndb_cluster_connection, to impl class
moved node selection things to cluster connection
moved all private things to impl class
added opts for shared memory and node selection
changed opts handling somewhat; introduced enum for options and common handling of option variables
added checks for transporter support
automatic addition of shared mem transporters
moved wait_until_ready code to cluster connection
added control of usage of new node selection method
ndb/include/mgmapi/mgmapi_config_parameters.h:
added config parameter Group on connection
ndb/include/ndbapi/Ndb.hpp:
moved NdbWaiter, m_ndb_cluster_connection, to impl class
moved node selection things to cluster connection
ndb/include/ndbapi/ndb_cluster_connection.hpp:
moved all private things to impl class
ndb/include/util/ndb_opts.h:
added opts for shared memory and node selection
ndb/src/kernel/vm/Configuration.cpp:
changed opts handling somewhat; introduced enum for options and common handling of option variables
ndb/src/mgmclient/main.cpp:
changed opts handling somewhat; introduced enum for options and common handling of option variables
ndb/src/mgmsrv/ConfigInfo.cpp:
added checks for transporter support
automatic addition of shared mem transporters
ndb/src/mgmsrv/MgmtSrvr.cpp:
in alloc node id first choose connection with specified hostname
ndb/src/mgmsrv/main.cpp:
changed opts handling somewhat; introduced enum for options and common handling of option variables
ndb/src/ndbapi/DictCache.hpp:
added include file
ndb/src/ndbapi/Ndb.cpp:
enabled using new node selection method
moved wait_until_ready code to cluster connection
moved node selection (hint) to cluster connection
removed start transaction dgroup
ndb/src/ndbapi/NdbDictionaryImpl.hpp:
removed and added inclusde files
ndb/src/ndbapi/NdbImpl.hpp:
moved things from Ndb into Impl class
moved waiter things to new file NdbWaiter.hpp
ndb/src/ndbapi/NdbScanOperation.cpp:
ndbwaiter is no in impl class
ndb/src/ndbapi/Ndbif.cpp:
ndbwaiter is no in impl class
ndb/src/ndbapi/Ndbinit.cpp:
moved some Ndb things into impl class
ndb/src/ndbapi/TransporterFacade.hpp:
changed friend declaration
ndb/src/ndbapi/ndb_cluster_connection.cpp:
moved node selection things to cluster connection
moved things from cluster connection to cluster connection impl class
ndb/test/ndbapi/testNdbApi.cpp:
removed start transaction dgroup
ndb/tools/delete_all.cpp:
changed opts handling somewhat; introduced enum for options and common handling of option variables
ndb/tools/desc.cpp:
changed opts handling somewhat; introduced enum for options and common handling of option variables
ndb/tools/drop_index.cpp:
changed opts handling somewhat; introduced enum for options and common handling of option variables
ndb/tools/drop_tab.cpp:
changed opts handling somewhat; introduced enum for options and common handling of option variables
ndb/tools/listTables.cpp:
changed opts handling somewhat; introduced enum for options and common handling of option variables
ndb/tools/restore/restore_main.cpp:
changed opts handling somewhat; introduced enum for options and common handling of option variables
ndb/tools/select_all.cpp:
changed opts handling somewhat; introduced enum for options and common handling of option variables
ndb/tools/select_count.cpp:
changed opts handling somewhat; introduced enum for options and common handling of option variables
ndb/tools/waiter.cpp:
changed opts handling somewhat; introduced enum for options and common handling of option variables
sql/ha_ndbcluster.cc:
added control of usage of new node selection method
sql/mysqld.cc:
added control of usage of new node selection method
Diffstat (limited to 'ndb/src/ndbapi/Ndbinit.cpp')
-rw-r--r-- | ndb/src/ndbapi/Ndbinit.cpp | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/ndb/src/ndbapi/Ndbinit.cpp b/ndb/src/ndbapi/Ndbinit.cpp index 9754c25ab15..e1af7bd4cc5 100644 --- a/ndb/src/ndbapi/Ndbinit.cpp +++ b/ndb/src/ndbapi/Ndbinit.cpp @@ -50,7 +50,9 @@ Ndb(const char* aDataBase); Parameters: aDataBase : Name of the database. Remark: Connect to the database. ***************************************************************************/ -Ndb::Ndb( const char* aDataBase , const char* aSchema) { +Ndb::Ndb( const char* aDataBase , const char* aSchema) + : theImpl(NULL) +{ DBUG_ENTER("Ndb::Ndb()"); DBUG_PRINT("enter",("(old)Ndb::Ndb this=0x%x", this)); if (theNoOfNdbObjects < 0) @@ -66,6 +68,7 @@ Ndb::Ndb( const char* aDataBase , const char* aSchema) { Ndb::Ndb( Ndb_cluster_connection *ndb_cluster_connection, const char* aDataBase , const char* aSchema) + : theImpl(NULL) { DBUG_ENTER("Ndb::Ndb()"); DBUG_PRINT("enter",("Ndb::Ndb this=0x%x", this)); @@ -82,7 +85,10 @@ void Ndb::setup(Ndb_cluster_connection *ndb_cluster_connection, { DBUG_ENTER("Ndb::setup"); - m_ndb_cluster_connection= ndb_cluster_connection; + assert(theImpl == NULL); + theImpl= new NdbImpl(ndb_cluster_connection,*this); + theDictionary= &(theImpl->m_dictionary); + thePreparedTransactionsArray= NULL; theSentTransactionsArray= NULL; theCompletedTransactionsArray= NULL; @@ -93,8 +99,6 @@ void Ndb::setup(Ndb_cluster_connection *ndb_cluster_connection, theMaxNoOfTransactions= 0; theMinNoOfEventsToWakeUp= 0; prefixEnd= NULL; - theImpl= NULL; - theDictionary= NULL; theConIdleList= NULL; theOpIdleList= NULL; theScanOpIdleList= NULL; @@ -153,14 +157,12 @@ void Ndb::setup(Ndb_cluster_connection *ndb_cluster_connection, prefixEnd = prefixName + (len < (int) sizeof(prefixName) ? len : sizeof(prefixName) - 1); - theWaiter.m_mutex = TransporterFacade::instance()->theMutexPtr; + theImpl->theWaiter.m_mutex = TransporterFacade::instance()->theMutexPtr; // Signal that the constructor has finished OK if (theInitState == NotConstructed) theInitState = NotInitialised; - theImpl = new NdbImpl(); - { NdbGlobalEventBufferHandle *h= NdbGlobalEventBuffer_init(NDB_MAX_ACTIVE_EVENTS); @@ -171,11 +173,6 @@ void Ndb::setup(Ndb_cluster_connection *ndb_cluster_connection, theGlobalEventBufferHandle = h; } - theDictionary = new NdbDictionaryImpl(*this); - if (theDictionary == NULL) { - ndbout_c("Ndb cailed to allocate dictionary"); - exit(-1); - } DBUG_VOID_RETURN; } @@ -201,8 +198,6 @@ Ndb::~Ndb() DBUG_PRINT("enter",("Ndb::~Ndb this=0x%x",this)); doDisconnect(); - delete theDictionary; - NdbGlobalEventBuffer_drop(theGlobalEventBufferHandle); if (TransporterFacade::instance() != NULL && theNdbBlockNumber > 0){ @@ -245,7 +240,6 @@ Ndb::~Ndb() freeSignal(); releaseTransactionArrays(); - startTransactionNodeSelectionData.release(); delete []theConnectionArray; if(theCommitAckSignal != NULL){ @@ -292,14 +286,20 @@ NdbWaiter::~NdbWaiter(){ NdbCondition_Destroy(m_condition); } -NdbImpl::NdbImpl() : theNdbObjectIdMap(1024,1024), - theCurrentConnectIndex(0), - theNoOfDBnodes(0) +NdbImpl::NdbImpl(Ndb_cluster_connection *ndb_cluster_connection, + Ndb& ndb) + : m_ndb_cluster_connection(ndb_cluster_connection->m_impl), + m_dictionary(ndb), + theCurrentConnectIndex(0), + theNdbObjectIdMap(1024,1024), + theNoOfDBnodes(0) { int i; for (i = 0; i < MAX_NDB_NODES; i++) { the_release_ind[i] = 0; } + m_optimized_node_selection= + m_ndb_cluster_connection.m_optimized_node_selection; } NdbImpl::~NdbImpl() |