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
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
ccdda8fb
Commit
ccdda8fb
authored
Feb 18, 2005
by
tomas@poseidon.ndb.mysql.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
added options to give nodeid and mgmd host directly as switches (without using the connectstring)
parent
79c73beb
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
130 additions
and
41 deletions
+130
-41
ndb/include/util/ndb_opts.h
ndb/include/util/ndb_opts.h
+43
-4
ndb/src/mgmapi/LocalConfig.cpp
ndb/src/mgmapi/LocalConfig.cpp
+25
-26
ndb/src/mgmapi/mgmapi.cpp
ndb/src/mgmapi/mgmapi.cpp
+14
-5
sql/mysqld.cc
sql/mysqld.cc
+48
-6
No files found.
ndb/include/util/ndb_opts.h
View file @
ccdda8fb
...
...
@@ -25,10 +25,15 @@
#include <ndb_opt_defaults.h>
#define NDB_STD_OPTS_VARS \
const char *opt_connect_str= 0;\
my_bool opt_ndb_optimized_node_selection
int
opt_ndb_nodeid
;
my_bool
opt_ndb_shm
;
const
char
*
opt_ndb_connectstring
=
0
;
const
char
*
opt_connect_str
=
0
;
const
char
*
opt_ndb_mgmd_host
=
0
;
char
opt_ndb_constrbuf
[
1024
];
unsigned
opt_ndb_constrbuf_len
;
#define OPT_NDB_CONNECTSTRING 'c'
...
...
@@ -43,8 +48,17 @@ my_bool opt_ndb_shm;
"Set connect string for connecting to ndb_mgmd. " \
"Syntax: \"[nodeid=<id>;][host=]<hostname>[:<port>]\". " \
"Overides specifying entries in NDB_CONNECTSTRING and Ndb.cfg", \
(gptr*) &opt_connect_str, (gptr*) &opt_connect_str, 0, \
(gptr*) &opt_ndb_connectstring, (gptr*) &opt_ndb_connectstring, \
0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0 },\
{ "ndb-mgmd-host", OPT_NDB_MGMD_HOST, \
"Set host and port for connecting to ndb_mgmd. " \
"Syntax: <hostname>[:<port>].", \
(gptr*) &opt_ndb_mgmd_host, (gptr*) &opt_ndb_mgmd_host, 0, \
GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0 },\
{ "ndb-nodeid", OPT_NDB_NODEID, \
"Set node id for this node.", \
(gptr*) &opt_ndb_nodeid, (gptr*) &opt_ndb_nodeid, 0, \
GET_INT, REQUIRED_ARG, 0, 0, 0, 0, 0, 0 },\
{ "ndb-shm", OPT_NDB_SHM,\
"Allow optimizing using shared memory connections when available",\
(gptr*) &opt_ndb_shm, (gptr*) &opt_ndb_shm, 0,\
...
...
@@ -55,8 +69,8 @@ my_bool opt_ndb_shm;
(gptr*) &opt_ndb_optimized_node_selection, 0,\
GET_BOOL, OPT_ARG, 1, 0, 0, 0, 0, 0},\
{ "connect-string", OPT_NDB_CONNECTSTRING, "same as --ndb-connectstring",\
(gptr*) &opt_
connect_str, (gptr*) &opt_connect_str, 0,
\
GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0 }
(gptr*) &opt_
ndb_connectstring, (gptr*) &opt_ndb_connectstring,
\
0,
GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0 }
#ifndef DBUG_OFF
#define NDB_STD_OPTS(prog_name) \
...
...
@@ -79,6 +93,8 @@ enum ndb_std_options {
OPT_NDB_SHM
=
256
,
OPT_NDB_SHM_SIGNUM
,
OPT_NDB_OPTIMIZED_NODE_SELECTION
,
OPT_NDB_MGMD_HOST
,
OPT_NDB_NODEID
,
NDB_STD_OPTIONS_LAST
/* should always be last in this enum */
};
...
...
@@ -110,6 +126,29 @@ ndb_std_get_one_option(int optid,
#endif
}
break
;
case
OPT_NDB_MGMD_HOST
:
case
OPT_NDB_NODEID
:
{
const
char
*
tmp
=
""
;
if
(
optid
==
OPT_NDB_NODEID
)
tmp
=
"nodeid="
;
int
len
=
my_snprintf
(
opt_ndb_constrbuf
+
opt_ndb_constrbuf_len
,
sizeof
(
opt_ndb_constrbuf
)
-
opt_ndb_constrbuf_len
,
"%s%s%s"
,
opt_ndb_constrbuf_len
>
0
?
","
:
""
,
tmp
,
argument
);
opt_ndb_constrbuf_len
+=
len
;
}
/* fall through to add the connectstring to the end
* and set opt_ndbcluster_connectstring
*/
case
OPT_NDB_CONNECTSTRING
:
if
(
opt_ndb_connectstring
&&
opt_ndb_connectstring
[
0
])
my_snprintf
(
opt_ndb_constrbuf
+
opt_ndb_constrbuf_len
,
sizeof
(
opt_ndb_constrbuf
)
-
opt_ndb_constrbuf_len
,
"%s%s"
,
opt_ndb_constrbuf_len
>
0
?
","
:
""
,
opt_ndb_connectstring
);
opt_connect_str
=
opt_ndb_constrbuf
;
break
;
}
return
0
;
}
...
...
ndb/src/mgmapi/LocalConfig.cpp
View file @
ccdda8fb
...
...
@@ -27,7 +27,9 @@ LocalConfig::LocalConfig(){
bool
LocalConfig
::
init
(
const
char
*
connectString
,
const
char
*
fileName
)
{
const
char
*
fileName
)
{
DBUG_ENTER
(
"LocalConfig::init"
);
/**
* Escalation:
* 1. Check connectString
...
...
@@ -38,21 +40,25 @@ LocalConfig::init(const char *connectString,
* 6. Check defaultConnectString
*/
_ownNodeId
=
0
;
//1. Check connectString
if
(
connectString
!=
0
&&
connectString
[
0
]
!=
0
){
if
(
readConnectString
(
connectString
,
"connect string"
)){
return
true
;
}
return
false
;
if
(
ids
.
size
())
DBUG_RETURN
(
true
);
// only nodeid given, continue to find hosts
}
else
DBUG_RETURN
(
false
);
}
//2. Check given filename
if
(
fileName
&&
strlen
(
fileName
)
>
0
)
{
bool
fopenError
;
if
(
readFile
(
fileName
,
fopenError
)){
return
true
;
DBUG_RETURN
(
true
)
;
}
return
false
;
DBUG_RETURN
(
false
)
;
}
//3. Check environment variable
...
...
@@ -60,9 +66,9 @@ LocalConfig::init(const char *connectString,
if
(
NdbEnv_GetEnv
(
"NDB_CONNECTSTRING"
,
buf
,
sizeof
(
buf
))
&&
strlen
(
buf
)
!=
0
){
if
(
readConnectString
(
buf
,
"NDB_CONNECTSTRING"
)){
return
true
;
DBUG_RETURN
(
true
)
;
}
return
false
;
DBUG_RETURN
(
false
)
;
}
//4. Check Ndb.cfg in NDB_HOME
...
...
@@ -71,9 +77,9 @@ LocalConfig::init(const char *connectString,
char
*
buf
=
NdbConfig_NdbCfgName
(
1
/*true*/
);
NdbAutoPtr
<
char
>
tmp_aptr
(
buf
);
if
(
readFile
(
buf
,
fopenError
))
return
true
;
DBUG_RETURN
(
true
)
;
if
(
!
fopenError
)
return
false
;
DBUG_RETURN
(
false
)
;
}
//5. Check Ndb.cfg in cwd
...
...
@@ -82,9 +88,9 @@ LocalConfig::init(const char *connectString,
char
*
buf
=
NdbConfig_NdbCfgName
(
0
/*false*/
);
NdbAutoPtr
<
char
>
tmp_aptr
(
buf
);
if
(
readFile
(
buf
,
fopenError
))
return
true
;
DBUG_RETURN
(
true
)
;
if
(
!
fopenError
)
return
false
;
DBUG_RETURN
(
false
)
;
}
//7. Check
...
...
@@ -92,12 +98,12 @@ LocalConfig::init(const char *connectString,
char
buf
[
256
];
BaseString
::
snprintf
(
buf
,
sizeof
(
buf
),
"host=localhost:%s"
,
NDB_PORT
);
if
(
readConnectString
(
buf
,
"default connect string"
))
return
true
;
DBUG_RETURN
(
true
)
;
}
setError
(
0
,
""
);
return
false
;
DBUG_RETURN
(
false
)
;
}
LocalConfig
::~
LocalConfig
(){
...
...
@@ -142,6 +148,7 @@ const char *nodeIdTokens[] = {
const
char
*
hostNameTokens
[]
=
{
"host://%[^:]:%i"
,
"host=%[^:]:%i"
,
"mgmd-host=%[^:]:%i"
,
"%[^:^=^ ]:%i"
,
"%s %i"
,
0
...
...
@@ -207,30 +214,22 @@ LocalConfig::parseString(const char * connectString, BaseString &err){
char
*
copy
=
strdup
(
connectString
);
NdbAutoPtr
<
char
>
tmp_aptr
(
copy
);
bool
b_nodeId
=
false
;
bool
found_other
=
false
;
for
(
char
*
tok
=
strtok_r
(
copy
,
";,"
,
&
for_strtok
);
tok
!=
0
;
tok
=
strtok_r
(
NULL
,
";,"
,
&
for_strtok
))
{
if
(
tok
[
0
]
==
'#'
)
continue
;
if
(
!
b_n
odeId
)
// only one nodeid definition allowed
if
(
b_nodeId
=
parseNodeId
(
tok
))
if
(
!
_ownN
odeId
)
// only one nodeid definition allowed
if
(
parseNodeId
(
tok
))
continue
;
if
(
found_other
=
parseHostName
(
tok
))
if
(
parseHostName
(
tok
))
continue
;
if
(
found_other
=
parseFileName
(
tok
))
if
(
parseFileName
(
tok
))
continue
;
err
.
assfmt
(
"Unexpected entry:
\"
%s
\"
"
,
tok
);
return
false
;
}
if
(
!
found_other
)
{
err
.
appfmt
(
"Missing host/file name extry in
\"
%s
\"
"
,
connectString
);
return
false
;
}
return
true
;
}
...
...
ndb/src/mgmapi/mgmapi.cpp
View file @
ccdda8fb
...
...
@@ -169,17 +169,18 @@ extern "C"
int
ndb_mgm_set_connectstring
(
NdbMgmHandle
handle
,
const
char
*
mgmsrv
)
{
DBUG_ENTER
(
"ndb_mgm_set_connectstring"
);
new
(
&
(
handle
->
cfg
))
LocalConfig
;
if
(
!
handle
->
cfg
.
init
(
mgmsrv
,
0
)
||
handle
->
cfg
.
ids
.
size
()
==
0
)
{
new
(
&
(
handle
->
cfg
))
LocalConfig
;
handle
->
cfg
.
init
(
0
,
0
);
/* reset the LocalCon
g
ig */
handle
->
cfg
.
init
(
0
,
0
);
/* reset the LocalCon
f
ig */
SET_ERROR
(
handle
,
NDB_MGM_ILLEGAL_CONNECT_STRING
,
""
);
return
-
1
;
DBUG_RETURN
(
-
1
)
;
}
handle
->
cfg_i
=
-
1
;
return
0
;
DBUG_RETURN
(
0
)
;
}
/**
...
...
@@ -356,6 +357,7 @@ ndb_mgm_connect(NdbMgmHandle handle, int no_retries,
SET_ERROR
(
handle
,
NDB_MGM_NO_ERROR
,
"Executing: ndb_mgm_connect"
);
CHECK_HANDLE
(
handle
,
-
1
);
DBUG_ENTER
(
"ndb_mgm_connect"
);
#ifdef MGMAPI_LOG
/**
* Open the log file
...
...
@@ -385,6 +387,13 @@ ndb_mgm_connect(NdbMgmHandle handle, int no_retries,
}
if
(
sockfd
!=
NDB_INVALID_SOCKET
)
break
;
#ifndef DBUG_OFF
{
char
buf
[
1024
];
DBUG_PRINT
(
"info"
,(
"Unable to connect with connect string: %s"
,
cfg
.
makeConnectString
(
buf
,
sizeof
(
buf
))));
}
#endif
if
(
verbose
>
0
)
{
char
buf
[
1024
];
ndbout_c
(
"Unable to connect with connect string: %s"
,
...
...
@@ -398,7 +407,7 @@ ndb_mgm_connect(NdbMgmHandle handle, int no_retries,
cfg
.
makeConnectString
(
buf
,
sizeof
(
buf
)));
if
(
verbose
==
-
2
)
ndbout
<<
", failed."
<<
endl
;
return
-
1
;
DBUG_RETURN
(
-
1
)
;
}
if
(
verbose
==
-
1
)
{
ndbout
<<
"Retrying every "
<<
retry_delay_in_seconds
<<
" seconds"
;
...
...
@@ -426,7 +435,7 @@ ndb_mgm_connect(NdbMgmHandle handle, int no_retries,
handle
->
socket
=
sockfd
;
handle
->
connected
=
1
;
return
0
;
DBUG_RETURN
(
0
)
;
}
/**
...
...
sql/mysqld.cc
View file @
ccdda8fb
...
...
@@ -291,8 +291,13 @@ my_bool opt_log_slave_updates= 0;
my_bool
opt_console
=
0
,
opt_bdb
,
opt_innodb
,
opt_isam
,
opt_ndbcluster
;
#ifdef HAVE_NDBCLUSTER_DB
const
char
*
opt_ndbcluster_connectstring
=
0
;
const
char
*
opt_ndb_connectstring
=
0
;
char
opt_ndb_constrbuf
[
1024
];
unsigned
opt_ndb_constrbuf_len
;
my_bool
opt_ndb_shm
,
opt_ndb_optimized_node_selection
;
ulong
opt_ndb_cache_check_time
=
0
;
ulong
opt_ndb_cache_check_time
;
const
char
*
opt_ndb_mgmd_host
;
ulong
opt_ndb_nodeid
;
#endif
my_bool
opt_readonly
,
use_temp_pool
,
relay_log_purge
;
my_bool
opt_sync_bdb_logs
,
opt_sync_frm
;
...
...
@@ -4173,6 +4178,7 @@ enum options_mysqld
OPT_NDBCLUSTER
,
OPT_NDB_CONNECTSTRING
,
OPT_NDB_USE_EXACT_COUNT
,
OPT_NDB_FORCE_SEND
,
OPT_NDB_AUTOINCREMENT_PREFETCH_SZ
,
OPT_NDB_SHM
,
OPT_NDB_OPTIMIZED_NODE_SELECTION
,
OPT_NDB_CACHE_CHECK_TIME
,
OPT_NDB_MGMD_HOST
,
OPT_NDB_NODEID
,
OPT_SKIP_SAFEMALLOC
,
OPT_TEMP_POOL
,
OPT_TX_ISOLATION
,
OPT_COMPLETION_TYPE
,
OPT_SKIP_STACK_TRACE
,
OPT_SKIP_SYMLINKS
,
...
...
@@ -4664,9 +4670,19 @@ Disable with --skip-ndbcluster (will save memory).",
#ifdef HAVE_NDBCLUSTER_DB
{
"ndb-connectstring"
,
OPT_NDB_CONNECTSTRING
,
"Connect string for ndbcluster."
,
(
gptr
*
)
&
opt_ndb
cluster
_connectstring
,
(
gptr
*
)
&
opt_ndb
cluster
_connectstring
,
(
gptr
*
)
&
opt_ndb_connectstring
,
(
gptr
*
)
&
opt_ndb_connectstring
,
0
,
GET_STR
,
REQUIRED_ARG
,
0
,
0
,
0
,
0
,
0
,
0
},
{
"ndb-mgmd-host"
,
OPT_NDB_MGMD_HOST
,
"Set host and port for ndb_mgmd. Syntax: hostname[:port]"
,
(
gptr
*
)
&
opt_ndb_mgmd_host
,
(
gptr
*
)
&
opt_ndb_mgmd_host
,
0
,
GET_STR
,
REQUIRED_ARG
,
0
,
0
,
0
,
0
,
0
,
0
},
{
"ndb-nodeid"
,
OPT_NDB_NODEID
,
"Nodeid for this mysqlserver in the cluster."
,
(
gptr
*
)
&
opt_ndb_nodeid
,
(
gptr
*
)
&
opt_ndb_nodeid
,
0
,
GET_INT
,
REQUIRED_ARG
,
0
,
0
,
0
,
0
,
0
,
0
},
{
"ndb-autoincrement-prefetch-sz"
,
OPT_NDB_AUTOINCREMENT_PREFETCH_SZ
,
"Specify number of autoincrement values that are prefetched."
,
(
gptr
*
)
&
global_system_variables
.
ndb_autoincrement_prefetch_sz
,
...
...
@@ -4705,9 +4721,10 @@ Disable with --skip-ndbcluster (will save memory).",
(
gptr
*
)
&
opt_ndb_optimized_node_selection
,
0
,
GET_BOOL
,
OPT_ARG
,
1
,
0
,
0
,
0
,
0
,
0
},
{
"ndb_cache_check_time"
,
OPT_NDB_CACHE_CHECK_TIME
,
"A dedicated thread is created to update cached commit count value at the given interval."
,
(
gptr
*
)
&
opt_ndb_cache_check_time
,
(
gptr
*
)
&
opt_ndb_cache_check_time
,
0
,
GET_ULONG
,
REQUIRED_ARG
,
0
,
0
,
LONG_TIMEOUT
,
0
,
1
,
0
},
"A dedicated thread is created to update cached commit count value"
" at the given interval."
,
(
gptr
*
)
&
opt_ndb_cache_check_time
,
(
gptr
*
)
&
opt_ndb_cache_check_time
,
0
,
GET_ULONG
,
REQUIRED_ARG
,
0
,
0
,
LONG_TIMEOUT
,
0
,
1
,
0
},
#endif
{
"new"
,
'n'
,
"Use very new possible 'unsafe' functions."
,
(
gptr
*
)
&
global_system_variables
.
new_mode
,
...
...
@@ -6504,6 +6521,31 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
have_ndbcluster
=
SHOW_OPTION_DISABLED
;
#endif
break
;
#ifdef HAVE_NDBCLUSTER_DB
case
OPT_NDB_MGMD_HOST
:
case
OPT_NDB_NODEID
:
{
const
char
*
tmp
=
""
;
if
(
optid
==
OPT_NDB_NODEID
)
tmp
=
"nodeid="
;
int
len
=
my_snprintf
(
opt_ndb_constrbuf
+
opt_ndb_constrbuf_len
,
sizeof
(
opt_ndb_constrbuf
)
-
opt_ndb_constrbuf_len
,
"%s%s%s"
,
opt_ndb_constrbuf_len
>
0
?
","
:
""
,
tmp
,
argument
);
opt_ndb_constrbuf_len
+=
len
;
}
/* fall through to add the connectstring to the end
* and set opt_ndbcluster_connectstring
*/
case
OPT_NDB_CONNECTSTRING
:
if
(
opt_ndb_connectstring
&&
opt_ndb_connectstring
[
0
])
my_snprintf
(
opt_ndb_constrbuf
+
opt_ndb_constrbuf_len
,
sizeof
(
opt_ndb_constrbuf
)
-
opt_ndb_constrbuf_len
,
"%s%s"
,
opt_ndb_constrbuf_len
>
0
?
","
:
""
,
opt_ndb_connectstring
);
opt_ndbcluster_connectstring
=
opt_ndb_constrbuf
;
break
;
#endif
case
OPT_INNODB
:
#ifdef HAVE_INNOBASE_DB
if
(
opt_innodb
)
...
...
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