Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
MariaDB
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
4c485eb1
Commit
4c485eb1
authored
Feb 22, 2006
by
jonas@perch.ndb.mysql.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ndb dd - bug#16657 - add new config variable
parent
fa2d73a9
Changes
14
Show whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
105 additions
and
58 deletions
+105
-58
storage/ndb/include/kernel/ndb_limits.h
storage/ndb/include/kernel/ndb_limits.h
+0
-6
storage/ndb/include/kernel/signaldata/FsReadWriteReq.hpp
storage/ndb/include/kernel/signaldata/FsReadWriteReq.hpp
+2
-1
storage/ndb/include/mgmapi/mgmapi_config_parameters.h
storage/ndb/include/mgmapi/mgmapi_config_parameters.h
+3
-2
storage/ndb/src/common/debugger/signaldata/FsReadWriteReq.cpp
...age/ndb/src/common/debugger/signaldata/FsReadWriteReq.cpp
+2
-0
storage/ndb/src/kernel/SimBlockList.cpp
storage/ndb/src/kernel/SimBlockList.cpp
+3
-2
storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp
storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp
+20
-5
storage/ndb/src/kernel/blocks/lgman.cpp
storage/ndb/src/kernel/blocks/lgman.cpp
+23
-30
storage/ndb/src/kernel/blocks/ndbfs/Ndbfs.cpp
storage/ndb/src/kernel/blocks/ndbfs/Ndbfs.cpp
+19
-5
storage/ndb/src/kernel/vm/GlobalData.hpp
storage/ndb/src/kernel/vm/GlobalData.hpp
+1
-0
storage/ndb/src/kernel/vm/SimulatedBlock.cpp
storage/ndb/src/kernel/vm/SimulatedBlock.cpp
+1
-0
storage/ndb/src/kernel/vm/SimulatedBlock.hpp
storage/ndb/src/kernel/vm/SimulatedBlock.hpp
+2
-1
storage/ndb/src/kernel/vm/ndbd_malloc_impl.cpp
storage/ndb/src/kernel/vm/ndbd_malloc_impl.cpp
+11
-2
storage/ndb/src/mgmsrv/ConfigInfo.cpp
storage/ndb/src/mgmsrv/ConfigInfo.cpp
+12
-0
storage/ndb/src/mgmsrv/InitConfigFileParser.cpp
storage/ndb/src/mgmsrv/InitConfigFileParser.cpp
+6
-4
No files found.
storage/ndb/include/kernel/ndb_limits.h
View file @
4c485eb1
...
@@ -149,10 +149,4 @@
...
@@ -149,10 +149,4 @@
*/
*/
#define LCP_RESTORE_BUFFER (4*32)
#define LCP_RESTORE_BUFFER (4*32)
/*
* Log buffer pages
* 8M
*/
#define LGMAN_LOG_BUFFER (8*32)
#endif
#endif
storage/ndb/include/kernel/signaldata/FsReadWriteReq.hpp
View file @
4c485eb1
...
@@ -60,6 +60,7 @@ public:
...
@@ -60,6 +60,7 @@ public:
fsFormatArrayOfPages
=
1
,
fsFormatArrayOfPages
=
1
,
fsFormatListOfMemPages
=
2
,
fsFormatListOfMemPages
=
2
,
fsFormatGlobalPage
=
3
,
fsFormatGlobalPage
=
3
,
fsFormatSharedPage
=
4
,
fsFormatMax
fsFormatMax
};
};
...
...
storage/ndb/include/mgmapi/mgmapi_config_parameters.h
View file @
4c485eb1
...
@@ -88,11 +88,12 @@
...
@@ -88,11 +88,12 @@
#define CFG_DB_STRING_MEMORY 161
/* used from 5.1 */
#define CFG_DB_STRING_MEMORY 161
/* used from 5.1 */
#define CFG_DB_INITIAL_OPEN_FILES 162
/* used from 5.1 */
#define CFG_DB_INITIAL_OPEN_FILES 162
/* used from 5.1 */
#define CFG_DB_DATA_MEM_2 199
/* used in special build in 5.1 */
#define CFG_DB_DISK_PAGE_BUFFER_MEMORY 160
#define CFG_DB_DISK_PAGE_BUFFER_MEMORY 160
#define CFG_DB_STRING_MEMORY 161
#define CFG_DB_STRING_MEMORY 161
#define CFG_DB_SGA 198
/* super pool mem */
#define CFG_DB_DATA_MEM_2 199
/* used in special build in 5.1 */
#define CFG_NODE_ARBIT_RANK 200
#define CFG_NODE_ARBIT_RANK 200
#define CFG_NODE_ARBIT_DELAY 201
#define CFG_NODE_ARBIT_DELAY 201
...
...
storage/ndb/src/common/debugger/signaldata/FsReadWriteReq.cpp
View file @
4c485eb1
...
@@ -49,6 +49,8 @@ printFSREADWRITEREQ(FILE * output, const Uint32 * theData,
...
@@ -49,6 +49,8 @@ printFSREADWRITEREQ(FILE * output, const Uint32 * theData,
break
;
break
;
case
FsReadWriteReq
:
:
fsFormatGlobalPage
:
case
FsReadWriteReq
:
:
fsFormatGlobalPage
:
fprintf
(
output
,
"List of global pages)
\n
"
);
fprintf
(
output
,
"List of global pages)
\n
"
);
case
FsReadWriteReq
:
:
fsFormatSharedPage
:
fprintf
(
output
,
"List of shared pages)
\n
"
);
break
;
break
;
default:
default:
fprintf
(
output
,
"fsFormatMax not handled
\n
"
);
fprintf
(
output
,
"fsFormatMax not handled
\n
"
);
...
...
storage/ndb/src/kernel/SimBlockList.cpp
View file @
4c485eb1
...
@@ -15,7 +15,7 @@
...
@@ -15,7 +15,7 @@
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
#include "SimBlockList.hpp"
#include "SimBlockList.hpp"
#include
"EmulatorData.hpp"
#include
<Emulator.hpp>
#include <SimulatedBlock.hpp>
#include <SimulatedBlock.hpp>
#include <Cmvmi.hpp>
#include <Cmvmi.hpp>
#include <Ndbfs.hpp>
#include <Ndbfs.hpp>
...
@@ -85,7 +85,8 @@ SimBlockList::load(EmulatorData& data){
...
@@ -85,7 +85,8 @@ SimBlockList::load(EmulatorData& data){
SimulatedBlock
*
fs
=
0
;
SimulatedBlock
*
fs
=
0
;
{
{
Uint32
dl
;
Uint32
dl
;
const
ndb_mgm_configuration_iterator
*
p
=
conf
.
getOwnConfigIterator
();
const
ndb_mgm_configuration_iterator
*
p
=
ctx
.
m_config
.
getOwnConfigIterator
();
if
(
p
&&
!
ndb_mgm_get_int_parameter
(
p
,
CFG_DB_DISCLESS
,
&
dl
)
&&
dl
){
if
(
p
&&
!
ndb_mgm_get_int_parameter
(
p
,
CFG_DB_DISCLESS
,
&
dl
)
&&
dl
){
fs
=
NEW_BLOCK
(
VoidFs
)(
ctx
);
fs
=
NEW_BLOCK
(
VoidFs
)(
ctx
);
}
else
{
}
else
{
...
...
storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp
View file @
4c485eb1
...
@@ -324,13 +324,28 @@ Cmvmi::execREAD_CONFIG_REQ(Signal* signal)
...
@@ -324,13 +324,28 @@ Cmvmi::execREAD_CONFIG_REQ(Signal* signal)
Uint64
page_buffer
=
64
*
1024
*
1024
;
Uint64
page_buffer
=
64
*
1024
*
1024
;
ndb_mgm_get_int64_parameter
(
p
,
CFG_DB_DISK_PAGE_BUFFER_MEMORY
,
&
page_buffer
);
ndb_mgm_get_int64_parameter
(
p
,
CFG_DB_DISK_PAGE_BUFFER_MEMORY
,
&
page_buffer
);
page_buffer
/=
GLOBAL_PAGE_SIZE
;
// in pages
Uint32
pages
=
0
;
if
(
page_buffer
>
0
)
pages
+=
page_buffer
/
GLOBAL_PAGE_SIZE
;
// in pages
pages
+=
LCP_RESTORE_BUFFER
;
m_global_page_pool
.
setSize
(
pages
+
64
,
true
);
Uint64
shared_mem
=
8
*
1024
*
1024
;
ndb_mgm_get_int64_parameter
(
p
,
CFG_DB_SGA
,
&
shared_mem
);
shared_mem
/=
GLOBAL_PAGE_SIZE
;
if
(
shared_mem
)
{
{
page_buffer
+=
LGMAN_LOG_BUFFER
;
Resource_limit
rl
;
rl
.
m_min
=
0
;
rl
.
m_max
=
shared_mem
;
rl
.
m_resource_id
=
0
;
m_ctx
.
m_mm
.
set_resource_limit
(
rl
);
}
ndbrequire
(
m_ctx
.
m_mm
.
init
());
{
void
*
ptr
=
m_ctx
.
m_mm
.
get_memroot
();
m_shared_page_pool
.
set
((
GlobalPage
*
)
ptr
,
~
0
);
}
}
page_buffer
+=
LCP_RESTORE_BUFFER
;
m_global_page_pool
.
setSize
(
page_buffer
+
64
,
true
);
ReadConfigConf
*
conf
=
(
ReadConfigConf
*
)
signal
->
getDataPtrSend
();
ReadConfigConf
*
conf
=
(
ReadConfigConf
*
)
signal
->
getDataPtrSend
();
conf
->
senderRef
=
reference
();
conf
->
senderRef
=
reference
();
...
...
storage/ndb/src/kernel/blocks/lgman.cpp
View file @
4c485eb1
...
@@ -858,9 +858,6 @@ Lgman::Logfile_group::Logfile_group(const CreateFilegroupImplReq* req)
...
@@ -858,9 +858,6 @@ Lgman::Logfile_group::Logfile_group(const CreateFilegroupImplReq* req)
bool
bool
Lgman
::
alloc_logbuffer_memory
(
Ptr
<
Logfile_group
>
ptr
,
Uint32
bytes
)
Lgman
::
alloc_logbuffer_memory
(
Ptr
<
Logfile_group
>
ptr
,
Uint32
bytes
)
{
{
/**
* TODO use buddy allocator
*/
Uint32
pages
=
(((
bytes
+
3
)
>>
2
)
+
File_formats
::
NDB_PAGE_SIZE_WORDS
-
1
)
Uint32
pages
=
(((
bytes
+
3
)
>>
2
)
+
File_formats
::
NDB_PAGE_SIZE_WORDS
-
1
)
/
File_formats
::
NDB_PAGE_SIZE_WORDS
;
/
File_formats
::
NDB_PAGE_SIZE_WORDS
;
Uint32
requested
=
pages
;
Uint32
requested
=
pages
;
...
@@ -868,14 +865,14 @@ Lgman::alloc_logbuffer_memory(Ptr<Logfile_group> ptr, Uint32 bytes)
...
@@ -868,14 +865,14 @@ Lgman::alloc_logbuffer_memory(Ptr<Logfile_group> ptr, Uint32 bytes)
Page_map
map
(
m_data_buffer_pool
,
ptr
.
p
->
m_buffer_pages
);
Page_map
map
(
m_data_buffer_pool
,
ptr
.
p
->
m_buffer_pages
);
while
(
pages
)
while
(
pages
)
{
{
Ptr
<
GlobalPage
>
page
;
Uint32
ptrI
;
if
(
m_global_page_pool
.
seize
(
page
))
Uint32
cnt
=
pages
>
64
?
64
:
pages
;
m_ctx
.
m_mm
.
alloc
(
&
ptrI
,
&
cnt
,
1
);
if
(
cnt
)
{
{
Buffer_idx
range
;
Buffer_idx
range
;
range
.
m_ptr_i
=
page
.
i
;
range
.
m_ptr_i
=
ptrI
;
range
.
m_idx
=
1
;
range
.
m_idx
=
cnt
;
while
(
pages
>
range
.
m_idx
&&
m_global_page_pool
.
seizeId
(
page
,
page
.
i
+
1
))
range
.
m_idx
++
;
ndbrequire
(
map
.
append
((
Uint32
*
)
&
range
,
2
));
ndbrequire
(
map
.
append
((
Uint32
*
)
&
range
,
2
));
pages
-=
range
.
m_idx
;
pages
-=
range
.
m_idx
;
...
@@ -988,12 +985,8 @@ Lgman::free_logbuffer_memory(Ptr<Logfile_group> ptr)
...
@@ -988,12 +985,8 @@ Lgman::free_logbuffer_memory(Ptr<Logfile_group> ptr)
tmp
[
0
]
=
*
it
.
data
;
tmp
[
0
]
=
*
it
.
data
;
ndbrequire
(
map
.
next
(
it
));
ndbrequire
(
map
.
next
(
it
));
tmp
[
1
]
=
*
it
.
data
;
tmp
[
1
]
=
*
it
.
data
;
while
(
range
.
m_idx
)
{
m_ctx
.
m_mm
.
release
(
range
.
m_ptr_i
,
range
.
m_idx
);
m_global_page_pool
.
release
(
range
.
m_ptr_i
);
range
.
m_ptr_i
++
;
range
.
m_idx
--
;
}
map
.
next
(
it
);
map
.
next
(
it
);
}
}
map
.
release
();
map
.
release
();
...
@@ -1082,7 +1075,7 @@ Lgman::force_log_sync(Signal* signal,
...
@@ -1082,7 +1075,7 @@ Lgman::force_log_sync(Signal* signal,
* Do force
* Do force
*/
*/
Buffer_idx
pos
=
ptr
.
p
->
m_pos
[
PRODUCER
].
m_current_pos
;
Buffer_idx
pos
=
ptr
.
p
->
m_pos
[
PRODUCER
].
m_current_pos
;
GlobalPage
*
page
=
m_
global
_page_pool
.
getPtr
(
pos
.
m_ptr_i
);
GlobalPage
*
page
=
m_
shared
_page_pool
.
getPtr
(
pos
.
m_ptr_i
);
Uint32
free
=
File_formats
::
UNDO_PAGE_WORDS
-
pos
.
m_idx
;
Uint32
free
=
File_formats
::
UNDO_PAGE_WORDS
-
pos
.
m_idx
;
if
(
pos
.
m_idx
)
// don't flush empty page...
if
(
pos
.
m_idx
)
// don't flush empty page...
...
@@ -1172,7 +1165,7 @@ Uint32*
...
@@ -1172,7 +1165,7 @@ Uint32*
Lgman
::
get_log_buffer
(
Ptr
<
Logfile_group
>
ptr
,
Uint32
sz
)
Lgman
::
get_log_buffer
(
Ptr
<
Logfile_group
>
ptr
,
Uint32
sz
)
{
{
GlobalPage
*
page
;
GlobalPage
*
page
;
page
=
m_
global
_page_pool
.
getPtr
(
ptr
.
p
->
m_pos
[
PRODUCER
].
m_current_pos
.
m_ptr_i
);
page
=
m_
shared
_page_pool
.
getPtr
(
ptr
.
p
->
m_pos
[
PRODUCER
].
m_current_pos
.
m_ptr_i
);
Uint32
total_free
=
ptr
.
p
->
m_free_buffer_words
;
Uint32
total_free
=
ptr
.
p
->
m_free_buffer_words
;
assert
(
total_free
>=
sz
);
assert
(
total_free
>=
sz
);
...
@@ -1210,7 +1203,7 @@ Lgman::get_log_buffer(Ptr<Logfile_group> ptr, Uint32 sz)
...
@@ -1210,7 +1203,7 @@ Lgman::get_log_buffer(Ptr<Logfile_group> ptr, Uint32 sz)
pos
=
0
;
pos
=
0
;
assert
(
total_free
>=
free
);
assert
(
total_free
>=
free
);
total_free
-=
free
;
total_free
-=
free
;
page
=
m_
global
_page_pool
.
getPtr
(
next_page
(
ptr
.
p
,
PRODUCER
));
page
=
m_
shared
_page_pool
.
getPtr
(
next_page
(
ptr
.
p
,
PRODUCER
));
goto
next
;
goto
next
;
}
}
...
@@ -1348,7 +1341,7 @@ Lgman::flush_log(Signal* signal, Ptr<Logfile_group> ptr, Uint32 force)
...
@@ -1348,7 +1341,7 @@ Lgman::flush_log(Signal* signal, Ptr<Logfile_group> ptr, Uint32 force)
else
else
{
{
Buffer_idx
pos
=
producer
.
m_current_pos
;
Buffer_idx
pos
=
producer
.
m_current_pos
;
GlobalPage
*
page
=
m_
global
_page_pool
.
getPtr
(
pos
.
m_ptr_i
);
GlobalPage
*
page
=
m_
shared
_page_pool
.
getPtr
(
pos
.
m_ptr_i
);
Uint32
free
=
File_formats
::
UNDO_PAGE_WORDS
-
pos
.
m_idx
;
Uint32
free
=
File_formats
::
UNDO_PAGE_WORDS
-
pos
.
m_idx
;
...
@@ -1567,7 +1560,7 @@ Lgman::write_log_pages(Signal* signal, Ptr<Logfile_group> ptr,
...
@@ -1567,7 +1560,7 @@ Lgman::write_log_pages(Signal* signal, Ptr<Logfile_group> ptr,
req
->
data
.
pageData
[
0
]
=
pageId
;
req
->
data
.
pageData
[
0
]
=
pageId
;
req
->
operationFlag
=
0
;
req
->
operationFlag
=
0
;
FsReadWriteReq
::
setFormatFlag
(
req
->
operationFlag
,
FsReadWriteReq
::
setFormatFlag
(
req
->
operationFlag
,
FsReadWriteReq
::
fsFormat
Global
Page
);
FsReadWriteReq
::
fsFormat
Shared
Page
);
if
(
max
>
pages
)
if
(
max
>
pages
)
{
{
...
@@ -1588,7 +1581,7 @@ Lgman::write_log_pages(Signal* signal, Ptr<Logfile_group> ptr,
...
@@ -1588,7 +1581,7 @@ Lgman::write_log_pages(Signal* signal, Ptr<Logfile_group> ptr,
filePtr
.
p
->
m_state
|=
Undofile
::
FS_OUTSTANDING
;
filePtr
.
p
->
m_state
|=
Undofile
::
FS_OUTSTANDING
;
File_formats
::
Undofile
::
Undo_page
*
page
=
(
File_formats
::
Undofile
::
Undo_page
*
)
File_formats
::
Undofile
::
Undo_page
*
page
=
(
File_formats
::
Undofile
::
Undo_page
*
)
m_
global
_page_pool
.
getPtr
(
pageId
+
max
-
1
);
m_
shared
_page_pool
.
getPtr
(
pageId
+
max
-
1
);
Uint64
lsn
=
0
;
Uint64
lsn
=
0
;
lsn
+=
page
->
m_page_header
.
m_page_lsn_hi
;
lsn
<<=
32
;
lsn
+=
page
->
m_page_header
.
m_page_lsn_hi
;
lsn
<<=
32
;
lsn
+=
page
->
m_page_header
.
m_page_lsn_lo
;
lsn
+=
page
->
m_page_header
.
m_page_lsn_lo
;
...
@@ -1614,7 +1607,7 @@ Lgman::write_log_pages(Signal* signal, Ptr<Logfile_group> ptr,
...
@@ -1614,7 +1607,7 @@ Lgman::write_log_pages(Signal* signal, Ptr<Logfile_group> ptr,
filePtr
.
p
->
m_state
|=
Undofile
::
FS_OUTSTANDING
;
filePtr
.
p
->
m_state
|=
Undofile
::
FS_OUTSTANDING
;
File_formats
::
Undofile
::
Undo_page
*
page
=
(
File_formats
::
Undofile
::
Undo_page
*
)
File_formats
::
Undofile
::
Undo_page
*
page
=
(
File_formats
::
Undofile
::
Undo_page
*
)
m_
global
_page_pool
.
getPtr
(
pageId
+
max
-
1
);
m_
shared
_page_pool
.
getPtr
(
pageId
+
max
-
1
);
Uint64
lsn
=
0
;
Uint64
lsn
=
0
;
lsn
+=
page
->
m_page_header
.
m_page_lsn_hi
;
lsn
<<=
32
;
lsn
+=
page
->
m_page_header
.
m_page_lsn_hi
;
lsn
<<=
32
;
lsn
+=
page
->
m_page_header
.
m_page_lsn_lo
;
lsn
+=
page
->
m_page_header
.
m_page_lsn_lo
;
...
@@ -2095,7 +2088,7 @@ Lgman::find_log_head(Signal* signal, Ptr<Logfile_group> ptr)
...
@@ -2095,7 +2088,7 @@ Lgman::find_log_head(Signal* signal, Ptr<Logfile_group> ptr)
req
->
data
.
pageData
[
0
]
=
page_id
;
req
->
data
.
pageData
[
0
]
=
page_id
;
req
->
operationFlag
=
0
;
req
->
operationFlag
=
0
;
FsReadWriteReq
::
setFormatFlag
(
req
->
operationFlag
,
FsReadWriteReq
::
setFormatFlag
(
req
->
operationFlag
,
FsReadWriteReq
::
fsFormat
Global
Page
);
FsReadWriteReq
::
fsFormat
Shared
Page
);
sendSignal
(
NDBFS_REF
,
GSN_FSREADREQ
,
signal
,
sendSignal
(
NDBFS_REF
,
GSN_FSREADREQ
,
signal
,
FsReadWriteReq
::
FixedLength
+
1
,
JBA
);
FsReadWriteReq
::
FixedLength
+
1
,
JBA
);
...
@@ -2136,7 +2129,7 @@ Lgman::find_log_head(Signal* signal, Ptr<Logfile_group> ptr)
...
@@ -2136,7 +2129,7 @@ Lgman::find_log_head(Signal* signal, Ptr<Logfile_group> ptr)
req
->
data
.
pageData
[
0
]
=
page_id
;
req
->
data
.
pageData
[
0
]
=
page_id
;
req
->
operationFlag
=
0
;
req
->
operationFlag
=
0
;
FsReadWriteReq
::
setFormatFlag
(
req
->
operationFlag
,
FsReadWriteReq
::
setFormatFlag
(
req
->
operationFlag
,
FsReadWriteReq
::
fsFormat
Global
Page
);
FsReadWriteReq
::
fsFormat
Shared
Page
);
sendSignal
(
NDBFS_REF
,
GSN_FSREADREQ
,
signal
,
sendSignal
(
NDBFS_REF
,
GSN_FSREADREQ
,
signal
,
FsReadWriteReq
::
FixedLength
+
1
,
JBA
);
FsReadWriteReq
::
FixedLength
+
1
,
JBA
);
...
@@ -2197,7 +2190,7 @@ Lgman::execFSREADCONF(Signal* signal)
...
@@ -2197,7 +2190,7 @@ Lgman::execFSREADCONF(Signal* signal)
lg_ptr
.
p
->
m_outstanding_fs
=
cnt
-
1
;
lg_ptr
.
p
->
m_outstanding_fs
=
cnt
-
1
;
Ptr
<
GlobalPage
>
page_ptr
;
Ptr
<
GlobalPage
>
page_ptr
;
m_
global
_page_pool
.
getPtr
(
page_ptr
,
ptr
.
p
->
m_online
.
m_outstanding
);
m_
shared
_page_pool
.
getPtr
(
page_ptr
,
ptr
.
p
->
m_online
.
m_outstanding
);
ptr
.
p
->
m_online
.
m_outstanding
=
0
;
ptr
.
p
->
m_online
.
m_outstanding
=
0
;
File_formats
::
Undofile
::
Undo_page
*
page
=
File_formats
::
Undofile
::
Undo_page
*
page
=
...
@@ -2329,7 +2322,7 @@ Lgman::find_log_head_in_file(Signal* signal,
...
@@ -2329,7 +2322,7 @@ Lgman::find_log_head_in_file(Signal* signal,
req
->
data
.
pageData
[
0
]
=
page_id
;
req
->
data
.
pageData
[
0
]
=
page_id
;
req
->
operationFlag
=
0
;
req
->
operationFlag
=
0
;
FsReadWriteReq
::
setFormatFlag
(
req
->
operationFlag
,
FsReadWriteReq
::
setFormatFlag
(
req
->
operationFlag
,
FsReadWriteReq
::
fsFormat
Global
Page
);
FsReadWriteReq
::
fsFormat
Shared
Page
);
sendSignal
(
NDBFS_REF
,
GSN_FSREADREQ
,
signal
,
sendSignal
(
NDBFS_REF
,
GSN_FSREADREQ
,
signal
,
FsReadWriteReq
::
FixedLength
+
1
,
JBA
);
FsReadWriteReq
::
FixedLength
+
1
,
JBA
);
...
@@ -2434,7 +2427,7 @@ Lgman::init_run_undo_log(Signal* signal)
...
@@ -2434,7 +2427,7 @@ Lgman::init_run_undo_log(Signal* signal)
Uint32
page
=
ptr
.
p
->
m_pos
[
CONSUMER
].
m_current_pos
.
m_ptr_i
;
Uint32
page
=
ptr
.
p
->
m_pos
[
CONSUMER
].
m_current_pos
.
m_ptr_i
;
File_formats
::
Undofile
::
Undo_page
*
pageP
=
File_formats
::
Undofile
::
Undo_page
*
pageP
=
(
File_formats
::
Undofile
::
Undo_page
*
)
m_
global
_page_pool
.
getPtr
(
page
);
(
File_formats
::
Undofile
::
Undo_page
*
)
m_
shared
_page_pool
.
getPtr
(
page
);
ptr
.
p
->
m_pos
[
CONSUMER
].
m_current_pos
.
m_idx
=
pageP
->
m_words_used
;
ptr
.
p
->
m_pos
[
CONSUMER
].
m_current_pos
.
m_idx
=
pageP
->
m_words_used
;
ptr
.
p
->
m_pos
[
PRODUCER
].
m_current_pos
.
m_idx
=
1
;
ptr
.
p
->
m_pos
[
PRODUCER
].
m_current_pos
.
m_idx
=
1
;
...
@@ -2574,7 +2567,7 @@ Lgman::read_undo_pages(Signal* signal, Ptr<Logfile_group> ptr,
...
@@ -2574,7 +2567,7 @@ Lgman::read_undo_pages(Signal* signal, Ptr<Logfile_group> ptr,
req
->
userPointer
=
filePtr
.
i
;
req
->
userPointer
=
filePtr
.
i
;
req
->
operationFlag
=
0
;
req
->
operationFlag
=
0
;
FsReadWriteReq
::
setFormatFlag
(
req
->
operationFlag
,
FsReadWriteReq
::
setFormatFlag
(
req
->
operationFlag
,
FsReadWriteReq
::
fsFormat
Global
Page
);
FsReadWriteReq
::
fsFormat
Shared
Page
);
if
(
max
>
pages
)
if
(
max
>
pages
)
...
@@ -2713,7 +2706,7 @@ Lgman::get_next_undo_record(Uint64 * this_lsn)
...
@@ -2713,7 +2706,7 @@ Lgman::get_next_undo_record(Uint64 * this_lsn)
Uint32
page
=
consumer
.
m_current_pos
.
m_ptr_i
;
Uint32
page
=
consumer
.
m_current_pos
.
m_ptr_i
;
File_formats
::
Undofile
::
Undo_page
*
pageP
=
(
File_formats
::
Undofile
::
Undo_page
*
)
File_formats
::
Undofile
::
Undo_page
*
pageP
=
(
File_formats
::
Undofile
::
Undo_page
*
)
m_
global
_page_pool
.
getPtr
(
page
);
m_
shared
_page_pool
.
getPtr
(
page
);
if
(
pos
==
0
)
if
(
pos
==
0
)
{
{
...
@@ -2791,7 +2784,7 @@ Lgman::get_next_undo_record(Uint64 * this_lsn)
...
@@ -2791,7 +2784,7 @@ Lgman::get_next_undo_record(Uint64 * this_lsn)
ndbout_c
(
"reading from %d"
,
consumer
.
m_current_pos
.
m_ptr_i
);
ndbout_c
(
"reading from %d"
,
consumer
.
m_current_pos
.
m_ptr_i
);
pageP
=
(
File_formats
::
Undofile
::
Undo_page
*
)
pageP
=
(
File_formats
::
Undofile
::
Undo_page
*
)
m_
global
_page_pool
.
getPtr
(
consumer
.
m_current_pos
.
m_ptr_i
);
m_
shared
_page_pool
.
getPtr
(
consumer
.
m_current_pos
.
m_ptr_i
);
pos
=
consumer
.
m_current_pos
.
m_idx
=
pageP
->
m_words_used
;
pos
=
consumer
.
m_current_pos
.
m_idx
=
pageP
->
m_words_used
;
...
...
storage/ndb/src/kernel/blocks/ndbfs/Ndbfs.cpp
View file @
4c485eb1
...
@@ -331,8 +331,10 @@ Ndbfs::readWriteRequest(int action, Signal * signal)
...
@@ -331,8 +331,10 @@ Ndbfs::readWriteRequest(int action, Signal * signal)
goto
error
;
goto
error
;
}
}
if
(
fsRWReq
->
getFormatFlag
(
fsRWReq
->
operationFlag
)
!=
Uint32
format
=
fsRWReq
->
getFormatFlag
(
fsRWReq
->
operationFlag
);
FsReadWriteReq
::
fsFormatGlobalPage
){
if
(
format
!=
FsReadWriteReq
::
fsFormatGlobalPage
&&
format
!=
FsReadWriteReq
::
fsFormatSharedPage
)
{
if
(
fsRWReq
->
varIndex
>=
getBatSize
(
blockNumber
))
{
if
(
fsRWReq
->
varIndex
>=
getBatSize
(
blockNumber
))
{
jam
();
// Ensure that a valid variable is used
jam
();
// Ensure that a valid variable is used
errorCode
=
FsRef
::
fsErrInvalidParameters
;
errorCode
=
FsRef
::
fsErrInvalidParameters
;
...
@@ -353,7 +355,7 @@ Ndbfs::readWriteRequest(int action, Signal * signal)
...
@@ -353,7 +355,7 @@ Ndbfs::readWriteRequest(int action, Signal * signal)
tNRR
=
myBaseAddrRef
->
nrr
;
tNRR
=
myBaseAddrRef
->
nrr
;
tWA
=
(
char
*
)
myBaseAddrRef
->
WA
;
tWA
=
(
char
*
)
myBaseAddrRef
->
WA
;
switch
(
f
sRWReq
->
getFormatFlag
(
fsRWReq
->
operationFlag
)
)
{
switch
(
f
ormat
)
{
// List of memory and file pages pairs
// List of memory and file pages pairs
case
FsReadWriteReq
:
:
fsFormatListOfPairs
:
{
case
FsReadWriteReq
:
:
fsFormatListOfPairs
:
{
...
@@ -422,7 +424,9 @@ Ndbfs::readWriteRequest(int action, Signal * signal)
...
@@ -422,7 +424,9 @@ Ndbfs::readWriteRequest(int action, Signal * signal)
goto
error
;
goto
error
;
}
//default
}
//default
}
//switch
}
//switch
}
else
{
}
else
if
(
format
==
FsReadWriteReq
::
fsFormatGlobalPage
)
{
Ptr
<
GlobalPage
>
ptr
;
Ptr
<
GlobalPage
>
ptr
;
m_global_page_pool
.
getPtr
(
ptr
,
fsRWReq
->
data
.
pageData
[
0
]);
m_global_page_pool
.
getPtr
(
ptr
,
fsRWReq
->
data
.
pageData
[
0
]);
request
->
par
.
readWrite
.
pages
[
0
].
buf
=
(
char
*
)
ptr
.
p
;
request
->
par
.
readWrite
.
pages
[
0
].
buf
=
(
char
*
)
ptr
.
p
;
...
@@ -430,6 +434,16 @@ Ndbfs::readWriteRequest(int action, Signal * signal)
...
@@ -430,6 +434,16 @@ Ndbfs::readWriteRequest(int action, Signal * signal)
request
->
par
.
readWrite
.
pages
[
0
].
offset
=
((
UintPtr
)
GLOBAL_PAGE_SIZE
)
*
fsRWReq
->
varIndex
;
request
->
par
.
readWrite
.
pages
[
0
].
offset
=
((
UintPtr
)
GLOBAL_PAGE_SIZE
)
*
fsRWReq
->
varIndex
;
request
->
par
.
readWrite
.
numberOfPages
=
1
;
request
->
par
.
readWrite
.
numberOfPages
=
1
;
}
}
else
{
ndbrequire
(
format
==
FsReadWriteReq
::
fsFormatSharedPage
);
Ptr
<
GlobalPage
>
ptr
;
m_shared_page_pool
.
getPtr
(
ptr
,
fsRWReq
->
data
.
pageData
[
0
]);
request
->
par
.
readWrite
.
pages
[
0
].
buf
=
(
char
*
)
ptr
.
p
;
request
->
par
.
readWrite
.
pages
[
0
].
size
=
((
UintPtr
)
GLOBAL_PAGE_SIZE
)
*
fsRWReq
->
numberOfPages
;
request
->
par
.
readWrite
.
pages
[
0
].
offset
=
((
UintPtr
)
GLOBAL_PAGE_SIZE
)
*
fsRWReq
->
varIndex
;
request
->
par
.
readWrite
.
numberOfPages
=
1
;
}
ndbrequire
(
forward
(
openFile
,
request
));
ndbrequire
(
forward
(
openFile
,
request
));
return
;
return
;
...
...
storage/ndb/src/kernel/vm/GlobalData.hpp
View file @
4c485eb1
...
@@ -81,6 +81,7 @@ private:
...
@@ -81,6 +81,7 @@ private:
SimulatedBlock
*
blockTable
[
NO_OF_BLOCKS
];
// Owned by Dispatcher::
SimulatedBlock
*
blockTable
[
NO_OF_BLOCKS
];
// Owned by Dispatcher::
public:
public:
ArrayPool
<
GlobalPage
>
m_global_page_pool
;
ArrayPool
<
GlobalPage
>
m_global_page_pool
;
ArrayPool
<
GlobalPage
>
m_shared_page_pool
;
};
};
extern
GlobalData
globalData
;
extern
GlobalData
globalData
;
...
...
storage/ndb/src/kernel/vm/SimulatedBlock.cpp
View file @
4c485eb1
...
@@ -52,6 +52,7 @@ SimulatedBlock::SimulatedBlock(BlockNumber blockNumber,
...
@@ -52,6 +52,7 @@ SimulatedBlock::SimulatedBlock(BlockNumber blockNumber,
theReference
(
numberToRef
(
blockNumber
,
globalData
.
ownId
)),
theReference
(
numberToRef
(
blockNumber
,
globalData
.
ownId
)),
m_ctx
(
ctx
),
m_ctx
(
ctx
),
m_global_page_pool
(
globalData
.
m_global_page_pool
),
m_global_page_pool
(
globalData
.
m_global_page_pool
),
m_shared_page_pool
(
globalData
.
m_shared_page_pool
),
c_fragmentInfoHash
(
c_fragmentInfoPool
),
c_fragmentInfoHash
(
c_fragmentInfoPool
),
c_linearFragmentSendList
(
c_fragmentSendPool
),
c_linearFragmentSendList
(
c_fragmentSendPool
),
c_segmentedFragmentSendList
(
c_fragmentSendPool
),
c_segmentedFragmentSendList
(
c_fragmentSendPool
),
...
...
storage/ndb/src/kernel/vm/SimulatedBlock.hpp
View file @
4c485eb1
...
@@ -426,6 +426,7 @@ private:
...
@@ -426,6 +426,7 @@ private:
protected:
protected:
ArrayPool
<
GlobalPage
>&
m_global_page_pool
;
ArrayPool
<
GlobalPage
>&
m_global_page_pool
;
ArrayPool
<
GlobalPage
>&
m_shared_page_pool
;
private:
private:
/**
/**
...
...
storage/ndb/src/kernel/vm/ndbd_malloc_impl.cpp
View file @
4c485eb1
...
@@ -181,12 +181,21 @@ Ndbd_mem_manager::init(bool alloc_less_memory)
...
@@ -181,12 +181,21 @@ Ndbd_mem_manager::init(bool alloc_less_memory)
{
{
pages
=
m_resource_limit
[
0
].
m_min
;
// reserved
pages
=
m_resource_limit
[
0
].
m_min
;
// reserved
}
}
assert
(
pages
);
if
(
m_resource_limit
[
0
].
m_min
==
0
)
{
m_resource_limit
[
0
].
m_min
=
pages
;
}
g_eventLogger
.
info
(
"Ndbd_mem_manager::init(%d) min: %dMb initial: %dMb"
,
g_eventLogger
.
info
(
"Ndbd_mem_manager::init(%d) min: %dMb initial: %dMb"
,
alloc_less_memory
,
alloc_less_memory
,
(
sizeof
(
Alloc_page
)
*
m_resource_limit
[
0
].
m_min
)
>>
20
,
(
sizeof
(
Alloc_page
)
*
m_resource_limit
[
0
].
m_min
)
>>
20
,
(
sizeof
(
Alloc_page
)
*
m_resource_limit
[
0
].
m_max
)
>>
20
);
(
sizeof
(
Alloc_page
)
*
pages
)
>>
20
);
if
(
pages
==
0
)
{
return
0
;
}
/**
/**
* Do malloc
* Do malloc
...
...
storage/ndb/src/mgmsrv/ConfigInfo.cpp
View file @
4c485eb1
...
@@ -772,6 +772,18 @@ const ConfigInfo::ParamInfo ConfigInfo::m_ParamInfo[] = {
...
@@ -772,6 +772,18 @@ const ConfigInfo::ParamInfo ConfigInfo::m_ParamInfo[] = {
"4M"
,
"4M"
,
"1024G"
},
"1024G"
},
{
CFG_DB_SGA
,
"SharedGlobalMemory"
,
DB_TOKEN
,
"Total number bytes on each "
DB_TOKEN_PRINT
" node allocated for any use"
,
ConfigInfo
::
CI_USED
,
false
,
ConfigInfo
::
CI_INT64
,
"20M"
,
"0"
,
"65536G"
},
// 32k pages * 32-bit i value
{
{
CFG_DB_START_PARTIAL_TIMEOUT
,
CFG_DB_START_PARTIAL_TIMEOUT
,
"StartPartialTimeout"
,
"StartPartialTimeout"
,
...
...
storage/ndb/src/mgmsrv/InitConfigFileParser.cpp
View file @
4c485eb1
...
@@ -800,6 +800,7 @@ InitConfigFileParser::parse_mycnf()
...
@@ -800,6 +800,7 @@ InitConfigFileParser::parse_mycnf()
/**
/**
* Add ndbd, ndb_mgmd, api/mysqld
* Add ndbd, ndb_mgmd, api/mysqld
*/
*/
Uint32
idx
=
options
.
size
();
{
{
struct
my_option
opt
;
struct
my_option
opt
;
bzero
(
&
opt
,
sizeof
(
opt
));
bzero
(
&
opt
,
sizeof
(
opt
));
...
@@ -809,7 +810,6 @@ InitConfigFileParser::parse_mycnf()
...
@@ -809,7 +810,6 @@ InitConfigFileParser::parse_mycnf()
opt
.
var_type
=
GET_STR
;
opt
.
var_type
=
GET_STR
;
opt
.
arg_type
=
REQUIRED_ARG
;
opt
.
arg_type
=
REQUIRED_ARG
;
options
.
push_back
(
opt
);
options
.
push_back
(
opt
);
ndbd
=
&
options
.
back
();
opt
.
name
=
"ndb_mgmd"
;
opt
.
name
=
"ndb_mgmd"
;
opt
.
id
=
256
;
opt
.
id
=
256
;
...
@@ -817,7 +817,6 @@ InitConfigFileParser::parse_mycnf()
...
@@ -817,7 +817,6 @@ InitConfigFileParser::parse_mycnf()
opt
.
var_type
=
GET_STR
;
opt
.
var_type
=
GET_STR
;
opt
.
arg_type
=
REQUIRED_ARG
;
opt
.
arg_type
=
REQUIRED_ARG
;
options
.
push_back
(
opt
);
options
.
push_back
(
opt
);
ndb_mgmd
=
&
options
.
back
();
opt
.
name
=
"mysqld"
;
opt
.
name
=
"mysqld"
;
opt
.
id
=
256
;
opt
.
id
=
256
;
...
@@ -825,7 +824,6 @@ InitConfigFileParser::parse_mycnf()
...
@@ -825,7 +824,6 @@ InitConfigFileParser::parse_mycnf()
opt
.
var_type
=
GET_STR
;
opt
.
var_type
=
GET_STR
;
opt
.
arg_type
=
REQUIRED_ARG
;
opt
.
arg_type
=
REQUIRED_ARG
;
options
.
push_back
(
opt
);
options
.
push_back
(
opt
);
mysqld
=
&
options
.
back
();
opt
.
name
=
"api"
;
opt
.
name
=
"api"
;
opt
.
id
=
256
;
opt
.
id
=
256
;
...
@@ -833,10 +831,14 @@ InitConfigFileParser::parse_mycnf()
...
@@ -833,10 +831,14 @@ InitConfigFileParser::parse_mycnf()
opt
.
var_type
=
GET_STR
;
opt
.
var_type
=
GET_STR
;
opt
.
arg_type
=
REQUIRED_ARG
;
opt
.
arg_type
=
REQUIRED_ARG
;
options
.
push_back
(
opt
);
options
.
push_back
(
opt
);
api
=
&
options
.
back
();
bzero
(
&
opt
,
sizeof
(
opt
));
bzero
(
&
opt
,
sizeof
(
opt
));
options
.
push_back
(
opt
);
options
.
push_back
(
opt
);
ndbd
=
&
options
[
idx
];
ndb_mgmd
=
&
options
[
idx
+
1
];
mysqld
=
&
options
[
idx
+
2
];
api
=
&
options
[
idx
+
3
];
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment