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
6f27675d
Commit
6f27675d
authored
Aug 22, 2005
by
tomas@poseidon.ndb.mysql.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
generalized option for specifying ndb distribution
parent
33811ac3
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
36 additions
and
16 deletions
+36
-16
sql/ha_ndbcluster.cc
sql/ha_ndbcluster.cc
+9
-5
sql/ha_ndbcluster.h
sql/ha_ndbcluster.h
+2
-0
sql/mysqld.cc
sql/mysqld.cc
+25
-11
No files found.
sql/ha_ndbcluster.cc
View file @
6f27675d
...
...
@@ -34,7 +34,7 @@
// options from from mysqld.cc
extern
my_bool
opt_ndb_optimized_node_selection
;
extern
my_bool
opt_ndb_linear_hash
;
extern
enum
ndb_distribution
opt_ndb_distribution_id
;
extern
const
char
*
opt_ndbcluster_connectstring
;
// Default value for parallelism
...
...
@@ -7450,7 +7450,7 @@ uint ha_ndbcluster::set_up_partition_info(partition_info *part_info,
static
void
ndb_set_fragmentation
(
NDBTAB
&
tab
,
TABLE
*
form
,
uint
pk_length
)
{
NDBTAB
::
FragmentType
ftype
;
NDBTAB
::
FragmentType
ftype
=
NDBTAB
::
DistrKeyHash
;
ushort
node_group
[
MAX_PARTITIONS
];
uint
no_nodes
=
g_ndb_cluster_connection
->
no_db_nodes
(),
no_fragments
,
i
;
DBUG_ENTER
(
"ndb_set_fragmentation"
);
...
...
@@ -7481,10 +7481,14 @@ static void ndb_set_fragmentation(NDBTAB &tab, TABLE *form, uint pk_length)
node_group
[
0
]
=
0
;
for
(
i
=
1
;
i
<
no_fragments
;
i
++
)
node_group
[
i
]
=
UNDEF_NODEGROUP
;
if
(
opt_ndb_linear_hash
)
switch
(
opt_ndb_distribution_id
)
{
case
ND_KEYHASH
:
break
;
case
ND_LINHASH
:
ftype
=
NDBTAB
::
DistrKeyLin
;
else
ftype
=
NDBTAB
::
DistrKeyHash
;
break
;
}
tab
.
setFragmentType
(
ftype
);
tab
.
setNodeGroupIds
(
&
node_group
,
no_fragments
);
DBUG_VOID_RETURN
;
...
...
sql/ha_ndbcluster.h
View file @
6f27675d
...
...
@@ -113,6 +113,8 @@ struct negated_function_mapping
NDB_FUNC_TYPE
neg_fun
;
};
enum
ndb_distribution
{
ND_KEYHASH
=
0
,
ND_LINHASH
=
1
};
/*
Define what functions can be negated in condition pushdown.
Note, these HAVE to be in the same order as in definition enum
...
...
sql/mysqld.cc
View file @
6f27675d
...
...
@@ -362,7 +362,12 @@ my_bool opt_ndb_shm, opt_ndb_optimized_node_selection;
ulong
opt_ndb_cache_check_time
;
const
char
*
opt_ndb_mgmd
;
ulong
opt_ndb_nodeid
;
bool
opt_ndb_linear_hash
;
const
char
*
ndb_distribution_names
[]
=
{
"KEYHASH"
,
"LINHASH"
,
NullS
};
TYPELIB
ndb_distribution_typelib
=
{
array_elements
(
ndb_distribution_names
)
-
1
,
""
,
ndb_distribution_names
,
NULL
};
const
char
*
opt_ndb_distribution
=
ndb_distribution_names
[
ND_KEYHASH
];
enum
ndb_distribution
opt_ndb_distribution_id
=
ND_KEYHASH
;
#endif
my_bool
opt_readonly
,
use_temp_pool
,
relay_log_purge
;
my_bool
opt_sync_frm
,
opt_allow_suspicious_udfs
;
...
...
@@ -4879,16 +4884,11 @@ Disable with --skip-ndbcluster (will save memory).",
(
gptr
*
)
&
global_system_variables
.
ndb_autoincrement_prefetch_sz
,
(
gptr
*
)
&
global_system_variables
.
ndb_autoincrement_prefetch_sz
,
0
,
GET_ULONG
,
REQUIRED_ARG
,
32
,
1
,
256
,
0
,
0
,
0
},
{
"ndb-use-linear-hash"
,
OPT_NDB_LINEAR_HASH
,
"Flag to indicate whether to use linear hash for default in new tables"
,
(
gptr
*
)
&
opt_ndb_linear_hash
,
(
gptr
*
)
&
opt_ndb_linear_hash
,
0
,
GET_BOOL
,
OPT_ARG
,
1
,
0
,
0
,
0
,
0
,
0
},
{
"ndb_use_linear_hash"
,
OPT_NDB_LINEAR_HASH
,
"Flag to indicate whether to use linear hash for default in new tables"
,
(
gptr
*
)
&
opt_ndb_linear_hash
,
(
gptr
*
)
&
opt_ndb_linear_hash
,
0
,
GET_BOOL
,
OPT_ARG
,
1
,
0
,
0
,
0
,
0
,
0
},
{
"ndb-distibution"
,
OPT_NDB_DISTRIBUTION
,
"Default distribution for new tables in ndb"
,
(
gptr
*
)
&
opt_ndb_distribution
,
(
gptr
*
)
&
opt_ndb_distribution
,
0
,
GET_STR
,
REQUIRED_ARG
,
0
,
0
,
0
,
0
,
0
,
0
},
{
"ndb-force-send"
,
OPT_NDB_FORCE_SEND
,
"Force send of buffers to ndb immediately without waiting for "
"other threads."
,
...
...
@@ -6674,6 +6674,20 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
opt_ndb_constrbuf
[
opt_ndb_constrbuf_len
]
=
0
;
opt_ndbcluster_connectstring
=
opt_ndb_constrbuf
;
break
;
case
OPT_NDB_DISTRIBUTION
:
int
id
;
if
((
id
=
find_type
(
argument
,
&
ndb_distribution_typelib
,
2
))
<=
0
)
{
fprintf
(
stderr
,
"Unknown ndb distribution type: '%s' "
"(should be '%s' or '%s')
\n
"
,
argument
,
ndb_distribution_names
[
ND_KEYHASH
],
ndb_distribution_names
[
ND_LINHASH
]);
exit
(
1
);
}
opt_ndb_distribution_id
=
(
enum
ndb_distribution
)(
id
-
1
);
break
;
#endif
case
OPT_INNODB
:
#ifdef HAVE_INNOBASE_DB
...
...
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