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
354d79cd
Commit
354d79cd
authored
Aug 22, 2005
by
unknown
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
generalized option for specifying ndb distribution
parent
3198d625
Changes
3
Show 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 @
354d79cd
...
...
@@ -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 @
354d79cd
...
...
@@ -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 @
354d79cd
...
...
@@ -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