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
efb0ae38
Commit
efb0ae38
authored
Sep 20, 2004
by
joreland@mysql.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge joreland@bk-internal.mysql.com:/home/bk/mysql-4.1-ndb
into mysql.com:/home/jonas/src/mysql-4.1-ndb
parents
e315fb4a
f982cd9d
Changes
27
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
27 changed files
with
671 additions
and
534 deletions
+671
-534
BitKeeper/etc/logging_ok
BitKeeper/etc/logging_ok
+3
-0
acinclude.m4
acinclude.m4
+32
-18
configure.in
configure.in
+2
-2
ndb/config/type_ndbapitest.mk.am
ndb/config/type_ndbapitest.mk.am
+1
-1
ndb/config/type_ndbapitools.mk.am
ndb/config/type_ndbapitools.mk.am
+1
-1
ndb/include/mgmapi/mgmapi_config_parameters.h
ndb/include/mgmapi/mgmapi_config_parameters.h
+8
-10
ndb/include/transporter/TransporterDefinitions.hpp
ndb/include/transporter/TransporterDefinitions.hpp
+3
-9
ndb/src/common/mgmcommon/IPCConfig.cpp
ndb/src/common/mgmcommon/IPCConfig.cpp
+42
-39
ndb/src/common/transporter/Makefile.am
ndb/src/common/transporter/Makefile.am
+1
-1
ndb/src/common/transporter/Packer.cpp
ndb/src/common/transporter/Packer.cpp
+14
-7
ndb/src/common/transporter/SCI_Transporter.cpp
ndb/src/common/transporter/SCI_Transporter.cpp
+379
-354
ndb/src/common/transporter/SCI_Transporter.hpp
ndb/src/common/transporter/SCI_Transporter.hpp
+16
-13
ndb/src/common/transporter/SHM_Buffer.hpp
ndb/src/common/transporter/SHM_Buffer.hpp
+10
-10
ndb/src/common/transporter/SHM_Transporter.cpp
ndb/src/common/transporter/SHM_Transporter.cpp
+34
-18
ndb/src/common/transporter/SHM_Transporter.hpp
ndb/src/common/transporter/SHM_Transporter.hpp
+1
-1
ndb/src/common/transporter/TCP_Transporter.cpp
ndb/src/common/transporter/TCP_Transporter.cpp
+8
-5
ndb/src/common/transporter/TCP_Transporter.hpp
ndb/src/common/transporter/TCP_Transporter.hpp
+1
-2
ndb/src/common/transporter/TransporterRegistry.cpp
ndb/src/common/transporter/TransporterRegistry.cpp
+32
-23
ndb/src/cw/cpcd/Makefile.am
ndb/src/cw/cpcd/Makefile.am
+1
-1
ndb/src/kernel/Makefile.am
ndb/src/kernel/Makefile.am
+1
-1
ndb/src/kernel/blocks/backup/restore/Makefile.am
ndb/src/kernel/blocks/backup/restore/Makefile.am
+1
-1
ndb/src/kernel/vm/FastScheduler.hpp
ndb/src/kernel/vm/FastScheduler.hpp
+1
-1
ndb/src/mgmclient/Makefile.am
ndb/src/mgmclient/Makefile.am
+1
-1
ndb/src/mgmsrv/ConfigInfo.cpp
ndb/src/mgmsrv/ConfigInfo.cpp
+75
-12
ndb/src/mgmsrv/Makefile.am
ndb/src/mgmsrv/Makefile.am
+1
-1
ndb/test/run-test/Makefile.am
ndb/test/run-test/Makefile.am
+1
-1
sql/Makefile.am
sql/Makefile.am
+1
-1
No files found.
BitKeeper/etc/logging_ok
View file @
efb0ae38
...
@@ -100,6 +100,7 @@ miguel@hegel.txg.br
...
@@ -100,6 +100,7 @@ miguel@hegel.txg.br
miguel@light.
miguel@light.
miguel@light.local
miguel@light.local
miguel@sartre.local
miguel@sartre.local
mikael@mc04.(none)
mikron@c-fb0ae253.1238-1-64736c10.cust.bredbandsbolaget.se
mikron@c-fb0ae253.1238-1-64736c10.cust.bredbandsbolaget.se
mikron@mikael-ronstr-ms-dator.local
mikron@mikael-ronstr-ms-dator.local
mleich@mysql.com
mleich@mysql.com
...
@@ -130,6 +131,7 @@ mwagner@here.mwagner.org
...
@@ -130,6 +131,7 @@ mwagner@here.mwagner.org
mwagner@work.mysql.com
mwagner@work.mysql.com
mydev@mysql.com
mydev@mysql.com
mysql@home.(none)
mysql@home.(none)
mysql@mc04.(none)
mysqldev@build.mysql2.com
mysqldev@build.mysql2.com
mysqldev@melody.local
mysqldev@melody.local
mysqldev@mysql.com
mysqldev@mysql.com
...
@@ -159,6 +161,7 @@ ram@ram.(none)
...
@@ -159,6 +161,7 @@ ram@ram.(none)
ranger@regul.home.lan
ranger@regul.home.lan
rburnett@build.mysql.com
rburnett@build.mysql.com
root@home.(none)
root@home.(none)
root@mc04.(none)
root@x3.internalnet
root@x3.internalnet
salle@banica.(none)
salle@banica.(none)
salle@geopard.(none)
salle@geopard.(none)
...
...
acinclude.m4
View file @
efb0ae38
...
@@ -1548,16 +1548,43 @@ dnl Sets HAVE_NDBCLUSTER_DB if --with-ndbcluster is used
...
@@ -1548,16 +1548,43 @@ dnl Sets HAVE_NDBCLUSTER_DB if --with-ndbcluster is used
dnl ---------------------------------------------------------------------------
dnl ---------------------------------------------------------------------------
AC_DEFUN([MYSQL_CHECK_NDB_OPTIONS], [
AC_DEFUN([MYSQL_CHECK_NDB_OPTIONS], [
AC_ARG_WITH([ndb-sci],
AC_HELP_STRING([--with-ndb-sci=DIR],
[Provide MySQL with a custom location of
sci library. Given DIR, sci library is
assumed to be in $DIR/lib and header files
in $DIR/include.]),
[mysql_sci_dir=${withval}],
[mysql_sci_dir=""])
case "$mysql_sci_dir" in
"no" )
have_ndb_sci=no
AC_MSG_RESULT([-- not including sci transporter])
;;
* )
if test -f "$mysql_sci_dir/lib/libsisci.a" -a \
-f "$mysql_sci_dir/include/sisci_api.h"; then
NDB_SCI_INCLUDES="-I$mysql_sci_dir/include"
NDB_SCI_LIBS="-L$mysql_sci_dir/lib -lsisci"
AC_MSG_RESULT([-- including sci transporter])
AC_DEFINE([NDB_SCI_TRANSPORTER], [1],
[Including Ndb Cluster DB sci transporter])
AC_SUBST(NDB_SCI_INCLUDES)
AC_SUBST(NDB_SCI_LIBS)
have_ndb_sci="yes"
AC_MSG_RESULT([found sci transporter in $mysql_sci_dir/{include, lib}])
else
AC_MSG_RESULT([could not find sci transporter in $mysql_sci_dir/{include, lib}])
fi
;;
esac
AC_ARG_WITH([ndb-shm],
AC_ARG_WITH([ndb-shm],
[
[
--with-ndb-shm Include the NDB Cluster shared memory transporter],
--with-ndb-shm Include the NDB Cluster shared memory transporter],
[ndb_shm="$withval"],
[ndb_shm="$withval"],
[ndb_shm=no])
[ndb_shm=no])
AC_ARG_WITH([ndb-sci],
[
--with-ndb-sci Include the NDB Cluster sci transporter],
[ndb_sci="$withval"],
[ndb_sci=no])
AC_ARG_WITH([ndb-test],
AC_ARG_WITH([ndb-test],
[
[
--with-ndb-test Include the NDB Cluster ndbapi test programs],
--with-ndb-test Include the NDB Cluster ndbapi test programs],
...
@@ -1590,19 +1617,6 @@ AC_DEFUN([MYSQL_CHECK_NDB_OPTIONS], [
...
@@ -1590,19 +1617,6 @@ AC_DEFUN([MYSQL_CHECK_NDB_OPTIONS], [
;;
;;
esac
esac
have_ndb_sci=no
case "$ndb_sci" in
yes )
AC_MSG_RESULT([-- including sci transporter])
AC_DEFINE([NDB_SCI_TRANSPORTER], [1],
[Including Ndb Cluster DB sci transporter])
have_ndb_sci="yes"
;;
* )
AC_MSG_RESULT([-- not including sci transporter])
;;
esac
have_ndb_test=no
have_ndb_test=no
case "$ndb_test" in
case "$ndb_test" in
yes )
yes )
...
...
configure.in
View file @
efb0ae38
...
@@ -3024,11 +3024,11 @@ AC_SUBST([ndb_port_base])
...
@@ -3024,11 +3024,11 @@ AC_SUBST([ndb_port_base])
ndb_transporter_opt_objs
=
""
ndb_transporter_opt_objs
=
""
if
test
X
"
$have_ndb_shm
"
=
Xyes
if
test
X
"
$have_ndb_shm
"
=
Xyes
then
then
ndb_transporter_opt_objs
=
"
$
(
ndb_transporter_opt_objs
)
SHM_Transporter.lo SHM_Transporter.unix.lo"
ndb_transporter_opt_objs
=
"
$
ndb_transporter_opt_objs
SHM_Transporter.lo SHM_Transporter.unix.lo"
fi
fi
if
test
X
"
$have_ndb_sci
"
=
Xyes
if
test
X
"
$have_ndb_sci
"
=
Xyes
then
then
ndb_transporter_opt_objs
=
"
$
(
ndb_transporter_opt_objs
)
SCI_Transporter.lo"
ndb_transporter_opt_objs
=
"
$
ndb_transporter_opt_objs
SCI_Transporter.lo"
fi
fi
AC_SUBST
([
ndb_transporter_opt_objs]
)
AC_SUBST
([
ndb_transporter_opt_objs]
)
...
...
ndb/config/type_ndbapitest.mk.am
View file @
efb0ae38
...
@@ -3,7 +3,7 @@ LDADD += $(top_builddir)/ndb/test/src/libNDBT.a \
...
@@ -3,7 +3,7 @@ LDADD += $(top_builddir)/ndb/test/src/libNDBT.a \
$(top_builddir)/ndb/src/libndbclient.la \
$(top_builddir)/ndb/src/libndbclient.la \
$(top_builddir)/dbug/libdbug.a \
$(top_builddir)/dbug/libdbug.a \
$(top_builddir)/mysys/libmysys.a \
$(top_builddir)/mysys/libmysys.a \
$(top_builddir)/strings/libmystrings.a
$(top_builddir)/strings/libmystrings.a
@NDB_SCI_LIBS@
INCLUDES += -I$(srcdir) -I$(top_srcdir)/include \
INCLUDES += -I$(srcdir) -I$(top_srcdir)/include \
-I$(top_srcdir)/ndb/include \
-I$(top_srcdir)/ndb/include \
...
...
ndb/config/type_ndbapitools.mk.am
View file @
efb0ae38
...
@@ -3,7 +3,7 @@ LDADD += \
...
@@ -3,7 +3,7 @@ LDADD += \
$(top_builddir)/ndb/src/libndbclient.la \
$(top_builddir)/ndb/src/libndbclient.la \
$(top_builddir)/dbug/libdbug.a \
$(top_builddir)/dbug/libdbug.a \
$(top_builddir)/mysys/libmysys.a \
$(top_builddir)/mysys/libmysys.a \
$(top_builddir)/strings/libmystrings.a
$(top_builddir)/strings/libmystrings.a
@NDB_SCI_LIBS@
INCLUDES += -I$(srcdir) -I$(top_srcdir)/include \
INCLUDES += -I$(srcdir) -I$(top_srcdir)/include \
-I$(top_srcdir)/ndb/include \
-I$(top_srcdir)/ndb/include \
...
...
ndb/include/mgmapi/mgmapi_config_parameters.h
View file @
efb0ae38
...
@@ -121,16 +121,14 @@
...
@@ -121,16 +121,14 @@
#define CFG_SHM_KEY 502
#define CFG_SHM_KEY 502
#define CFG_SHM_BUFFER_MEM 503
#define CFG_SHM_BUFFER_MEM 503
#define CFG_SCI_ID_0 550
#define CFG_SCI_HOST1_ID_0 550
#define CFG_SCI_ID_1 551
#define CFG_SCI_HOST1_ID_1 551
#define CFG_SCI_SEND_LIMIT 552
#define CFG_SCI_HOST2_ID_0 552
#define CFG_SCI_BUFFER_MEM 553
#define CFG_SCI_HOST2_ID_1 553
#define CFG_SCI_NODE1_ADAPTERS 554
#define CFG_SCI_HOSTNAME_1 554
#define CFG_SCI_NODE1_ADAPTER0 555
#define CFG_SCI_HOSTNAME_2 555
#define CFG_SCI_NODE1_ADAPTER1 556
#define CFG_SCI_SEND_LIMIT 556
#define CFG_SCI_NODE2_ADAPTERS 554
#define CFG_SCI_BUFFER_MEM 557
#define CFG_SCI_NODE2_ADAPTER0 555
#define CFG_SCI_NODE2_ADAPTER1 556
#define CFG_OSE_PRIO_A_SIZE 602
#define CFG_OSE_PRIO_A_SIZE 602
#define CFG_OSE_PRIO_B_SIZE 603
#define CFG_OSE_PRIO_B_SIZE 603
...
...
ndb/include/transporter/TransporterDefinitions.hpp
View file @
efb0ae38
...
@@ -59,8 +59,6 @@ struct TCP_TransporterConfiguration {
...
@@ -59,8 +59,6 @@ struct TCP_TransporterConfiguration {
NodeId
localNodeId
;
NodeId
localNodeId
;
Uint32
sendBufferSize
;
// Size of SendBuffer of priority B
Uint32
sendBufferSize
;
// Size of SendBuffer of priority B
Uint32
maxReceiveSize
;
// Maximum no of bytes to receive
Uint32
maxReceiveSize
;
// Maximum no of bytes to receive
Uint32
byteOrder
;
bool
compression
;
bool
checksum
;
bool
checksum
;
bool
signalId
;
bool
signalId
;
};
};
...
@@ -72,10 +70,8 @@ struct SHM_TransporterConfiguration {
...
@@ -72,10 +70,8 @@ struct SHM_TransporterConfiguration {
Uint32
port
;
Uint32
port
;
NodeId
remoteNodeId
;
NodeId
remoteNodeId
;
NodeId
localNodeId
;
NodeId
localNodeId
;
bool
compression
;
bool
checksum
;
bool
checksum
;
bool
signalId
;
bool
signalId
;
int
byteOrder
;
Uint32
shmKey
;
Uint32
shmKey
;
Uint32
shmSize
;
Uint32
shmSize
;
...
@@ -89,10 +85,8 @@ struct OSE_TransporterConfiguration {
...
@@ -89,10 +85,8 @@ struct OSE_TransporterConfiguration {
const
char
*
localHostName
;
const
char
*
localHostName
;
NodeId
remoteNodeId
;
NodeId
remoteNodeId
;
NodeId
localNodeId
;
NodeId
localNodeId
;
bool
compression
;
bool
checksum
;
bool
checksum
;
bool
signalId
;
bool
signalId
;
int
byteOrder
;
Uint32
prioASignalSize
;
Uint32
prioASignalSize
;
Uint32
prioBSignalSize
;
Uint32
prioBSignalSize
;
...
@@ -103,20 +97,20 @@ struct OSE_TransporterConfiguration {
...
@@ -103,20 +97,20 @@ struct OSE_TransporterConfiguration {
* SCI Transporter Configuration
* SCI Transporter Configuration
*/
*/
struct
SCI_TransporterConfiguration
{
struct
SCI_TransporterConfiguration
{
const
char
*
remoteHostName
;
const
char
*
localHostName
;
Uint32
port
;
Uint32
sendLimit
;
// Packet size
Uint32
sendLimit
;
// Packet size
Uint32
bufferSize
;
// Buffer size
Uint32
bufferSize
;
// Buffer size
Uint32
nLocalAdapters
;
// 1 or 2, the number of adapters on local host
Uint32
nLocalAdapters
;
// 1 or 2, the number of adapters on local host
Uint32
nRemoteAdapters
;
Uint32
remoteSciNodeId0
;
// SCInodeId for adapter 1
Uint32
remoteSciNodeId0
;
// SCInodeId for adapter 1
Uint32
remoteSciNodeId1
;
// SCInodeId for adapter 2
Uint32
remoteSciNodeId1
;
// SCInodeId for adapter 2
NodeId
localNodeId
;
// Local node Id
NodeId
localNodeId
;
// Local node Id
NodeId
remoteNodeId
;
// Remote node Id
NodeId
remoteNodeId
;
// Remote node Id
Uint32
byteOrder
;
bool
compression
;
bool
checksum
;
bool
checksum
;
bool
signalId
;
bool
signalId
;
...
...
ndb/src/common/mgmcommon/IPCConfig.cpp
View file @
efb0ae38
...
@@ -133,7 +133,6 @@ IPCConfig::configureTransporters(TransporterRegistry * theTransporterRegistry){
...
@@ -133,7 +133,6 @@ IPCConfig::configureTransporters(TransporterRegistry * theTransporterRegistry){
Uint32
compression
;
Uint32
compression
;
Uint32
checksum
;
Uint32
checksum
;
if
(
!
tmp
->
get
(
"SendSignalId"
,
&
sendSignalId
))
continue
;
if
(
!
tmp
->
get
(
"SendSignalId"
,
&
sendSignalId
))
continue
;
if
(
!
tmp
->
get
(
"Compression"
,
&
compression
))
continue
;
if
(
!
tmp
->
get
(
"Checksum"
,
&
checksum
))
continue
;
if
(
!
tmp
->
get
(
"Checksum"
,
&
checksum
))
continue
;
const
char
*
type
;
const
char
*
type
;
...
@@ -143,8 +142,6 @@ IPCConfig::configureTransporters(TransporterRegistry * theTransporterRegistry){
...
@@ -143,8 +142,6 @@ IPCConfig::configureTransporters(TransporterRegistry * theTransporterRegistry){
SHM_TransporterConfiguration
conf
;
SHM_TransporterConfiguration
conf
;
conf
.
localNodeId
=
the_ownId
;
conf
.
localNodeId
=
the_ownId
;
conf
.
remoteNodeId
=
(
nodeId1
!=
the_ownId
?
nodeId1
:
nodeId2
);
conf
.
remoteNodeId
=
(
nodeId1
!=
the_ownId
?
nodeId1
:
nodeId2
);
conf
.
byteOrder
=
0
;
conf
.
compression
=
compression
;
conf
.
checksum
=
checksum
;
conf
.
checksum
=
checksum
;
conf
.
signalId
=
sendSignalId
;
conf
.
signalId
=
sendSignalId
;
...
@@ -164,8 +161,6 @@ IPCConfig::configureTransporters(TransporterRegistry * theTransporterRegistry){
...
@@ -164,8 +161,6 @@ IPCConfig::configureTransporters(TransporterRegistry * theTransporterRegistry){
SCI_TransporterConfiguration
conf
;
SCI_TransporterConfiguration
conf
;
conf
.
localNodeId
=
the_ownId
;
conf
.
localNodeId
=
the_ownId
;
conf
.
remoteNodeId
=
(
nodeId1
!=
the_ownId
?
nodeId1
:
nodeId2
);
conf
.
remoteNodeId
=
(
nodeId1
!=
the_ownId
?
nodeId1
:
nodeId2
);
conf
.
byteOrder
=
0
;
conf
.
compression
=
compression
;
conf
.
checksum
=
checksum
;
conf
.
checksum
=
checksum
;
conf
.
signalId
=
sendSignalId
;
conf
.
signalId
=
sendSignalId
;
...
@@ -174,18 +169,16 @@ IPCConfig::configureTransporters(TransporterRegistry * theTransporterRegistry){
...
@@ -174,18 +169,16 @@ IPCConfig::configureTransporters(TransporterRegistry * theTransporterRegistry){
if
(
the_ownId
==
nodeId1
){
if
(
the_ownId
==
nodeId1
){
if
(
!
tmp
->
get
(
"Node1_NoOfAdapters"
,
&
conf
.
nLocalAdapters
))
continue
;
if
(
!
tmp
->
get
(
"Node1_NoOfAdapters"
,
&
conf
.
nLocalAdapters
))
continue
;
if
(
!
tmp
->
get
(
"Node2_NoOfAdapters"
,
&
conf
.
nRemoteAdapters
))
continue
;
if
(
!
tmp
->
get
(
"Node2_Adapter"
,
0
,
&
conf
.
remoteSciNodeId0
))
continue
;
if
(
!
tmp
->
get
(
"Node2_Adapter"
,
0
,
&
conf
.
remoteSciNodeId0
))
continue
;
if
(
conf
.
n
Remote
Adapters
>
1
){
if
(
conf
.
n
Local
Adapters
>
1
){
if
(
!
tmp
->
get
(
"Node2_Adapter"
,
1
,
&
conf
.
remoteSciNodeId1
))
continue
;
if
(
!
tmp
->
get
(
"Node2_Adapter"
,
1
,
&
conf
.
remoteSciNodeId1
))
continue
;
}
}
}
else
{
}
else
{
if
(
!
tmp
->
get
(
"Node2_NoOfAdapters"
,
&
conf
.
nLocalAdapters
))
continue
;
if
(
!
tmp
->
get
(
"Node2_NoOfAdapters"
,
&
conf
.
nLocalAdapters
))
continue
;
if
(
!
tmp
->
get
(
"Node1_NoOfAdapters"
,
&
conf
.
nRemoteAdapters
))
continue
;
if
(
!
tmp
->
get
(
"Node1_Adapter"
,
0
,
&
conf
.
remoteSciNodeId0
))
continue
;
if
(
!
tmp
->
get
(
"Node1_Adapter"
,
0
,
&
conf
.
remoteSciNodeId0
))
continue
;
if
(
conf
.
n
Remote
Adapters
>
1
){
if
(
conf
.
n
Local
Adapters
>
1
){
if
(
!
tmp
->
get
(
"Node1_Adapter"
,
1
,
&
conf
.
remoteSciNodeId1
))
continue
;
if
(
!
tmp
->
get
(
"Node1_Adapter"
,
1
,
&
conf
.
remoteSciNodeId1
))
continue
;
}
}
}
}
...
@@ -243,8 +236,6 @@ IPCConfig::configureTransporters(TransporterRegistry * theTransporterRegistry){
...
@@ -243,8 +236,6 @@ IPCConfig::configureTransporters(TransporterRegistry * theTransporterRegistry){
conf
.
localHostName
=
ownHostName
;
conf
.
localHostName
=
ownHostName
;
conf
.
remoteNodeId
=
remoteNodeId
;
conf
.
remoteNodeId
=
remoteNodeId
;
conf
.
localNodeId
=
ownNodeId
;
conf
.
localNodeId
=
ownNodeId
;
conf
.
byteOrder
=
0
;
conf
.
compression
=
compression
;
conf
.
checksum
=
checksum
;
conf
.
checksum
=
checksum
;
conf
.
signalId
=
sendSignalId
;
conf
.
signalId
=
sendSignalId
;
...
@@ -270,8 +261,6 @@ IPCConfig::configureTransporters(TransporterRegistry * theTransporterRegistry){
...
@@ -270,8 +261,6 @@ IPCConfig::configureTransporters(TransporterRegistry * theTransporterRegistry){
conf
.
localHostName
=
ownHostName
;
conf
.
localHostName
=
ownHostName
;
conf
.
remoteNodeId
=
remoteNodeId
;
conf
.
remoteNodeId
=
remoteNodeId
;
conf
.
localNodeId
=
ownNodeId
;
conf
.
localNodeId
=
ownNodeId
;
conf
.
byteOrder
=
0
;
conf
.
compression
=
compression
;
conf
.
checksum
=
checksum
;
conf
.
checksum
=
checksum
;
conf
.
signalId
=
sendSignalId
;
conf
.
signalId
=
sendSignalId
;
...
@@ -344,6 +333,7 @@ Uint32
...
@@ -344,6 +333,7 @@ Uint32
IPCConfig
::
configureTransporters
(
Uint32
nodeId
,
IPCConfig
::
configureTransporters
(
Uint32
nodeId
,
const
class
ndb_mgm_configuration
&
config
,
const
class
ndb_mgm_configuration
&
config
,
class
TransporterRegistry
&
tr
){
class
TransporterRegistry
&
tr
){
DBUG_ENTER
(
"IPCConfig::configureTransporters"
);
Uint32
noOfTransportersCreated
=
0
;
Uint32
noOfTransportersCreated
=
0
;
ndb_mgm_configuration_iterator
iter
(
config
,
CFG_SECTION_CONNECTION
);
ndb_mgm_configuration_iterator
iter
(
config
,
CFG_SECTION_CONNECTION
);
...
@@ -379,14 +369,13 @@ IPCConfig::configureTransporters(Uint32 nodeId,
...
@@ -379,14 +369,13 @@ IPCConfig::configureTransporters(Uint32 nodeId,
if
(
nodeId
<=
nodeId1
&&
nodeId
<=
nodeId2
)
{
if
(
nodeId
<=
nodeId1
&&
nodeId
<=
nodeId2
)
{
tr
.
add_transporter_interface
(
localHostName
,
server_port
);
tr
.
add_transporter_interface
(
localHostName
,
server_port
);
}
}
DBUG_PRINT
(
"info"
,
(
"Transporter between this node %d and node %d using port %d, signalId %d, checksum %d"
,
nodeId
,
remoteNodeId
,
server_port
,
sendSignalId
,
checksum
));
switch
(
type
){
switch
(
type
){
case
CONNECTION_TYPE_SHM
:{
case
CONNECTION_TYPE_SHM
:{
SHM_TransporterConfiguration
conf
;
SHM_TransporterConfiguration
conf
;
conf
.
localNodeId
=
nodeId
;
conf
.
localNodeId
=
nodeId
;
conf
.
remoteNodeId
=
remoteNodeId
;
conf
.
remoteNodeId
=
remoteNodeId
;
conf
.
byteOrder
=
0
;
conf
.
compression
=
0
;
conf
.
checksum
=
checksum
;
conf
.
checksum
=
checksum
;
conf
.
signalId
=
sendSignalId
;
conf
.
signalId
=
sendSignalId
;
...
@@ -396,45 +385,60 @@ IPCConfig::configureTransporters(Uint32 nodeId,
...
@@ -396,45 +385,60 @@ IPCConfig::configureTransporters(Uint32 nodeId,
conf
.
port
=
server_port
;
conf
.
port
=
server_port
;
if
(
!
tr
.
createTransporter
(
&
conf
)){
if
(
!
tr
.
createTransporter
(
&
conf
)){
DBUG_PRINT
(
"error"
,
(
"Failed to create SHM Transporter from %d to %d"
,
conf
.
localNodeId
,
conf
.
remoteNodeId
));
ndbout
<<
"Failed to create SHM Transporter from: "
ndbout
<<
"Failed to create SHM Transporter from: "
<<
conf
.
localNodeId
<<
" to: "
<<
conf
.
remoteNodeId
<<
endl
;
<<
conf
.
localNodeId
<<
" to: "
<<
conf
.
remoteNodeId
<<
endl
;
}
else
{
}
else
{
noOfTransportersCreated
++
;
noOfTransportersCreated
++
;
}
}
DBUG_PRINT
(
"info"
,
(
"Created SHM Transporter using shmkey %d, buf size = %d"
,
conf
.
shmKey
,
conf
.
shmSize
));
break
;
break
;
}
}
case
CONNECTION_TYPE_SCI
:{
case
CONNECTION_TYPE_SCI
:{
SCI_TransporterConfiguration
conf
;
SCI_TransporterConfiguration
conf
;
const
char
*
host1
,
*
host2
;
conf
.
localNodeId
=
nodeId
;
conf
.
localNodeId
=
nodeId
;
conf
.
remoteNodeId
=
remoteNodeId
;
conf
.
remoteNodeId
=
remoteNodeId
;
conf
.
byteOrder
=
0
;
conf
.
compression
=
0
;
conf
.
checksum
=
checksum
;
conf
.
checksum
=
checksum
;
conf
.
signalId
=
sendSignalId
;
conf
.
signalId
=
sendSignalId
;
conf
.
port
=
server_port
;
if
(
iter
.
get
(
CFG_SCI_HOSTNAME_1
,
&
host1
))
break
;
if
(
iter
.
get
(
CFG_SCI_HOSTNAME_2
,
&
host2
))
break
;
conf
.
localHostName
=
(
nodeId
==
nodeId1
?
host1
:
host2
);
conf
.
remoteHostName
=
(
nodeId
==
nodeId1
?
host2
:
host1
);
if
(
iter
.
get
(
CFG_SCI_SEND_LIMIT
,
&
conf
.
sendLimit
))
break
;
if
(
iter
.
get
(
CFG_SCI_SEND_LIMIT
,
&
conf
.
sendLimit
))
break
;
if
(
iter
.
get
(
CFG_SCI_BUFFER_MEM
,
&
conf
.
bufferSize
))
break
;
if
(
iter
.
get
(
CFG_SCI_BUFFER_MEM
,
&
conf
.
bufferSize
))
break
;
if
(
nodeId
==
nodeId1
)
{
if
(
nodeId
==
nodeId1
){
if
(
iter
.
get
(
CFG_SCI_HOST2_ID_0
,
&
conf
.
remoteSciNodeId0
))
break
;
if
(
iter
.
get
(
CFG_SCI_NODE1_ADAPTERS
,
&
conf
.
nLocalAdapters
))
break
;
if
(
iter
.
get
(
CFG_SCI_HOST2_ID_1
,
&
conf
.
remoteSciNodeId1
))
break
;
if
(
iter
.
get
(
CFG_SCI_NODE2_ADAPTERS
,
&
conf
.
nRemoteAdapters
))
break
;
if
(
iter
.
get
(
CFG_SCI_NODE2_ADAPTER0
,
&
conf
.
remoteSciNodeId0
))
break
;
if
(
conf
.
nRemoteAdapters
>
1
){
if
(
iter
.
get
(
CFG_SCI_NODE2_ADAPTER1
,
&
conf
.
remoteSciNodeId1
))
break
;
}
}
else
{
}
else
{
if
(
iter
.
get
(
CFG_SCI_NODE2_ADAPTERS
,
&
conf
.
nLocalAdapters
))
break
;
if
(
iter
.
get
(
CFG_SCI_HOST1_ID_0
,
&
conf
.
remoteSciNodeId0
))
break
;
if
(
iter
.
get
(
CFG_SCI_NODE1_ADAPTERS
,
&
conf
.
nRemoteAdapters
))
break
;
if
(
iter
.
get
(
CFG_SCI_HOST1_ID_1
,
&
conf
.
remoteSciNodeId1
))
break
;
if
(
iter
.
get
(
CFG_SCI_NODE1_ADAPTER0
,
&
conf
.
remoteSciNodeId0
))
break
;
if
(
conf
.
nRemoteAdapters
>
1
){
if
(
iter
.
get
(
CFG_SCI_NODE1_ADAPTER1
,
&
conf
.
remoteSciNodeId1
))
break
;
}
}
}
if
(
conf
.
remoteSciNodeId1
==
0
)
{
if
(
!
tr
.
createTransporter
(
&
conf
)){
conf
.
nLocalAdapters
=
1
;
}
else
{
conf
.
nLocalAdapters
=
2
;
}
if
(
!
tr
.
createTransporter
(
&
conf
)){
DBUG_PRINT
(
"error"
,
(
"Failed to create SCI Transporter from %d to %d"
,
conf
.
localNodeId
,
conf
.
remoteNodeId
));
ndbout
<<
"Failed to create SCI Transporter from: "
ndbout
<<
"Failed to create SCI Transporter from: "
<<
conf
.
localNodeId
<<
" to: "
<<
conf
.
remoteNodeId
<<
endl
;
<<
conf
.
localNodeId
<<
" to: "
<<
conf
.
remoteNodeId
<<
endl
;
}
else
{
}
else
{
DBUG_PRINT
(
"info"
,
(
"Created SCI Transporter: Adapters = %d, remote SCI node id %d"
,
conf
.
nLocalAdapters
,
conf
.
remoteSciNodeId0
));
DBUG_PRINT
(
"info"
,
(
"Host 1 = %s, Host 2 = %s, sendLimit = %d, buf size = %d"
,
conf
.
localHostName
,
conf
.
remoteHostName
,
conf
.
sendLimit
,
conf
.
bufferSize
));
if
(
conf
.
nLocalAdapters
>
1
)
{
DBUG_PRINT
(
"info"
,
(
"Fault-tolerant with 2 Remote Adapters, second remote SCI node id = %d"
,
conf
.
remoteSciNodeId1
));
}
noOfTransportersCreated
++
;
noOfTransportersCreated
++
;
continue
;
continue
;
}
}
...
@@ -458,8 +462,6 @@ IPCConfig::configureTransporters(Uint32 nodeId,
...
@@ -458,8 +462,6 @@ IPCConfig::configureTransporters(Uint32 nodeId,
conf
.
remoteNodeId
=
remoteNodeId
;
conf
.
remoteNodeId
=
remoteNodeId
;
conf
.
localHostName
=
localHostName
;
conf
.
localHostName
=
localHostName
;
conf
.
remoteHostName
=
remoteHostName
;
conf
.
remoteHostName
=
remoteHostName
;
conf
.
byteOrder
=
0
;
conf
.
compression
=
0
;
conf
.
checksum
=
checksum
;
conf
.
checksum
=
checksum
;
conf
.
signalId
=
sendSignalId
;
conf
.
signalId
=
sendSignalId
;
...
@@ -469,6 +471,9 @@ IPCConfig::configureTransporters(Uint32 nodeId,
...
@@ -469,6 +471,9 @@ IPCConfig::configureTransporters(Uint32 nodeId,
}
else
{
}
else
{
noOfTransportersCreated
++
;
noOfTransportersCreated
++
;
}
}
DBUG_PRINT
(
"info"
,
(
"Created TCP Transporter: sendBufferSize = %d, maxReceiveSize = %d"
,
conf
.
sendBufferSize
,
conf
.
maxReceiveSize
));
break
;
case
CONNECTION_TYPE_OSE
:{
case
CONNECTION_TYPE_OSE
:{
OSE_TransporterConfiguration
conf
;
OSE_TransporterConfiguration
conf
;
...
@@ -480,8 +485,6 @@ IPCConfig::configureTransporters(Uint32 nodeId,
...
@@ -480,8 +485,6 @@ IPCConfig::configureTransporters(Uint32 nodeId,
conf
.
remoteNodeId
=
remoteNodeId
;
conf
.
remoteNodeId
=
remoteNodeId
;
conf
.
localHostName
=
localHostName
;
conf
.
localHostName
=
localHostName
;
conf
.
remoteHostName
=
remoteHostName
;
conf
.
remoteHostName
=
remoteHostName
;
conf
.
byteOrder
=
0
;
conf
.
compression
=
0
;
conf
.
checksum
=
checksum
;
conf
.
checksum
=
checksum
;
conf
.
signalId
=
sendSignalId
;
conf
.
signalId
=
sendSignalId
;
...
@@ -499,6 +502,6 @@ IPCConfig::configureTransporters(Uint32 nodeId,
...
@@ -499,6 +502,6 @@ IPCConfig::configureTransporters(Uint32 nodeId,
}
}
}
}
}
}
return
noOfTransportersCreated
;
DBUG_RETURN
(
noOfTransportersCreated
)
;
}
}
ndb/src/common/transporter/Makefile.am
View file @
efb0ae38
...
@@ -13,7 +13,7 @@ EXTRA_libtransporter_la_SOURCES = SHM_Transporter.cpp SHM_Transporter.unix.cpp S
...
@@ -13,7 +13,7 @@ EXTRA_libtransporter_la_SOURCES = SHM_Transporter.cpp SHM_Transporter.unix.cpp S
libtransporter_la_LIBADD
=
@ndb_transporter_opt_objs@
libtransporter_la_LIBADD
=
@ndb_transporter_opt_objs@
libtransporter_la_DEPENDENCIES
=
@ndb_transporter_opt_objs@
libtransporter_la_DEPENDENCIES
=
@ndb_transporter_opt_objs@
INCLUDES_LOC
=
-I
$(top_srcdir)
/ndb/include/kernel
-I
$(top_srcdir)
/ndb/include/transporter
INCLUDES_LOC
=
-I
$(top_srcdir)
/ndb/include/kernel
-I
$(top_srcdir)
/ndb/include/transporter
@NDB_SCI_INCLUDES@
include
$(top_srcdir)/ndb/config/common.mk.am
include
$(top_srcdir)/ndb/config/common.mk.am
include
$(top_srcdir)/ndb/config/type_util.mk.am
include
$(top_srcdir)/ndb/config/type_util.mk.am
...
...
ndb/src/common/transporter/Packer.cpp
View file @
efb0ae38
...
@@ -21,6 +21,7 @@
...
@@ -21,6 +21,7 @@
#include <TransporterCallback.hpp>
#include <TransporterCallback.hpp>
#include <RefConvert.hpp>
#include <RefConvert.hpp>
#define MAX_RECEIVED_SIGNALS 1024
Uint32
Uint32
TransporterRegistry
::
unpack
(
Uint32
*
readPtr
,
TransporterRegistry
::
unpack
(
Uint32
*
readPtr
,
Uint32
sizeOfData
,
Uint32
sizeOfData
,
...
@@ -30,12 +31,15 @@ TransporterRegistry::unpack(Uint32 * readPtr,
...
@@ -30,12 +31,15 @@ TransporterRegistry::unpack(Uint32 * readPtr,
LinearSectionPtr
ptr
[
3
];
LinearSectionPtr
ptr
[
3
];
Uint32
usedData
=
0
;
Uint32
usedData
=
0
;
Uint32
loop_count
=
0
;
if
(
state
==
NoHalt
||
state
==
HaltOutput
){
if
(
state
==
NoHalt
||
state
==
HaltOutput
){
while
(
sizeOfData
>=
4
+
sizeof
(
Protocol6
)){
while
((
sizeOfData
>=
4
+
sizeof
(
Protocol6
))
&&
(
loop_count
<
MAX_RECEIVED_SIGNALS
))
{
Uint32
word1
=
readPtr
[
0
];
Uint32
word1
=
readPtr
[
0
];
Uint32
word2
=
readPtr
[
1
];
Uint32
word2
=
readPtr
[
1
];
Uint32
word3
=
readPtr
[
2
];
Uint32
word3
=
readPtr
[
2
];
loop_count
++
;
#if 0
#if 0
if(Protocol6::getByteOrder(word1) != MY_OWN_BYTE_ORDER){
if(Protocol6::getByteOrder(word1) != MY_OWN_BYTE_ORDER){
...
@@ -112,10 +116,12 @@ TransporterRegistry::unpack(Uint32 * readPtr,
...
@@ -112,10 +116,12 @@ TransporterRegistry::unpack(Uint32 * readPtr,
}
else
{
}
else
{
/** state = HaltIO || state == HaltInput */
/** state = HaltIO || state == HaltInput */
while
(
sizeOfData
>=
4
+
sizeof
(
Protocol6
)){
while
((
sizeOfData
>=
4
+
sizeof
(
Protocol6
))
&&
(
loop_count
<
MAX_RECEIVED_SIGNALS
))
{
Uint32
word1
=
readPtr
[
0
];
Uint32
word1
=
readPtr
[
0
];
Uint32
word2
=
readPtr
[
1
];
Uint32
word2
=
readPtr
[
1
];
Uint32
word3
=
readPtr
[
2
];
Uint32
word3
=
readPtr
[
2
];
loop_count
++
;
#if 0
#if 0
if(Protocol6::getByteOrder(word1) != MY_OWN_BYTE_ORDER){
if(Protocol6::getByteOrder(word1) != MY_OWN_BYTE_ORDER){
...
@@ -208,12 +214,13 @@ TransporterRegistry::unpack(Uint32 * readPtr,
...
@@ -208,12 +214,13 @@ TransporterRegistry::unpack(Uint32 * readPtr,
IOState
state
)
{
IOState
state
)
{
static
SignalHeader
signalHeader
;
static
SignalHeader
signalHeader
;
static
LinearSectionPtr
ptr
[
3
];
static
LinearSectionPtr
ptr
[
3
];
Uint32
loop_count
=
0
;
if
(
state
==
NoHalt
||
state
==
HaltOutput
){
if
(
state
==
NoHalt
||
state
==
HaltOutput
){
while
(
readPtr
<
eodPtr
)
{
while
((
readPtr
<
eodPtr
)
&&
(
loop_count
<
MAX_RECEIVED_SIGNALS
))
{
Uint32
word1
=
readPtr
[
0
];
Uint32
word1
=
readPtr
[
0
];
Uint32
word2
=
readPtr
[
1
];
Uint32
word2
=
readPtr
[
1
];
Uint32
word3
=
readPtr
[
2
];
Uint32
word3
=
readPtr
[
2
];
loop_count
++
;
#if 0
#if 0
if(Protocol6::getByteOrder(word1) != MY_OWN_BYTE_ORDER){
if(Protocol6::getByteOrder(word1) != MY_OWN_BYTE_ORDER){
//Do funky stuff
//Do funky stuff
...
@@ -280,11 +287,11 @@ TransporterRegistry::unpack(Uint32 * readPtr,
...
@@ -280,11 +287,11 @@ TransporterRegistry::unpack(Uint32 * readPtr,
}
else
{
}
else
{
/** state = HaltIO || state == HaltInput */
/** state = HaltIO || state == HaltInput */
while
(
readPtr
<
eodPtr
)
{
while
((
readPtr
<
eodPtr
)
&&
(
loop_count
<
MAX_RECEIVED_SIGNALS
))
{
Uint32
word1
=
readPtr
[
0
];
Uint32
word1
=
readPtr
[
0
];
Uint32
word2
=
readPtr
[
1
];
Uint32
word2
=
readPtr
[
1
];
Uint32
word3
=
readPtr
[
2
];
Uint32
word3
=
readPtr
[
2
];
loop_count
++
;
#if 0
#if 0
if(Protocol6::getByteOrder(word1) != MY_OWN_BYTE_ORDER){
if(Protocol6::getByteOrder(word1) != MY_OWN_BYTE_ORDER){
//Do funky stuff
//Do funky stuff
...
...
ndb/src/common/transporter/SCI_Transporter.cpp
View file @
efb0ae38
This diff is collapsed.
Click to expand it.
ndb/src/common/transporter/SCI_Transporter.hpp
View file @
efb0ae38
...
@@ -26,7 +26,7 @@
...
@@ -26,7 +26,7 @@
#include <ndb_types.h>
#include <ndb_types.h>
/**
/**
* The SCI Transporter
* The SCI Transporter
*
*
* The design goal of the SCI transporter is to deliver high performance
* The design goal of the SCI transporter is to deliver high performance
...
@@ -135,15 +135,17 @@ public:
...
@@ -135,15 +135,17 @@ public:
bool
getConnectionStatus
();
bool
getConnectionStatus
();
private:
private:
SCI_Transporter
(
Uint32
packetSize
,
SCI_Transporter
(
TransporterRegistry
&
t_reg
,
const
char
*
local_host
,
const
char
*
remote_host
,
int
port
,
Uint32
packetSize
,
Uint32
bufferSize
,
Uint32
bufferSize
,
Uint32
nAdapters
,
Uint32
nAdapters
,
Uint16
remoteSciNodeId0
,
Uint16
remoteSciNodeId0
,
Uint16
remoteSciNodeId1
,
Uint16
remoteSciNodeId1
,
NodeId
localNodeID
,
NodeId
localNodeID
,
NodeId
remoteNodeID
,
NodeId
remoteNodeID
,
int
byteorder
,
bool
compression
,
bool
checksum
,
bool
checksum
,
bool
signalId
,
bool
signalId
,
Uint32
reportFreq
=
4096
);
Uint32
reportFreq
=
4096
);
...
@@ -160,7 +162,8 @@ private:
...
@@ -160,7 +162,8 @@ private:
/**
/**
* For statistics on transfered packets
* For statistics on transfered packets
*/
*/
#ifdef DEBUG_TRANSPORTER
//#ifdef DEBUG_TRANSPORTER
#if 1
Uint32
i1024
;
Uint32
i1024
;
Uint32
i2048
;
Uint32
i2048
;
Uint32
i2049
;
Uint32
i2049
;
...
@@ -177,10 +180,8 @@ private:
...
@@ -177,10 +180,8 @@ private:
struct
{
struct
{
Uint32
*
m_buffer
;
// The buffer
Uint32
*
m_buffer
;
// The buffer
Uint32
m_dataSize
;
// No of words in buffer
Uint32
m_dataSize
;
// No of words in buffer
Uint32
m_
bufferSize
;
// Buffer size
Uint32
m_
sendBufferSize
;
// Buffer size
Uint32
m_forceSendLimit
;
// Send when buffer is this full
Uint32
m_forceSendLimit
;
// Send when buffer is this full
bool
full
()
const
{
return
(
m_dataSize
*
4
)
>
m_forceSendLimit
;}
}
m_sendBuffer
;
}
m_sendBuffer
;
SHM_Reader
*
reader
;
SHM_Reader
*
reader
;
...
@@ -196,7 +197,7 @@ private:
...
@@ -196,7 +197,7 @@ private:
Uint32
m_adapters
;
Uint32
m_adapters
;
Uint32
m_numberOfRemoteNodes
;
Uint32
m_numberOfRemoteNodes
;
Uint16
*
m_remoteNodes
;
Uint16
m_remoteNodes
[
2
]
;
typedef
struct
SciAdapter
{
typedef
struct
SciAdapter
{
sci_desc_t
scidesc
;
sci_desc_t
scidesc
;
...
@@ -296,12 +297,11 @@ private:
...
@@ -296,12 +297,11 @@ private:
*/
*/
bool
sendIsPossible
(
struct
timeval
*
timeout
);
bool
sendIsPossible
(
struct
timeval
*
timeout
);
void
getReceivePtr
(
Uint32
**
ptr
,
Uint32
**
eod
){
void
getReceivePtr
(
Uint32
**
ptr
,
Uint32
**
eod
){
reader
->
getReadPtr
(
*
ptr
,
*
eod
);
reader
->
getReadPtr
(
*
ptr
,
*
eod
);
}
}
void
updateReceivePtr
(
Uint32
*
ptr
){
void
updateReceivePtr
(
Uint32
*
ptr
){
reader
->
updateReadPtr
(
ptr
);
reader
->
updateReadPtr
(
ptr
);
}
}
...
@@ -341,7 +341,9 @@ private:
...
@@ -341,7 +341,9 @@ private:
*/
*/
void
failoverShmWriter
();
void
failoverShmWriter
();
bool
init_local
();
bool
init_remote
();
protected
:
protected
:
/** Perform a connection between segment
/** Perform a connection between segment
...
@@ -350,7 +352,8 @@ protected:
...
@@ -350,7 +352,8 @@ protected:
* retrying.
* retrying.
* @return Returns true on success, otherwize falser
* @return Returns true on success, otherwize falser
*/
*/
bool
connectImpl
(
Uint32
timeOutMillis
);
bool
connect_server_impl
(
NDB_SOCKET_TYPE
sockfd
);
bool
connect_client_impl
(
NDB_SOCKET_TYPE
sockfd
);
/**
/**
* We will disconnect if:
* We will disconnect if:
...
...
ndb/src/common/transporter/SHM_Buffer.hpp
View file @
efb0ae38
...
@@ -52,7 +52,7 @@ public:
...
@@ -52,7 +52,7 @@ public:
}
}
void
clear
()
{
void
clear
()
{
m_readIndex
=
*
m_sharedReadIndex
;
m_readIndex
=
0
;
}
}
/**
/**
...
@@ -71,7 +71,7 @@ public:
...
@@ -71,7 +71,7 @@ public:
/**
/**
* Update read ptr
* Update read ptr
*/
*/
inline
void
updateReadPtr
(
Uint32
*
readP
tr
);
inline
void
updateReadPtr
(
Uint32
*
p
tr
);
private:
private:
char
*
const
m_startOfBuffer
;
char
*
const
m_startOfBuffer
;
...
@@ -98,8 +98,8 @@ SHM_Reader::empty() const{
...
@@ -98,8 +98,8 @@ SHM_Reader::empty() const{
*/
*/
inline
inline
void
void
SHM_Reader
::
getReadPtr
(
Uint32
*
&
ptr
,
Uint32
*
&
eod
)
{
SHM_Reader
::
getReadPtr
(
Uint32
*
&
ptr
,
Uint32
*
&
eod
)
{
Uint32
tReadIndex
=
m_readIndex
;
Uint32
tReadIndex
=
m_readIndex
;
Uint32
tWriteIndex
=
*
m_sharedWriteIndex
;
Uint32
tWriteIndex
=
*
m_sharedWriteIndex
;
...
@@ -117,14 +117,14 @@ SHM_Reader::getReadPtr(Uint32 * & ptr, Uint32 * & eod){
...
@@ -117,14 +117,14 @@ SHM_Reader::getReadPtr(Uint32 * & ptr, Uint32 * & eod){
*/
*/
inline
inline
void
void
SHM_Reader
::
updateReadPtr
(
Uint32
*
ptr
){
SHM_Reader
::
updateReadPtr
(
Uint32
*
ptr
)
{
Uint32
tReadIndex
=
((
char
*
)
ptr
)
-
m_startOfBuffer
;
Uint32
tReadIndex
=
((
char
*
)
ptr
)
-
m_startOfBuffer
;
assert
(
tReadIndex
<
m_totalBufferSize
);
assert
(
tReadIndex
<
m_totalBufferSize
);
if
(
tReadIndex
>=
m_bufferSize
){
if
(
tReadIndex
>=
m_bufferSize
){
tReadIndex
=
0
;
//-= m_bufferSize;
tReadIndex
=
0
;
}
}
m_readIndex
=
tReadIndex
;
m_readIndex
=
tReadIndex
;
...
@@ -149,7 +149,7 @@ public:
...
@@ -149,7 +149,7 @@ public:
}
}
void
clear
()
{
void
clear
()
{
m_writeIndex
=
*
m_sharedWriteIndex
;
m_writeIndex
=
0
;
}
}
inline
char
*
getWritePtr
(
Uint32
sz
);
inline
char
*
getWritePtr
(
Uint32
sz
);
...
@@ -206,7 +206,7 @@ SHM_Writer::updateWritePtr(Uint32 sz){
...
@@ -206,7 +206,7 @@ SHM_Writer::updateWritePtr(Uint32 sz){
assert
(
tWriteIndex
<
m_totalBufferSize
);
assert
(
tWriteIndex
<
m_totalBufferSize
);
if
(
tWriteIndex
>=
m_bufferSize
){
if
(
tWriteIndex
>=
m_bufferSize
){
tWriteIndex
=
0
;
//-= m_bufferSize;
tWriteIndex
=
0
;
}
}
m_writeIndex
=
tWriteIndex
;
m_writeIndex
=
tWriteIndex
;
...
...
ndb/src/common/transporter/SHM_Transporter.cpp
View file @
efb0ae38
...
@@ -32,13 +32,12 @@ SHM_Transporter::SHM_Transporter(TransporterRegistry &t_reg,
...
@@ -32,13 +32,12 @@ SHM_Transporter::SHM_Transporter(TransporterRegistry &t_reg,
int
r_port
,
int
r_port
,
NodeId
lNodeId
,
NodeId
lNodeId
,
NodeId
rNodeId
,
NodeId
rNodeId
,
bool
compression
,
bool
checksum
,
bool
checksum
,
bool
signalId
,
bool
signalId
,
key_t
_shmKey
,
key_t
_shmKey
,
Uint32
_shmSize
)
:
Uint32
_shmSize
)
:
Transporter
(
t_reg
,
lHostName
,
rHostName
,
r_port
,
lNodeId
,
rNodeId
,
Transporter
(
t_reg
,
lHostName
,
rHostName
,
r_port
,
lNodeId
,
rNodeId
,
0
,
compression
,
checksum
,
signalId
),
0
,
false
,
checksum
,
signalId
),
shmKey
(
_shmKey
),
shmKey
(
_shmKey
),
shmSize
(
_shmSize
)
shmSize
(
_shmSize
)
{
{
...
@@ -48,7 +47,7 @@ SHM_Transporter::SHM_Transporter(TransporterRegistry &t_reg,
...
@@ -48,7 +47,7 @@ SHM_Transporter::SHM_Transporter(TransporterRegistry &t_reg,
shmBuf
=
0
;
shmBuf
=
0
;
reader
=
0
;
reader
=
0
;
writer
=
0
;
writer
=
0
;
setupBuffersDone
=
false
;
setupBuffersDone
=
false
;
#ifdef DEBUG_TRANSPORTER
#ifdef DEBUG_TRANSPORTER
printf
(
"shm key (%d - %d) = %d
\n
"
,
lNodeId
,
rNodeId
,
shmKey
);
printf
(
"shm key (%d - %d) = %d
\n
"
,
lNodeId
,
rNodeId
,
shmKey
);
...
@@ -92,8 +91,6 @@ SHM_Transporter::setupBuffers(){
...
@@ -92,8 +91,6 @@ SHM_Transporter::setupBuffers(){
clientStatusFlag
=
base2
+
4
;
clientStatusFlag
=
base2
+
4
;
char
*
startOfBuf2
=
((
char
*
)
base2
)
+
sharedSize
;
char
*
startOfBuf2
=
((
char
*
)
base2
)
+
sharedSize
;
*
sharedReadIndex2
=
*
sharedWriteIndex2
=
0
;
if
(
isServer
){
if
(
isServer
){
*
serverStatusFlag
=
0
;
*
serverStatusFlag
=
0
;
reader
=
new
SHM_Reader
(
startOfBuf1
,
reader
=
new
SHM_Reader
(
startOfBuf1
,
...
@@ -109,10 +106,10 @@ SHM_Transporter::setupBuffers(){
...
@@ -109,10 +106,10 @@ SHM_Transporter::setupBuffers(){
sharedWriteIndex2
);
sharedWriteIndex2
);
*
sharedReadIndex1
=
0
;
*
sharedReadIndex1
=
0
;
*
sharedWriteIndex
2
=
0
;
*
sharedWriteIndex
1
=
0
;
*
sharedReadIndex2
=
0
;
*
sharedReadIndex2
=
0
;
*
sharedWriteIndex
1
=
0
;
*
sharedWriteIndex
2
=
0
;
reader
->
clear
();
reader
->
clear
();
writer
->
clear
();
writer
->
clear
();
...
@@ -224,6 +221,7 @@ SHM_Transporter::prepareSend(const SignalHeader * const signalHeader,
...
@@ -224,6 +221,7 @@ SHM_Transporter::prepareSend(const SignalHeader * const signalHeader,
bool
bool
SHM_Transporter
::
connect_server_impl
(
NDB_SOCKET_TYPE
sockfd
)
SHM_Transporter
::
connect_server_impl
(
NDB_SOCKET_TYPE
sockfd
)
{
{
DBUG_ENTER
(
"SHM_Transporter::connect_server_impl"
);
SocketOutputStream
s_output
(
sockfd
);
SocketOutputStream
s_output
(
sockfd
);
SocketInputStream
s_input
(
sockfd
);
SocketInputStream
s_input
(
sockfd
);
char
buf
[
256
];
char
buf
[
256
];
...
@@ -233,7 +231,7 @@ SHM_Transporter::connect_server_impl(NDB_SOCKET_TYPE sockfd)
...
@@ -233,7 +231,7 @@ SHM_Transporter::connect_server_impl(NDB_SOCKET_TYPE sockfd)
if
(
!
ndb_shm_create
())
{
if
(
!
ndb_shm_create
())
{
report_error
(
TE_SHM_UNABLE_TO_CREATE_SEGMENT
);
report_error
(
TE_SHM_UNABLE_TO_CREATE_SEGMENT
);
NDB_CLOSE_SOCKET
(
sockfd
);
NDB_CLOSE_SOCKET
(
sockfd
);
return
false
;
DBUG_RETURN
(
false
)
;
}
}
_shmSegCreated
=
true
;
_shmSegCreated
=
true
;
}
}
...
@@ -243,7 +241,7 @@ SHM_Transporter::connect_server_impl(NDB_SOCKET_TYPE sockfd)
...
@@ -243,7 +241,7 @@ SHM_Transporter::connect_server_impl(NDB_SOCKET_TYPE sockfd)
if
(
!
ndb_shm_attach
())
{
if
(
!
ndb_shm_attach
())
{
report_error
(
TE_SHM_UNABLE_TO_ATTACH_SEGMENT
);
report_error
(
TE_SHM_UNABLE_TO_ATTACH_SEGMENT
);
NDB_CLOSE_SOCKET
(
sockfd
);
NDB_CLOSE_SOCKET
(
sockfd
);
return
false
;
DBUG_RETURN
(
false
)
;
}
}
_attached
=
true
;
_attached
=
true
;
}
}
...
@@ -254,7 +252,7 @@ SHM_Transporter::connect_server_impl(NDB_SOCKET_TYPE sockfd)
...
@@ -254,7 +252,7 @@ SHM_Transporter::connect_server_impl(NDB_SOCKET_TYPE sockfd)
// Wait for ok from client
// Wait for ok from client
if
(
s_input
.
gets
(
buf
,
256
)
==
0
)
{
if
(
s_input
.
gets
(
buf
,
256
)
==
0
)
{
NDB_CLOSE_SOCKET
(
sockfd
);
NDB_CLOSE_SOCKET
(
sockfd
);
return
false
;
DBUG_RETURN
(
false
)
;
}
}
int
r
=
connect_common
(
sockfd
);
int
r
=
connect_common
(
sockfd
);
...
@@ -265,17 +263,20 @@ SHM_Transporter::connect_server_impl(NDB_SOCKET_TYPE sockfd)
...
@@ -265,17 +263,20 @@ SHM_Transporter::connect_server_impl(NDB_SOCKET_TYPE sockfd)
// Wait for ok from client
// Wait for ok from client
if
(
s_input
.
gets
(
buf
,
256
)
==
0
)
{
if
(
s_input
.
gets
(
buf
,
256
)
==
0
)
{
NDB_CLOSE_SOCKET
(
sockfd
);
NDB_CLOSE_SOCKET
(
sockfd
);
return
false
;
DBUG_RETURN
(
false
)
;
}
}
DBUG_PRINT
(
"info"
,
(
"Successfully connected server to node %d"
,
remoteNodeId
));
}
}
NDB_CLOSE_SOCKET
(
sockfd
);
NDB_CLOSE_SOCKET
(
sockfd
);
return
r
;
DBUG_RETURN
(
r
)
;
}
}
bool
bool
SHM_Transporter
::
connect_client_impl
(
NDB_SOCKET_TYPE
sockfd
)
SHM_Transporter
::
connect_client_impl
(
NDB_SOCKET_TYPE
sockfd
)
{
{
DBUG_ENTER
(
"SHM_Transporter::connect_client_impl"
);
SocketInputStream
s_input
(
sockfd
);
SocketInputStream
s_input
(
sockfd
);
SocketOutputStream
s_output
(
sockfd
);
SocketOutputStream
s_output
(
sockfd
);
char
buf
[
256
];
char
buf
[
256
];
...
@@ -283,14 +284,18 @@ SHM_Transporter::connect_client_impl(NDB_SOCKET_TYPE sockfd)
...
@@ -283,14 +284,18 @@ SHM_Transporter::connect_client_impl(NDB_SOCKET_TYPE sockfd)
// Wait for server to create and attach
// Wait for server to create and attach
if
(
s_input
.
gets
(
buf
,
256
)
==
0
)
{
if
(
s_input
.
gets
(
buf
,
256
)
==
0
)
{
NDB_CLOSE_SOCKET
(
sockfd
);
NDB_CLOSE_SOCKET
(
sockfd
);
return
false
;
DBUG_PRINT
(
"error"
,
(
"Server id %d did not attach"
,
remoteNodeId
));
DBUG_RETURN
(
false
);
}
}
// Create
// Create
if
(
!
_shmSegCreated
){
if
(
!
_shmSegCreated
){
if
(
!
ndb_shm_get
())
{
if
(
!
ndb_shm_get
())
{
NDB_CLOSE_SOCKET
(
sockfd
);
NDB_CLOSE_SOCKET
(
sockfd
);
return
false
;
DBUG_PRINT
(
"error"
,
(
"Failed create of shm seg to node %d"
,
remoteNodeId
));
DBUG_RETURN
(
false
);
}
}
_shmSegCreated
=
true
;
_shmSegCreated
=
true
;
}
}
...
@@ -300,7 +305,9 @@ SHM_Transporter::connect_client_impl(NDB_SOCKET_TYPE sockfd)
...
@@ -300,7 +305,9 @@ SHM_Transporter::connect_client_impl(NDB_SOCKET_TYPE sockfd)
if
(
!
ndb_shm_attach
())
{
if
(
!
ndb_shm_attach
())
{
report_error
(
TE_SHM_UNABLE_TO_ATTACH_SEGMENT
);
report_error
(
TE_SHM_UNABLE_TO_ATTACH_SEGMENT
);
NDB_CLOSE_SOCKET
(
sockfd
);
NDB_CLOSE_SOCKET
(
sockfd
);
return
false
;
DBUG_PRINT
(
"error"
,
(
"Failed attach of shm seg to node %d"
,
remoteNodeId
));
DBUG_RETURN
(
false
);
}
}
_attached
=
true
;
_attached
=
true
;
}
}
...
@@ -314,21 +321,28 @@ SHM_Transporter::connect_client_impl(NDB_SOCKET_TYPE sockfd)
...
@@ -314,21 +321,28 @@ SHM_Transporter::connect_client_impl(NDB_SOCKET_TYPE sockfd)
// Wait for ok from server
// Wait for ok from server
if
(
s_input
.
gets
(
buf
,
256
)
==
0
)
{
if
(
s_input
.
gets
(
buf
,
256
)
==
0
)
{
NDB_CLOSE_SOCKET
(
sockfd
);
NDB_CLOSE_SOCKET
(
sockfd
);
return
false
;
DBUG_PRINT
(
"error"
,
(
"No ok from server node %d"
,
remoteNodeId
));
DBUG_RETURN
(
false
);
}
}
// Send ok to server
// Send ok to server
s_output
.
println
(
"shm client 2 ok"
);
s_output
.
println
(
"shm client 2 ok"
);
DBUG_PRINT
(
"info"
,
(
"Successfully connected client to node %d"
,
remoteNodeId
));
}
}
NDB_CLOSE_SOCKET
(
sockfd
);
NDB_CLOSE_SOCKET
(
sockfd
);
return
r
;
DBUG_RETURN
(
r
)
;
}
}
bool
bool
SHM_Transporter
::
connect_common
(
NDB_SOCKET_TYPE
sockfd
)
SHM_Transporter
::
connect_common
(
NDB_SOCKET_TYPE
sockfd
)
{
{
if
(
!
checkConnected
())
if
(
!
checkConnected
())
{
DBUG_PRINT
(
"error"
,
(
"Already connected to node %d"
,
remoteNodeId
));
return
false
;
return
false
;
}
if
(
!
setupBuffersDone
)
{
if
(
!
setupBuffersDone
)
{
setupBuffers
();
setupBuffers
();
...
@@ -341,5 +355,7 @@ SHM_Transporter::connect_common(NDB_SOCKET_TYPE sockfd)
...
@@ -341,5 +355,7 @@ SHM_Transporter::connect_common(NDB_SOCKET_TYPE sockfd)
return
true
;
return
true
;
}
}
DBUG_PRINT
(
"error"
,
(
"Failed to set up buffers to node %d"
,
remoteNodeId
));
return
false
;
return
false
;
}
}
ndb/src/common/transporter/SHM_Transporter.hpp
View file @
efb0ae38
...
@@ -38,7 +38,6 @@ public:
...
@@ -38,7 +38,6 @@ public:
int
r_port
,
int
r_port
,
NodeId
lNodeId
,
NodeId
lNodeId
,
NodeId
rNodeId
,
NodeId
rNodeId
,
bool
compression
,
bool
checksum
,
bool
checksum
,
bool
signalId
,
bool
signalId
,
key_t
shmKey
,
key_t
shmKey
,
...
@@ -127,6 +126,7 @@ protected:
...
@@ -127,6 +126,7 @@ protected:
private:
private:
bool
_shmSegCreated
;
bool
_shmSegCreated
;
bool
_attached
;
bool
_attached
;
bool
m_connected
;
key_t
shmKey
;
key_t
shmKey
;
volatile
Uint32
*
serverStatusFlag
;
volatile
Uint32
*
serverStatusFlag
;
...
...
ndb/src/common/transporter/TCP_Transporter.cpp
View file @
efb0ae38
...
@@ -70,11 +70,10 @@ TCP_Transporter::TCP_Transporter(TransporterRegistry &t_reg,
...
@@ -70,11 +70,10 @@ TCP_Transporter::TCP_Transporter(TransporterRegistry &t_reg,
int
r_port
,
int
r_port
,
NodeId
lNodeId
,
NodeId
lNodeId
,
NodeId
rNodeId
,
NodeId
rNodeId
,
int
byte_order
,
bool
chksm
,
bool
signalId
,
bool
compr
,
bool
chksm
,
bool
signalId
,
Uint32
_reportFreq
)
:
Uint32
_reportFreq
)
:
Transporter
(
t_reg
,
lHostName
,
rHostName
,
r_port
,
lNodeId
,
rNodeId
,
Transporter
(
t_reg
,
lHostName
,
rHostName
,
r_port
,
lNodeId
,
rNodeId
,
byte_order
,
compr
,
chksm
,
signalId
),
0
,
false
,
chksm
,
signalId
),
m_sendBuffer
(
sendBufSize
)
m_sendBuffer
(
sendBufSize
)
{
{
maxReceiveSize
=
maxRecvSize
;
maxReceiveSize
=
maxRecvSize
;
...
@@ -106,12 +105,14 @@ TCP_Transporter::~TCP_Transporter() {
...
@@ -106,12 +105,14 @@ TCP_Transporter::~TCP_Transporter() {
bool
TCP_Transporter
::
connect_server_impl
(
NDB_SOCKET_TYPE
sockfd
)
bool
TCP_Transporter
::
connect_server_impl
(
NDB_SOCKET_TYPE
sockfd
)
{
{
return
connect_common
(
sockfd
);
DBUG_ENTER
(
"TCP_Transpporter::connect_server_impl"
);
DBUG_RETURN
(
connect_common
(
sockfd
));
}
}
bool
TCP_Transporter
::
connect_client_impl
(
NDB_SOCKET_TYPE
sockfd
)
bool
TCP_Transporter
::
connect_client_impl
(
NDB_SOCKET_TYPE
sockfd
)
{
{
return
connect_common
(
sockfd
);
DBUG_ENTER
(
"TCP_Transpporter::connect_client_impl"
);
DBUG_RETURN
(
connect_common
(
sockfd
));
}
}
bool
TCP_Transporter
::
connect_common
(
NDB_SOCKET_TYPE
sockfd
)
bool
TCP_Transporter
::
connect_common
(
NDB_SOCKET_TYPE
sockfd
)
...
@@ -119,6 +120,8 @@ bool TCP_Transporter::connect_common(NDB_SOCKET_TYPE sockfd)
...
@@ -119,6 +120,8 @@ bool TCP_Transporter::connect_common(NDB_SOCKET_TYPE sockfd)
theSocket
=
sockfd
;
theSocket
=
sockfd
;
setSocketOptions
();
setSocketOptions
();
setSocketNonBlocking
(
theSocket
);
setSocketNonBlocking
(
theSocket
);
DBUG_PRINT
(
"info"
,
(
"Successfully set-up TCP transporter to node %d"
,
remoteNodeId
));
return
true
;
return
true
;
}
}
...
...
ndb/src/common/transporter/TCP_Transporter.hpp
View file @
efb0ae38
...
@@ -52,8 +52,7 @@ private:
...
@@ -52,8 +52,7 @@ private:
int
r_port
,
int
r_port
,
NodeId
lHostId
,
NodeId
lHostId
,
NodeId
rHostId
,
NodeId
rHostId
,
int
byteorder
,
bool
checksum
,
bool
signalId
,
bool
compression
,
bool
checksum
,
bool
signalId
,
Uint32
reportFreq
=
4096
);
Uint32
reportFreq
=
4096
);
// Disconnect, delete send buffers and receive buffer
// Disconnect, delete send buffers and receive buffer
...
...
ndb/src/common/transporter/TransporterRegistry.cpp
View file @
efb0ae38
...
@@ -15,6 +15,7 @@
...
@@ -15,6 +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 <ndb_global.h>
#include <ndb_global.h>
#include <my_pthread.h>
#include <TransporterRegistry.hpp>
#include <TransporterRegistry.hpp>
#include "TransporterInternalDefinitions.hpp"
#include "TransporterInternalDefinitions.hpp"
...
@@ -48,9 +49,10 @@
...
@@ -48,9 +49,10 @@
SocketServer
::
Session
*
TransporterService
::
newSession
(
NDB_SOCKET_TYPE
sockfd
)
SocketServer
::
Session
*
TransporterService
::
newSession
(
NDB_SOCKET_TYPE
sockfd
)
{
{
DBUG_ENTER
(
"SocketServer::Session * TransporterService::newSession"
);
if
(
m_auth
&&
!
m_auth
->
server_authenticate
(
sockfd
)){
if
(
m_auth
&&
!
m_auth
->
server_authenticate
(
sockfd
)){
NDB_CLOSE_SOCKET
(
sockfd
);
NDB_CLOSE_SOCKET
(
sockfd
);
return
0
;
DBUG_RETURN
(
0
)
;
}
}
{
{
...
@@ -60,27 +62,32 @@ SocketServer::Session * TransporterService::newSession(NDB_SOCKET_TYPE sockfd)
...
@@ -60,27 +62,32 @@ SocketServer::Session * TransporterService::newSession(NDB_SOCKET_TYPE sockfd)
char
buf
[
256
];
char
buf
[
256
];
if
(
s_input
.
gets
(
buf
,
256
)
==
0
)
{
if
(
s_input
.
gets
(
buf
,
256
)
==
0
)
{
NDB_CLOSE_SOCKET
(
sockfd
);
NDB_CLOSE_SOCKET
(
sockfd
);
return
0
;
DBUG_PRINT
(
"error"
,
(
"Could not get node id from client"
));
DBUG_RETURN
(
0
);
}
}
if
(
sscanf
(
buf
,
"%d"
,
&
nodeId
)
!=
1
)
{
if
(
sscanf
(
buf
,
"%d"
,
&
nodeId
)
!=
1
)
{
NDB_CLOSE_SOCKET
(
sockfd
);
NDB_CLOSE_SOCKET
(
sockfd
);
return
0
;
DBUG_PRINT
(
"error"
,
(
"Error in node id from client"
));
DBUG_RETURN
(
0
);
}
}
//check that nodeid is valid and that there is an allocated transporter
//check that nodeid is valid and that there is an allocated transporter
if
(
nodeId
<
0
||
nodeId
>=
(
int
)
m_transporter_registry
->
maxTransporters
)
{
if
(
nodeId
<
0
||
nodeId
>=
(
int
)
m_transporter_registry
->
maxTransporters
)
{
NDB_CLOSE_SOCKET
(
sockfd
);
NDB_CLOSE_SOCKET
(
sockfd
);
return
0
;
DBUG_PRINT
(
"error"
,
(
"Node id out of range from client"
));
DBUG_RETURN
(
0
);
}
}
if
(
m_transporter_registry
->
theTransporters
[
nodeId
]
==
0
)
{
if
(
m_transporter_registry
->
theTransporters
[
nodeId
]
==
0
)
{
NDB_CLOSE_SOCKET
(
sockfd
);
NDB_CLOSE_SOCKET
(
sockfd
);
return
0
;
DBUG_PRINT
(
"error"
,
(
"No transporter for this node id from client"
));
DBUG_RETURN
(
0
);
}
}
//check that the transporter should be connected
//check that the transporter should be connected
if
(
m_transporter_registry
->
performStates
[
nodeId
]
!=
TransporterRegistry
::
CONNECTING
)
{
if
(
m_transporter_registry
->
performStates
[
nodeId
]
!=
TransporterRegistry
::
CONNECTING
)
{
NDB_CLOSE_SOCKET
(
sockfd
);
NDB_CLOSE_SOCKET
(
sockfd
);
return
0
;
DBUG_PRINT
(
"error"
,
(
"Transporter in wrong state for this node id from client"
));
DBUG_RETURN
(
0
);
}
}
Transporter
*
t
=
m_transporter_registry
->
theTransporters
[
nodeId
];
Transporter
*
t
=
m_transporter_registry
->
theTransporters
[
nodeId
];
...
@@ -93,13 +100,13 @@ SocketServer::Session * TransporterService::newSession(NDB_SOCKET_TYPE sockfd)
...
@@ -93,13 +100,13 @@ SocketServer::Session * TransporterService::newSession(NDB_SOCKET_TYPE sockfd)
t
->
connect_server
(
sockfd
);
t
->
connect_server
(
sockfd
);
}
}
return
0
;
DBUG_RETURN
(
0
)
;
}
}
TransporterRegistry
::
TransporterRegistry
(
void
*
callback
,
TransporterRegistry
::
TransporterRegistry
(
void
*
callback
,
unsigned
_maxTransporters
,
unsigned
_maxTransporters
,
unsigned
sizeOfLongSignalMemory
)
unsigned
sizeOfLongSignalMemory
)
{
{
nodeIdSpecified
=
false
;
nodeIdSpecified
=
false
;
maxTransporters
=
_maxTransporters
;
maxTransporters
=
_maxTransporters
;
sendCounter
=
1
;
sendCounter
=
1
;
...
@@ -149,6 +156,7 @@ TransporterRegistry::~TransporterRegistry() {
...
@@ -149,6 +156,7 @@ TransporterRegistry::~TransporterRegistry() {
delete
[]
theTransporters
;
delete
[]
theTransporters
;
delete
[]
performStates
;
delete
[]
performStates
;
delete
[]
ioStates
;
delete
[]
ioStates
;
#ifdef NDB_OSE_TRANSPORTER
#ifdef NDB_OSE_TRANSPORTER
if
(
theOSEReceiver
!=
NULL
){
if
(
theOSEReceiver
!=
NULL
){
theOSEReceiver
->
destroyPhantom
();
theOSEReceiver
->
destroyPhantom
();
...
@@ -207,8 +215,6 @@ TransporterRegistry::createTransporter(TCP_TransporterConfiguration *config) {
...
@@ -207,8 +215,6 @@ TransporterRegistry::createTransporter(TCP_TransporterConfiguration *config) {
config
->
port
,
config
->
port
,
localNodeId
,
localNodeId
,
config
->
remoteNodeId
,
config
->
remoteNodeId
,
config
->
byteOrder
,
config
->
compression
,
config
->
checksum
,
config
->
checksum
,
config
->
signalId
);
config
->
signalId
);
if
(
t
==
NULL
)
if
(
t
==
NULL
)
...
@@ -262,8 +268,6 @@ TransporterRegistry::createTransporter(OSE_TransporterConfiguration *conf) {
...
@@ -262,8 +268,6 @@ TransporterRegistry::createTransporter(OSE_TransporterConfiguration *conf) {
conf
->
localHostName
,
conf
->
localHostName
,
conf
->
remoteNodeId
,
conf
->
remoteNodeId
,
conf
->
remoteHostName
,
conf
->
remoteHostName
,
conf
->
byteOrder
,
conf
->
compression
,
conf
->
checksum
,
conf
->
checksum
,
conf
->
signalId
);
conf
->
signalId
);
if
(
t
==
NULL
)
if
(
t
==
NULL
)
...
@@ -304,15 +308,17 @@ TransporterRegistry::createTransporter(SCI_TransporterConfiguration *config) {
...
@@ -304,15 +308,17 @@ TransporterRegistry::createTransporter(SCI_TransporterConfiguration *config) {
if
(
theTransporters
[
config
->
remoteNodeId
]
!=
NULL
)
if
(
theTransporters
[
config
->
remoteNodeId
]
!=
NULL
)
return
false
;
return
false
;
SCI_Transporter
*
t
=
new
SCI_Transporter
(
config
->
sendLimit
,
SCI_Transporter
*
t
=
new
SCI_Transporter
(
*
this
,
config
->
localHostName
,
config
->
remoteHostName
,
config
->
port
,
config
->
sendLimit
,
config
->
bufferSize
,
config
->
bufferSize
,
config
->
nLocalAdapters
,
config
->
nLocalAdapters
,
config
->
remoteSciNodeId0
,
config
->
remoteSciNodeId0
,
config
->
remoteSciNodeId1
,
config
->
remoteSciNodeId1
,
localNodeId
,
localNodeId
,
config
->
remoteNodeId
,
config
->
remoteNodeId
,
config
->
byteOrder
,
config
->
compression
,
config
->
checksum
,
config
->
checksum
,
config
->
signalId
);
config
->
signalId
);
...
@@ -355,7 +361,6 @@ TransporterRegistry::createTransporter(SHM_TransporterConfiguration *config) {
...
@@ -355,7 +361,6 @@ TransporterRegistry::createTransporter(SHM_TransporterConfiguration *config) {
config
->
port
,
config
->
port
,
localNodeId
,
localNodeId
,
config
->
remoteNodeId
,
config
->
remoteNodeId
,
config
->
compression
,
config
->
checksum
,
config
->
checksum
,
config
->
signalId
,
config
->
signalId
,
config
->
shmKey
,
config
->
shmKey
,
...
@@ -853,8 +858,8 @@ TransporterRegistry::performReceive(){
...
@@ -853,8 +858,8 @@ TransporterRegistry::performReceive(){
if
(
t
->
isConnected
()
&&
t
->
checkConnected
()){
if
(
t
->
isConnected
()
&&
t
->
checkConnected
()){
Uint32
*
readPtr
,
*
eodPtr
;
Uint32
*
readPtr
,
*
eodPtr
;
t
->
getReceivePtr
(
&
readPtr
,
&
eodPtr
);
t
->
getReceivePtr
(
&
readPtr
,
&
eodPtr
);
read
Ptr
=
unpack
(
readPtr
,
eodPtr
,
nodeId
,
ioStates
[
nodeId
]);
Uint32
*
new
Ptr
=
unpack
(
readPtr
,
eodPtr
,
nodeId
,
ioStates
[
nodeId
]);
t
->
updateReceivePtr
(
read
Ptr
);
t
->
updateReceivePtr
(
new
Ptr
);
}
}
}
}
}
}
...
@@ -868,8 +873,8 @@ TransporterRegistry::performReceive(){
...
@@ -868,8 +873,8 @@ TransporterRegistry::performReceive(){
if
(
t
->
isConnected
()
&&
t
->
checkConnected
()){
if
(
t
->
isConnected
()
&&
t
->
checkConnected
()){
Uint32
*
readPtr
,
*
eodPtr
;
Uint32
*
readPtr
,
*
eodPtr
;
t
->
getReceivePtr
(
&
readPtr
,
&
eodPtr
);
t
->
getReceivePtr
(
&
readPtr
,
&
eodPtr
);
read
Ptr
=
unpack
(
readPtr
,
eodPtr
,
nodeId
,
ioStates
[
nodeId
]);
Uint32
*
new
Ptr
=
unpack
(
readPtr
,
eodPtr
,
nodeId
,
ioStates
[
nodeId
]);
t
->
updateReceivePtr
(
read
Ptr
);
t
->
updateReceivePtr
(
new
Ptr
);
}
}
}
}
}
}
...
@@ -1021,7 +1026,9 @@ TransporterRegistry::setIOState(NodeId nodeId, IOState state) {
...
@@ -1021,7 +1026,9 @@ TransporterRegistry::setIOState(NodeId nodeId, IOState state) {
static
void
*
static
void
*
run_start_clients_C
(
void
*
me
)
run_start_clients_C
(
void
*
me
)
{
{
my_thread_init
();
((
TransporterRegistry
*
)
me
)
->
start_clients_thread
();
((
TransporterRegistry
*
)
me
)
->
start_clients_thread
();
my_thread_end
();
NdbThread_Exit
(
0
);
NdbThread_Exit
(
0
);
return
me
;
return
me
;
}
}
...
@@ -1104,6 +1111,7 @@ TransporterRegistry::update_connections()
...
@@ -1104,6 +1111,7 @@ TransporterRegistry::update_connections()
void
void
TransporterRegistry
::
start_clients_thread
()
TransporterRegistry
::
start_clients_thread
()
{
{
DBUG_ENTER
(
"TransporterRegistry::start_clients_thread"
);
while
(
m_run_start_clients_thread
)
{
while
(
m_run_start_clients_thread
)
{
NdbSleep_MilliSleep
(
100
);
NdbSleep_MilliSleep
(
100
);
for
(
int
i
=
0
,
n
=
0
;
n
<
nTransporters
&&
m_run_start_clients_thread
;
i
++
){
for
(
int
i
=
0
,
n
=
0
;
n
<
nTransporters
&&
m_run_start_clients_thread
;
i
++
){
...
@@ -1127,6 +1135,7 @@ TransporterRegistry::start_clients_thread()
...
@@ -1127,6 +1135,7 @@ TransporterRegistry::start_clients_thread()
}
}
}
}
}
}
DBUG_VOID_RETURN
;
}
}
bool
bool
...
...
ndb/src/cw/cpcd/Makefile.am
View file @
efb0ae38
...
@@ -7,7 +7,7 @@ LDADD_LOC = \
...
@@ -7,7 +7,7 @@ LDADD_LOC = \
$(top_builddir)
/ndb/src/libndbclient.la
\
$(top_builddir)
/ndb/src/libndbclient.la
\
$(top_builddir)
/dbug/libdbug.a
\
$(top_builddir)
/dbug/libdbug.a
\
$(top_builddir)
/mysys/libmysys.a
\
$(top_builddir)
/mysys/libmysys.a
\
$(top_builddir)
/strings/libmystrings.a
$(top_builddir)
/strings/libmystrings.a
@NDB_SCI_LIBS@
include
$(top_srcdir)/ndb/config/common.mk.am
include
$(top_srcdir)/ndb/config/common.mk.am
include
$(top_srcdir)/ndb/config/type_util.mk.am
include
$(top_srcdir)/ndb/config/type_util.mk.am
...
...
ndb/src/kernel/Makefile.am
View file @
efb0ae38
...
@@ -55,7 +55,7 @@ LDADD += \
...
@@ -55,7 +55,7 @@ LDADD += \
$(top_builddir)
/ndb/src/common/util/libgeneral.la
\
$(top_builddir)
/ndb/src/common/util/libgeneral.la
\
$(top_builddir)
/dbug/libdbug.a
\
$(top_builddir)
/dbug/libdbug.a
\
$(top_builddir)
/mysys/libmysys.a
\
$(top_builddir)
/mysys/libmysys.a
\
$(top_builddir)
/strings/libmystrings.a
$(top_builddir)
/strings/libmystrings.a
@NDB_SCI_LIBS@
# Don't update the files from bitkeeper
# Don't update the files from bitkeeper
%
::
SCCS/s.%
%
::
SCCS/s.%
ndb/src/kernel/blocks/backup/restore/Makefile.am
View file @
efb0ae38
...
@@ -7,7 +7,7 @@ LDADD_LOC = \
...
@@ -7,7 +7,7 @@ LDADD_LOC = \
$(top_builddir)
/ndb/src/libndbclient.la
\
$(top_builddir)
/ndb/src/libndbclient.la
\
$(top_builddir)
/dbug/libdbug.a
\
$(top_builddir)
/dbug/libdbug.a
\
$(top_builddir)
/mysys/libmysys.a
\
$(top_builddir)
/mysys/libmysys.a
\
$(top_builddir)
/strings/libmystrings.a
$(top_builddir)
/strings/libmystrings.a
@NDB_SCI_LIBS@
include
$(top_srcdir)/ndb/config/common.mk.am
include
$(top_srcdir)/ndb/config/common.mk.am
...
...
ndb/src/kernel/vm/FastScheduler.hpp
View file @
efb0ae38
...
@@ -141,7 +141,7 @@ int
...
@@ -141,7 +141,7 @@ int
FastScheduler
::
checkDoJob
()
FastScheduler
::
checkDoJob
()
{
{
/*
/*
* Jo
o
b buffer overload protetction
* Job buffer overload protetction
* If the job buffer B is filled over a certain limit start
* If the job buffer B is filled over a certain limit start
* to execute the signals in the job buffer's
* to execute the signals in the job buffer's
*/
*/
...
...
ndb/src/mgmclient/Makefile.am
View file @
efb0ae38
...
@@ -16,7 +16,7 @@ LDADD_LOC = $(top_builddir)/ndb/src/libndbclient.la \
...
@@ -16,7 +16,7 @@ LDADD_LOC = $(top_builddir)/ndb/src/libndbclient.la \
$(top_builddir)
/dbug/libdbug.a
\
$(top_builddir)
/dbug/libdbug.a
\
$(top_builddir)
/mysys/libmysys.a
\
$(top_builddir)
/mysys/libmysys.a
\
$(top_builddir)
/strings/libmystrings.a
\
$(top_builddir)
/strings/libmystrings.a
\
@TERMCAP_LIB@
@TERMCAP_LIB@
@NDB_SCI_LIBS@
ndb_mgm_LDFLAGS
=
@ndb_bin_am_ldflags@
ndb_mgm_LDFLAGS
=
@ndb_bin_am_ldflags@
...
...
ndb/src/mgmsrv/ConfigInfo.cpp
View file @
efb0ae38
...
@@ -129,11 +129,14 @@ ConfigInfo::m_SectionRules[] = {
...
@@ -129,11 +129,14 @@ ConfigInfo::m_SectionRules[] = {
{
"TCP"
,
fixHostname
,
"HostName1"
},
{
"TCP"
,
fixHostname
,
"HostName1"
},
{
"TCP"
,
fixHostname
,
"HostName2"
},
{
"TCP"
,
fixHostname
,
"HostName2"
},
{
"SCI"
,
fixHostname
,
"HostName1"
},
{
"SCI"
,
fixHostname
,
"HostName2"
},
{
"OSE"
,
fixHostname
,
"HostName1"
},
{
"OSE"
,
fixHostname
,
"HostName1"
},
{
"OSE"
,
fixHostname
,
"HostName2"
},
{
"OSE"
,
fixHostname
,
"HostName2"
},
{
"TCP"
,
fixPortNumber
,
0
},
// has to come after fixHostName
{
"TCP"
,
fixPortNumber
,
0
},
// has to come after fixHostName
{
"SHM"
,
fixPortNumber
,
0
},
// has to come after fixHostName
{
"SHM"
,
fixPortNumber
,
0
},
// has to come after fixHostName
{
"SCI"
,
fixPortNumber
,
0
},
// has to come after fixHostName
//{ "SHM", fixShmKey, 0 },
//{ "SHM", fixShmKey, 0 },
/**
/**
...
@@ -163,6 +166,8 @@ ConfigInfo::m_SectionRules[] = {
...
@@ -163,6 +166,8 @@ ConfigInfo::m_SectionRules[] = {
{
"TCP"
,
checkTCPConstraints
,
"HostName1"
},
{
"TCP"
,
checkTCPConstraints
,
"HostName1"
},
{
"TCP"
,
checkTCPConstraints
,
"HostName2"
},
{
"TCP"
,
checkTCPConstraints
,
"HostName2"
},
{
"SCI"
,
checkTCPConstraints
,
"HostName1"
},
{
"SCI"
,
checkTCPConstraints
,
"HostName2"
},
{
"*"
,
checkMandatory
,
0
},
{
"*"
,
checkMandatory
,
0
},
...
@@ -1808,7 +1813,7 @@ const ConfigInfo::ParamInfo ConfigInfo::m_ParamInfo[] = {
...
@@ -1808,7 +1813,7 @@ const ConfigInfo::ParamInfo ConfigInfo::m_ParamInfo[] = {
"Id of node ("
DB_TOKEN_PRINT
", "
API_TOKEN_PRINT
" or "
MGM_TOKEN_PRINT
") on one side of the connection"
,
"Id of node ("
DB_TOKEN_PRINT
", "
API_TOKEN_PRINT
" or "
MGM_TOKEN_PRINT
") on one side of the connection"
,
ConfigInfo
::
USED
,
ConfigInfo
::
USED
,
false
,
false
,
ConfigInfo
::
INT
,
ConfigInfo
::
STRING
,
MANDATORY
,
MANDATORY
,
"0"
,
"0"
,
STR_VALUE
(
MAX_INT_RNIL
)
},
STR_VALUE
(
MAX_INT_RNIL
)
},
...
@@ -1820,28 +1825,74 @@ const ConfigInfo::ParamInfo ConfigInfo::m_ParamInfo[] = {
...
@@ -1820,28 +1825,74 @@ const ConfigInfo::ParamInfo ConfigInfo::m_ParamInfo[] = {
"Id of node ("
DB_TOKEN_PRINT
", "
API_TOKEN_PRINT
" or "
MGM_TOKEN_PRINT
") on one side of the connection"
,
"Id of node ("
DB_TOKEN_PRINT
", "
API_TOKEN_PRINT
" or "
MGM_TOKEN_PRINT
") on one side of the connection"
,
ConfigInfo
::
USED
,
ConfigInfo
::
USED
,
false
,
false
,
ConfigInfo
::
INT
,
ConfigInfo
::
STRING
,
MANDATORY
,
MANDATORY
,
"0"
,
"0"
,
STR_VALUE
(
MAX_INT_RNIL
)
},
STR_VALUE
(
MAX_INT_RNIL
)
},
{
{
CFG_SCI_ID_0
,
CFG_SCI_HOSTNAME_1
,
"SciId0"
,
"HostName1"
,
"SCI"
,
"Name/IP of computer on one side of the connection"
,
ConfigInfo
::
INTERNAL
,
false
,
ConfigInfo
::
STRING
,
UNDEFINED
,
0
,
0
},
{
CFG_SCI_HOSTNAME_2
,
"HostName2"
,
"SCI"
,
"Name/IP of computer on one side of the connection"
,
ConfigInfo
::
INTERNAL
,
false
,
ConfigInfo
::
STRING
,
UNDEFINED
,
0
,
0
},
{
CFG_CONNECTION_SERVER_PORT
,
"PortNumber"
,
"SCI"
,
"SCI"
,
"
Local SCI-node id for adapter 0 (a computer can have two adapters)
"
,
"
Port used for this transporter
"
,
ConfigInfo
::
USED
,
ConfigInfo
::
USED
,
false
,
false
,
ConfigInfo
::
INT
,
ConfigInfo
::
INT
,
MANDATORY
,
MANDATORY
,
"0"
,
STR_VALUE
(
MAX_INT_RNIL
)
},
{
CFG_SCI_HOST1_ID_0
,
"Host1SciId0"
,
"SCI"
,
"SCI-node id for adapter 0 on Host1 (a computer can have two adapters)"
,
ConfigInfo
::
USED
,
false
,
ConfigInfo
::
INT
,
MANDATORY
,
"0"
,
STR_VALUE
(
MAX_INT_RNIL
)
},
{
CFG_SCI_HOST1_ID_1
,
"Host1SciId1"
,
"SCI"
,
"SCI-node id for adapter 1 on Host1 (a computer can have two adapters)"
,
ConfigInfo
::
USED
,
false
,
ConfigInfo
::
INT
,
"0"
,
"0"
,
"0"
,
STR_VALUE
(
MAX_INT_RNIL
)
},
STR_VALUE
(
MAX_INT_RNIL
)
},
{
{
CFG_SCI_
ID_1
,
CFG_SCI_
HOST2_ID_0
,
"
SciId1
"
,
"
Host2SciId0
"
,
"SCI"
,
"SCI"
,
"
Local SCI-node id for adapter 1
(a computer can have two adapters)"
,
"
SCI-node id for adapter 0 on Host2
(a computer can have two adapters)"
,
ConfigInfo
::
USED
,
ConfigInfo
::
USED
,
false
,
false
,
ConfigInfo
::
INT
,
ConfigInfo
::
INT
,
...
@@ -1849,6 +1900,18 @@ const ConfigInfo::ParamInfo ConfigInfo::m_ParamInfo[] = {
...
@@ -1849,6 +1900,18 @@ const ConfigInfo::ParamInfo ConfigInfo::m_ParamInfo[] = {
"0"
,
"0"
,
STR_VALUE
(
MAX_INT_RNIL
)
},
STR_VALUE
(
MAX_INT_RNIL
)
},
{
CFG_SCI_HOST2_ID_1
,
"Host2SciId1"
,
"SCI"
,
"SCI-node id for adapter 1 on Host2 (a computer can have two adapters)"
,
ConfigInfo
::
USED
,
false
,
ConfigInfo
::
INT
,
"0"
,
"0"
,
STR_VALUE
(
MAX_INT_RNIL
)
},
{
{
CFG_CONNECTION_SEND_SIGNAL_ID
,
CFG_CONNECTION_SEND_SIGNAL_ID
,
"SendSignalId"
,
"SendSignalId"
,
...
@@ -1881,9 +1944,9 @@ const ConfigInfo::ParamInfo ConfigInfo::m_ParamInfo[] = {
...
@@ -1881,9 +1944,9 @@ const ConfigInfo::ParamInfo ConfigInfo::m_ParamInfo[] = {
ConfigInfo
::
USED
,
ConfigInfo
::
USED
,
false
,
false
,
ConfigInfo
::
INT
,
ConfigInfo
::
INT
,
"
2
K"
,
"
8
K"
,
"
512
"
,
"
128
"
,
STR_VALUE
(
MAX_INT_RNIL
)
},
"32K"
},
{
{
CFG_SCI_BUFFER_MEM
,
CFG_SCI_BUFFER_MEM
,
...
@@ -1894,7 +1957,7 @@ const ConfigInfo::ParamInfo ConfigInfo::m_ParamInfo[] = {
...
@@ -1894,7 +1957,7 @@ const ConfigInfo::ParamInfo ConfigInfo::m_ParamInfo[] = {
false
,
false
,
ConfigInfo
::
INT
,
ConfigInfo
::
INT
,
"1M"
,
"1M"
,
"
256
K"
,
"
64
K"
,
STR_VALUE
(
MAX_INT_RNIL
)
},
STR_VALUE
(
MAX_INT_RNIL
)
},
{
{
...
...
ndb/src/mgmsrv/Makefile.am
View file @
efb0ae38
...
@@ -27,7 +27,7 @@ LDADD_LOC = $(top_builddir)/ndb/src/libndbclient.la \
...
@@ -27,7 +27,7 @@ LDADD_LOC = $(top_builddir)/ndb/src/libndbclient.la \
$(top_builddir)
/ndb/src/common/editline/libeditline.a
\
$(top_builddir)
/ndb/src/common/editline/libeditline.a
\
$(top_builddir)
/dbug/libdbug.a
\
$(top_builddir)
/dbug/libdbug.a
\
$(top_builddir)
/mysys/libmysys.a
\
$(top_builddir)
/mysys/libmysys.a
\
$(top_builddir)
/strings/libmystrings.a
$(top_builddir)
/strings/libmystrings.a
@NDB_SCI_LIBS@
@TERMCAP_LIB@
@TERMCAP_LIB@
DEFS_LOC
=
-DDEFAULT_MYSQL_HOME
=
"
\"
$(MYSQLBASEdir)
\"
"
\
DEFS_LOC
=
-DDEFAULT_MYSQL_HOME
=
"
\"
$(MYSQLBASEdir)
\"
"
\
...
...
ndb/test/run-test/Makefile.am
View file @
efb0ae38
...
@@ -16,7 +16,7 @@ LDADD_LOC = $(top_builddir)/ndb/src/mgmclient/CpcClient.o \
...
@@ -16,7 +16,7 @@ LDADD_LOC = $(top_builddir)/ndb/src/mgmclient/CpcClient.o \
$(top_builddir)
/ndb/src/libndbclient.la
\
$(top_builddir)
/ndb/src/libndbclient.la
\
$(top_builddir)
/dbug/libdbug.a
\
$(top_builddir)
/dbug/libdbug.a
\
$(top_builddir)
/mysys/libmysys.a
\
$(top_builddir)
/mysys/libmysys.a
\
$(top_builddir)
/strings/libmystrings.a
$(top_builddir)
/strings/libmystrings.a
@NDB_SCI_LIBS@
wrappersdir
=
$(prefix)
/bin
wrappersdir
=
$(prefix)
/bin
wrappers_SCRIPTS
=
atrt-testBackup atrt-mysql-test-run
wrappers_SCRIPTS
=
atrt-testBackup atrt-mysql-test-run
...
...
sql/Makefile.am
View file @
efb0ae38
...
@@ -37,7 +37,7 @@ LDADD = @isam_libs@ \
...
@@ -37,7 +37,7 @@ LDADD = @isam_libs@ \
$(top_builddir)
/mysys/libmysys.a
\
$(top_builddir)
/mysys/libmysys.a
\
$(top_builddir)
/dbug/libdbug.a
\
$(top_builddir)
/dbug/libdbug.a
\
$(top_builddir)
/regex/libregex.a
\
$(top_builddir)
/regex/libregex.a
\
$(top_builddir)
/strings/libmystrings.a @ZLIB_LIBS@
$(top_builddir)
/strings/libmystrings.a @ZLIB_LIBS@
@NDB_SCI_LIBS@
mysqld_LDADD
=
@MYSQLD_EXTRA_LDFLAGS@
\
mysqld_LDADD
=
@MYSQLD_EXTRA_LDFLAGS@
\
@bdb_libs@ @innodb_libs@ @pstack_libs@
\
@bdb_libs@ @innodb_libs@ @pstack_libs@
\
...
...
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