diff options
author | unknown <svoj@april.(none)> | 2006-01-16 22:27:36 +0400 |
---|---|---|
committer | unknown <svoj@april.(none)> | 2006-01-16 22:27:36 +0400 |
commit | 6c83ba5c48991b430aca4d1e100c20ea377b179d (patch) | |
tree | 4ac0e82471b701fa66e448df4f8fd35b02990311 /storage | |
parent | ca4935e6eac99e7e6efe83f49dcb0554a2840c7d (diff) | |
parent | 0d0d68ab2a9df77c914a471f04cbbdaf9e570129 (diff) | |
download | mariadb-git-6c83ba5c48991b430aca4d1e100c20ea377b179d.tar.gz |
Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into april.(none):/home/svoj/devel/mysql/BUG14194/mysql-5.1-new
mysql-test/r/fulltext.result:
Auto merged
mysql-test/t/fulltext.test:
Auto merged
Diffstat (limited to 'storage')
-rw-r--r-- | storage/innobase/os/os0thread.c | 9 | ||||
-rw-r--r-- | storage/ndb/include/kernel/ndb_limits.h | 12 | ||||
-rw-r--r-- | storage/ndb/include/mgmapi/mgmapi_config_parameters.h | 2 | ||||
-rw-r--r-- | storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp | 12 | ||||
-rw-r--r-- | storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp | 6 | ||||
-rw-r--r-- | storage/ndb/src/kernel/blocks/dbtup/Undo_buffer.cpp | 5 | ||||
-rw-r--r-- | storage/ndb/src/kernel/blocks/pgman.cpp | 14 | ||||
-rw-r--r-- | storage/ndb/src/kernel/blocks/restore.cpp | 2 | ||||
-rw-r--r-- | storage/ndb/src/kernel/blocks/suma/Suma.hpp | 6 | ||||
-rw-r--r-- | storage/ndb/src/mgmsrv/ConfigInfo.cpp | 12 |
10 files changed, 72 insertions, 8 deletions
diff --git a/storage/innobase/os/os0thread.c b/storage/innobase/os/os0thread.c index 847d0ee1cc7..1d1cb77b336 100644 --- a/storage/innobase/os/os0thread.c +++ b/storage/innobase/os/os0thread.c @@ -148,6 +148,15 @@ os_thread_create( exit(1); } #endif +#ifdef __NETWARE__ + ret = pthread_attr_setstacksize(&attr, + (size_t) NW_THD_STACKSIZE); + if (ret) { + fprintf(stderr, + "InnoDB: Error: pthread_attr_setstacksize returned %d\n", ret); + exit(1); + } +#endif os_mutex_enter(os_sync_mutex); os_thread_count++; os_mutex_exit(os_sync_mutex); diff --git a/storage/ndb/include/kernel/ndb_limits.h b/storage/ndb/include/kernel/ndb_limits.h index 11c429463ef..3f46f3802c7 100644 --- a/storage/ndb/include/kernel/ndb_limits.h +++ b/storage/ndb/include/kernel/ndb_limits.h @@ -141,4 +141,16 @@ */ #define NDB_SECTION_SEGMENT_SZ 60 +/* + * Restore Buffer in pages + * 4M + */ +#define LCP_RESTORE_BUFFER (4*32) + +/* + * Log buffer pages + * 8M + */ +#define LGMAN_LOG_BUFFER (8*32) + #endif diff --git a/storage/ndb/include/mgmapi/mgmapi_config_parameters.h b/storage/ndb/include/mgmapi/mgmapi_config_parameters.h index c257a61bcab..c2524cddfc3 100644 --- a/storage/ndb/include/mgmapi/mgmapi_config_parameters.h +++ b/storage/ndb/include/mgmapi/mgmapi_config_parameters.h @@ -85,6 +85,8 @@ #define CFG_DB_MAX_OPEN_FILES 159 +#define CFG_DB_DISK_PAGE_BUFFER_MEMORY 160 + #define CFG_NODE_ARBIT_RANK 200 #define CFG_NODE_ARBIT_DELAY 201 diff --git a/storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp b/storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp index 7b6ebd76b33..123b57ee31d 100644 --- a/storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp +++ b/storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp @@ -93,7 +93,6 @@ Cmvmi::Cmvmi(const Configuration & conf) : addRecSignal(GSN_TESTSIG, &Cmvmi::execTESTSIG); subscriberPool.setSize(5); - m_global_page_pool.setSize(1024+256, true); const ndb_mgm_configuration_iterator * db = theConfig.getOwnConfigIterator(); for(unsigned j = 0; j<LogLevel::LOGLEVEL_CATEGORIES; j++){ @@ -322,6 +321,17 @@ Cmvmi::execREAD_CONFIG_REQ(Signal* signal) theConfiguration.getOwnConfigIterator(); ndbrequire(p != 0); + Uint64 page_buffer = 64*1024*1024; + ndb_mgm_get_int64_parameter(p, CFG_DB_DISK_PAGE_BUFFER_MEMORY, &page_buffer); + + page_buffer /= GLOBAL_PAGE_SIZE; // in pages + if (page_buffer > 0) + { + page_buffer += LGMAN_LOG_BUFFER; + } + page_buffer += LCP_RESTORE_BUFFER; + m_global_page_pool.setSize(page_buffer + 64, true); + ReadConfigConf * conf = (ReadConfigConf*)signal->getDataPtrSend(); conf->senderRef = reference(); conf->senderData = senderData; diff --git a/storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp b/storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp index e9211285d71..be9f988cb7d 100644 --- a/storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp +++ b/storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp @@ -771,10 +771,14 @@ void Dblqh::execREAD_NODESCONF(Signal* signal) jam(); if (NodeBitmask::get(readNodes->allNodes, i)) { jam(); - m_sr_nodes.set(i); cnodeData[ind] = i; cnodeStatus[ind] = NodeBitmask::get(readNodes->inactiveNodes, i); //readNodes->getVersionId(i, readNodes->theVersionIds) not used + if (!NodeBitmask::get(readNodes->inactiveNodes, i)) + { + jam(); + m_sr_nodes.set(i); + } ind++; }//if }//for diff --git a/storage/ndb/src/kernel/blocks/dbtup/Undo_buffer.cpp b/storage/ndb/src/kernel/blocks/dbtup/Undo_buffer.cpp index 0adbec7d57b..0e57bb7d0c3 100644 --- a/storage/ndb/src/kernel/blocks/dbtup/Undo_buffer.cpp +++ b/storage/ndb/src/kernel/blocks/dbtup/Undo_buffer.cpp @@ -25,12 +25,13 @@ struct UndoPage { File_formats::Page_header m_page_header; + Uint32 _tupdata1; Uint32 m_state; // Used by buddy alg Uint32 m_words_used; Uint32 m_ref_count; - Uint32 m_data[GLOBAL_PAGE_SIZE_WORDS-3-(sizeof(File_formats::Page_header)>>2)]; + Uint32 m_data[GLOBAL_PAGE_SIZE_WORDS-4-(sizeof(File_formats::Page_header)>>2)]; - STATIC_CONST( DATA_WORDS = GLOBAL_PAGE_SIZE_WORDS-3-(sizeof(File_formats::Page_header)>>2) ); + STATIC_CONST( DATA_WORDS = GLOBAL_PAGE_SIZE_WORDS-4-(sizeof(File_formats::Page_header)>>2) ); }; Undo_buffer::Undo_buffer(Dbtup* tup) diff --git a/storage/ndb/src/kernel/blocks/pgman.cpp b/storage/ndb/src/kernel/blocks/pgman.cpp index 7525f9c2402..e7285fc7058 100644 --- a/storage/ndb/src/kernel/blocks/pgman.cpp +++ b/storage/ndb/src/kernel/blocks/pgman.cpp @@ -84,8 +84,6 @@ Pgman::Pgman(const Configuration & conf) : m_cleanup_ptr.i = RNIL; // should be a factor larger than number of pool pages - m_page_entry_pool.setSize(2000); - m_page_request_pool.setSize(10000); m_data_buffer_pool.setSize(1); m_page_hashlist.setSize(512); @@ -115,6 +113,18 @@ Pgman::execREAD_CONFIG_REQ(Signal* signal) theConfiguration.getOwnConfigIterator(); ndbrequire(p != 0); + Uint64 page_buffer = 64*1024*1024; + ndb_mgm_get_int64_parameter(p, CFG_DB_DISK_PAGE_BUFFER_MEMORY, &page_buffer); + + if (page_buffer > 0) + { + page_buffer /= GLOBAL_PAGE_SIZE; // in pages + m_page_entry_pool.setSize(2*page_buffer); + m_page_request_pool.setSize(10000); + m_param.m_max_pages = page_buffer; + m_param.m_max_hot_pages = (page_buffer * 9) / 10; + } + ReadConfigConf * conf = (ReadConfigConf*)signal->getDataPtrSend(); conf->senderRef = reference(); conf->senderData = senderData; diff --git a/storage/ndb/src/kernel/blocks/restore.cpp b/storage/ndb/src/kernel/blocks/restore.cpp index c4cac7abe74..2f4ed55c072 100644 --- a/storage/ndb/src/kernel/blocks/restore.cpp +++ b/storage/ndb/src/kernel/blocks/restore.cpp @@ -31,7 +31,7 @@ #include <dbtup/Dbtup.hpp> #include <KeyDescriptor.hpp> -#define PAGES (4*32) +#define PAGES LCP_RESTORE_BUFFER Restore::Restore(const Configuration & conf) : SimulatedBlock(RESTORE, conf), diff --git a/storage/ndb/src/kernel/blocks/suma/Suma.hpp b/storage/ndb/src/kernel/blocks/suma/Suma.hpp index 913e16df8f2..68cd3499fde 100644 --- a/storage/ndb/src/kernel/blocks/suma/Suma.hpp +++ b/storage/ndb/src/kernel/blocks/suma/Suma.hpp @@ -557,7 +557,11 @@ private: struct Buffer_page { - STATIC_CONST( DATA_WORDS = 8192 - 5); + STATIC_CONST( DATA_WORDS = 8192 - 9); + Uint32 _tupdata1; + Uint32 _tupdata2; + Uint32 _tupdata3; + Uint32 _tupdata4; Uint32 m_page_state; // Used by TUP buddy algorithm Uint32 m_page_chunk_ptr_i; Uint32 m_next_page; diff --git a/storage/ndb/src/mgmsrv/ConfigInfo.cpp b/storage/ndb/src/mgmsrv/ConfigInfo.cpp index 817943f5e51..b2592c0deea 100644 --- a/storage/ndb/src/mgmsrv/ConfigInfo.cpp +++ b/storage/ndb/src/mgmsrv/ConfigInfo.cpp @@ -761,6 +761,18 @@ const ConfigInfo::ParamInfo ConfigInfo::m_ParamInfo[] = { STR_VALUE(MAX_INT_RNIL)}, { + CFG_DB_DISK_PAGE_BUFFER_MEMORY, + "DiskPageBufferMemory", + DB_TOKEN, + "Number bytes on each "DB_TOKEN_PRINT" node allocated for disk page buffer cache", + ConfigInfo::CI_USED, + false, + ConfigInfo::CI_INT64, + "64M", + "4M", + "1024G" }, + + { CFG_DB_START_PARTIAL_TIMEOUT, "StartPartialTimeout", DB_TOKEN, |