summaryrefslogtreecommitdiff
path: root/storage
diff options
context:
space:
mode:
authorunknown <svoj@april.(none)>2006-01-16 22:27:36 +0400
committerunknown <svoj@april.(none)>2006-01-16 22:27:36 +0400
commit6c83ba5c48991b430aca4d1e100c20ea377b179d (patch)
tree4ac0e82471b701fa66e448df4f8fd35b02990311 /storage
parentca4935e6eac99e7e6efe83f49dcb0554a2840c7d (diff)
parent0d0d68ab2a9df77c914a471f04cbbdaf9e570129 (diff)
downloadmariadb-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.c9
-rw-r--r--storage/ndb/include/kernel/ndb_limits.h12
-rw-r--r--storage/ndb/include/mgmapi/mgmapi_config_parameters.h2
-rw-r--r--storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp12
-rw-r--r--storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp6
-rw-r--r--storage/ndb/src/kernel/blocks/dbtup/Undo_buffer.cpp5
-rw-r--r--storage/ndb/src/kernel/blocks/pgman.cpp14
-rw-r--r--storage/ndb/src/kernel/blocks/restore.cpp2
-rw-r--r--storage/ndb/src/kernel/blocks/suma/Suma.hpp6
-rw-r--r--storage/ndb/src/mgmsrv/ConfigInfo.cpp12
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,