mirror of
https://github.com/MariaDB/server.git
synced 2025-02-01 11:31:51 +01:00
Merge perch.ndb.mysql.com:/home/jonas/src/51-new
into perch.ndb.mysql.com:/home/jonas/src/51-ndb
This commit is contained in:
commit
5c20cae88a
27 changed files with 607 additions and 409 deletions
|
@ -324,21 +324,11 @@ AC_DEFUN([MYSQL_SETUP_NDBCLUSTER], [
|
|||
storage/ndb/src/kernel/Makefile dnl
|
||||
storage/ndb/src/kernel/error/Makefile dnl
|
||||
storage/ndb/src/kernel/blocks/Makefile dnl
|
||||
storage/ndb/src/kernel/blocks/cmvmi/Makefile dnl
|
||||
storage/ndb/src/kernel/blocks/dbacc/Makefile dnl
|
||||
storage/ndb/src/kernel/blocks/dbdict/Makefile dnl
|
||||
storage/ndb/src/kernel/blocks/dbdih/Makefile dnl
|
||||
storage/ndb/src/kernel/blocks/dblqh/Makefile dnl
|
||||
storage/ndb/src/kernel/blocks/dbtc/Makefile dnl
|
||||
storage/ndb/src/kernel/blocks/dbtup/Makefile dnl
|
||||
storage/ndb/src/kernel/blocks/ndbfs/Makefile dnl
|
||||
storage/ndb/src/kernel/blocks/ndbcntr/Makefile dnl
|
||||
storage/ndb/src/kernel/blocks/qmgr/Makefile dnl
|
||||
storage/ndb/src/kernel/blocks/trix/Makefile dnl
|
||||
storage/ndb/src/kernel/blocks/backup/Makefile dnl
|
||||
storage/ndb/src/kernel/blocks/dbutil/Makefile dnl
|
||||
storage/ndb/src/kernel/blocks/suma/Makefile dnl
|
||||
storage/ndb/src/kernel/blocks/dbtux/Makefile dnl
|
||||
storage/ndb/src/kernel/vm/Makefile dnl
|
||||
storage/ndb/src/mgmapi/Makefile dnl
|
||||
storage/ndb/src/ndbapi/Makefile dnl
|
||||
|
|
|
@ -27,21 +27,6 @@ INCLUDES += \
|
|||
-Iblocks
|
||||
|
||||
LDADD += \
|
||||
blocks/cmvmi/libcmvmi.a \
|
||||
blocks/dbacc/libdbacc.a \
|
||||
blocks/dbdict/libdbdict.a \
|
||||
blocks/dbdih/libdbdih.a \
|
||||
blocks/dblqh/libdblqh.a \
|
||||
blocks/dbtc/libdbtc.a \
|
||||
blocks/dbtup/libdbtup.a \
|
||||
blocks/ndbfs/libndbfs.a \
|
||||
blocks/ndbcntr/libndbcntr.a \
|
||||
blocks/qmgr/libqmgr.a \
|
||||
blocks/trix/libtrix.a \
|
||||
blocks/backup/libbackup.a \
|
||||
blocks/dbutil/libdbutil.a \
|
||||
blocks/suma/libsuma.a \
|
||||
blocks/dbtux/libdbtux.a \
|
||||
blocks/libblocks.a \
|
||||
vm/libkernel.a \
|
||||
error/liberror.a \
|
||||
|
|
|
@ -1,24 +1,42 @@
|
|||
SUBDIRS = \
|
||||
cmvmi \
|
||||
dbacc \
|
||||
dbdict \
|
||||
dbdih \
|
||||
dblqh \
|
||||
dbtc \
|
||||
dbtup \
|
||||
ndbfs \
|
||||
ndbcntr \
|
||||
qmgr \
|
||||
trix \
|
||||
backup \
|
||||
dbutil \
|
||||
suma \
|
||||
dbtux
|
||||
backup
|
||||
|
||||
noinst_LIBRARIES = libblocks.a
|
||||
|
||||
INCLUDES_LOC = -I$(top_srcdir)/storage/ndb/src/kernel/blocks/dblqh
|
||||
libblocks_a_SOURCES = tsman.cpp lgman.cpp pgman.cpp diskpage.cpp restore.cpp
|
||||
libblocks_a_SOURCES = tsman.cpp lgman.cpp pgman.cpp diskpage.cpp restore.cpp\
|
||||
cmvmi/Cmvmi.cpp \
|
||||
dbacc/DbaccInit.cpp dbacc/DbaccMain.cpp \
|
||||
dbdict/Dbdict.cpp \
|
||||
dbdih/DbdihInit.cpp dbdih/DbdihMain.cpp \
|
||||
dblqh/DblqhInit.cpp dblqh/DblqhMain.cpp \
|
||||
dbtc/DbtcInit.cpp dbtc/DbtcMain.cpp \
|
||||
dbtup/DbtupExecQuery.cpp dbtup/DbtupBuffer.cpp \
|
||||
dbtup/DbtupRoutines.cpp dbtup/DbtupCommit.cpp \
|
||||
dbtup/DbtupFixAlloc.cpp dbtup/DbtupTrigger.cpp \
|
||||
dbtup/DbtupAbort.cpp dbtup/DbtupPageMap.cpp \
|
||||
dbtup/DbtupPagMan.cpp dbtup/DbtupStoredProcDef.cpp \
|
||||
dbtup/DbtupMeta.cpp dbtup/DbtupTabDesMan.cpp \
|
||||
dbtup/DbtupGen.cpp dbtup/DbtupIndex.cpp \
|
||||
dbtup/DbtupDebug.cpp dbtup/DbtupScan.cpp \
|
||||
dbtup/DbtupDiskAlloc.cpp dbtup/DbtupVarAlloc.cpp \
|
||||
dbtup/tuppage.cpp dbtup/Undo_buffer.cpp \
|
||||
ndbfs/AsyncFile.cpp ndbfs/Ndbfs.cpp ndbfs/VoidFs.cpp \
|
||||
ndbfs/Filename.cpp ndbfs/CircularIndex.cpp \
|
||||
ndbcntr/NdbcntrInit.cpp ndbcntr/NdbcntrSysTable.cpp ndbcntr/NdbcntrMain.cpp \
|
||||
qmgr/QmgrInit.cpp qmgr/QmgrMain.cpp \
|
||||
trix/Trix.cpp \
|
||||
backup/Backup.cpp backup/BackupInit.cpp \
|
||||
dbutil/DbUtil.cpp \
|
||||
suma/Suma.cpp suma/SumaInit.cpp \
|
||||
dbtux/DbtuxGen.cpp dbtux/DbtuxMeta.cpp dbtux/DbtuxMaint.cpp \
|
||||
dbtux/DbtuxNode.cpp dbtux/DbtuxTree.cpp dbtux/DbtuxScan.cpp \
|
||||
dbtux/DbtuxSearch.cpp dbtux/DbtuxCmp.cpp dbtux/DbtuxStat.cpp \
|
||||
dbtux/DbtuxDebug.cpp
|
||||
|
||||
ndbtools_PROGRAMS = ndb_print_file
|
||||
ndb_print_file_SOURCES = print_file.cpp diskpage.cpp dbtup/tuppage.cpp
|
||||
|
|
|
@ -1,8 +1,4 @@
|
|||
|
||||
noinst_LIBRARIES = libbackup.a
|
||||
|
||||
libbackup_a_SOURCES = Backup.cpp BackupInit.cpp
|
||||
|
||||
ndbtools_PROGRAMS = ndb_print_backup_file
|
||||
ndb_print_backup_file_SOURCES = read.cpp
|
||||
ndb_print_backup_file_LDFLAGS = @ndb_bin_am_ldflags@ \
|
||||
|
@ -17,16 +13,3 @@ include $(top_srcdir)/storage/ndb/config/type_kernel.mk.am
|
|||
# Don't update the files from bitkeeper
|
||||
%::SCCS/s.%
|
||||
|
||||
windoze-dsp: libbackup.dsp
|
||||
|
||||
libbackup.dsp: Makefile \
|
||||
$(top_srcdir)/storage/ndb/config/win-lib.am \
|
||||
$(top_srcdir)/storage/ndb/config/win-name \
|
||||
$(top_srcdir)/storage/ndb/config/win-includes \
|
||||
$(top_srcdir)/storage/ndb/config/win-sources \
|
||||
$(top_srcdir)/storage/ndb/config/win-libraries
|
||||
cat $(top_srcdir)/storage/ndb/config/win-lib.am > $@
|
||||
@$(top_srcdir)/storage/ndb/config/win-name $@ $(noinst_LIBRARIES)
|
||||
@$(top_srcdir)/storage/ndb/config/win-includes $@ $(INCLUDES)
|
||||
@$(top_srcdir)/storage/ndb/config/win-sources $@ $(libbackup_a_SOURCES)
|
||||
@$(top_srcdir)/storage/ndb/config/win-libraries $@ LIB $(LDADD)
|
||||
|
|
|
@ -1,24 +0,0 @@
|
|||
|
||||
noinst_LIBRARIES = libcmvmi.a
|
||||
|
||||
libcmvmi_a_SOURCES = Cmvmi.cpp
|
||||
|
||||
include $(top_srcdir)/storage/ndb/config/common.mk.am
|
||||
include $(top_srcdir)/storage/ndb/config/type_kernel.mk.am
|
||||
|
||||
# Don't update the files from bitkeeper
|
||||
%::SCCS/s.%
|
||||
|
||||
windoze-dsp: libcmvmi.dsp
|
||||
|
||||
libcmvmi.dsp: Makefile \
|
||||
$(top_srcdir)/storage/ndb/config/win-lib.am \
|
||||
$(top_srcdir)/storage/ndb/config/win-name \
|
||||
$(top_srcdir)/storage/ndb/config/win-includes \
|
||||
$(top_srcdir)/storage/ndb/config/win-sources \
|
||||
$(top_srcdir)/storage/ndb/config/win-libraries
|
||||
cat $(top_srcdir)/storage/ndb/config/win-lib.am > $@
|
||||
@$(top_srcdir)/storage/ndb/config/win-name $@ $(noinst_LIBRARIES)
|
||||
@$(top_srcdir)/storage/ndb/config/win-includes $@ $(INCLUDES)
|
||||
@$(top_srcdir)/storage/ndb/config/win-sources $@ $(libcmvmi_a_SOURCES)
|
||||
@$(top_srcdir)/storage/ndb/config/win-libraries $@ LIB $(LDADD)
|
|
@ -1,26 +0,0 @@
|
|||
|
||||
noinst_LIBRARIES = libdbacc.a
|
||||
|
||||
libdbacc_a_SOURCES = DbaccInit.cpp DbaccMain.cpp
|
||||
|
||||
INCLUDES_LOC = -I$(top_srcdir)/storage/ndb/src/kernel/blocks/dbtup
|
||||
|
||||
include $(top_srcdir)/storage/ndb/config/common.mk.am
|
||||
include $(top_srcdir)/storage/ndb/config/type_kernel.mk.am
|
||||
|
||||
# Don't update the files from bitkeeper
|
||||
%::SCCS/s.%
|
||||
|
||||
windoze-dsp: libdbacc.dsp
|
||||
|
||||
libdbacc.dsp: Makefile \
|
||||
$(top_srcdir)/storage/ndb/config/win-lib.am \
|
||||
$(top_srcdir)/storage/ndb/config/win-name \
|
||||
$(top_srcdir)/storage/ndb/config/win-includes \
|
||||
$(top_srcdir)/storage/ndb/config/win-sources \
|
||||
$(top_srcdir)/storage/ndb/config/win-libraries
|
||||
cat $(top_srcdir)/storage/ndb/config/win-lib.am > $@
|
||||
@$(top_srcdir)/storage/ndb/config/win-name $@ $(noinst_LIBRARIES)
|
||||
@$(top_srcdir)/storage/ndb/config/win-includes $@ $(INCLUDES)
|
||||
@$(top_srcdir)/storage/ndb/config/win-sources $@ $(libdbacc_a_SOURCES)
|
||||
@$(top_srcdir)/storage/ndb/config/win-libraries $@ LIB $(LDADD)
|
|
@ -1,6 +1,3 @@
|
|||
noinst_LIBRARIES = libdbdict.a
|
||||
|
||||
libdbdict_a_SOURCES = Dbdict.cpp
|
||||
|
||||
include $(top_srcdir)/storage/ndb/config/common.mk.am
|
||||
include $(top_srcdir)/storage/ndb/config/type_kernel.mk.am
|
||||
|
@ -23,16 +20,3 @@ ndb_print_schema_file_LDFLAGS = @ndb_bin_am_ldflags@ \
|
|||
# Don't update the files from bitkeeper
|
||||
%::SCCS/s.%
|
||||
|
||||
windoze-dsp: libdbdict.dsp
|
||||
|
||||
libdbdict.dsp: Makefile \
|
||||
$(top_srcdir)/storage/ndb/config/win-lib.am \
|
||||
$(top_srcdir)/storage/ndb/config/win-name \
|
||||
$(top_srcdir)/storage/ndb/config/win-includes \
|
||||
$(top_srcdir)/storage/ndb/config/win-sources \
|
||||
$(top_srcdir)/storage/ndb/config/win-libraries
|
||||
cat $(top_srcdir)/storage/ndb/config/win-lib.am > $@
|
||||
@$(top_srcdir)/storage/ndb/config/win-name $@ $(noinst_LIBRARIES)
|
||||
@$(top_srcdir)/storage/ndb/config/win-includes $@ $(INCLUDES)
|
||||
@$(top_srcdir)/storage/ndb/config/win-sources $@ $(libdbdict_a_SOURCES)
|
||||
@$(top_srcdir)/storage/ndb/config/win-libraries $@ LIB $(LDADD)
|
||||
|
|
|
@ -1,8 +1,4 @@
|
|||
|
||||
noinst_LIBRARIES = libdbdih.a
|
||||
|
||||
libdbdih_a_SOURCES = DbdihInit.cpp DbdihMain.cpp
|
||||
|
||||
ndbtools_PROGRAMS = ndb_print_sys_file
|
||||
ndb_print_sys_file_SOURCES = printSysfile.cpp
|
||||
ndb_print_sys_file_LDFLAGS = @ndb_bin_am_ldflags@ \
|
||||
|
@ -15,19 +11,3 @@ ndb_print_sys_file_LDFLAGS = @ndb_bin_am_ldflags@ \
|
|||
include $(top_srcdir)/storage/ndb/config/common.mk.am
|
||||
include $(top_srcdir)/storage/ndb/config/type_kernel.mk.am
|
||||
|
||||
# Don't update the files from bitkeeper
|
||||
%::SCCS/s.%
|
||||
|
||||
windoze-dsp: libdbdih.dsp
|
||||
|
||||
libdbdih.dsp: Makefile \
|
||||
$(top_srcdir)/storage/ndb/config/win-lib.am \
|
||||
$(top_srcdir)/storage/ndb/config/win-name \
|
||||
$(top_srcdir)/storage/ndb/config/win-includes \
|
||||
$(top_srcdir)/storage/ndb/config/win-sources \
|
||||
$(top_srcdir)/storage/ndb/config/win-libraries
|
||||
cat $(top_srcdir)/storage/ndb/config/win-lib.am > $@
|
||||
@$(top_srcdir)/storage/ndb/config/win-name $@ $(noinst_LIBRARIES)
|
||||
@$(top_srcdir)/storage/ndb/config/win-includes $@ $(INCLUDES)
|
||||
@$(top_srcdir)/storage/ndb/config/win-sources $@ $(libdbdih_a_SOURCES)
|
||||
@$(top_srcdir)/storage/ndb/config/win-libraries $@ LIB $(LDADD)
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
noinst_LIBRARIES = libdblqh.a
|
||||
EXTRA_PROGRAMS = ndbd_redo_log_reader
|
||||
|
||||
libdblqh_a_SOURCES = DblqhInit.cpp DblqhMain.cpp
|
||||
ndbd_redo_log_reader_SOURCES = redoLogReader/records.cpp redoLogReader/redoLogFileReader.cpp
|
||||
ndbd_redo_log_reader_SOURCES = redoLogReader/records.cpp \
|
||||
redoLogReader/redoLogFileReader.cpp
|
||||
|
||||
include $(top_srcdir)/storage/ndb/config/common.mk.am
|
||||
include $(top_srcdir)/storage/ndb/config/type_kernel.mk.am
|
||||
|
@ -13,17 +12,3 @@ LDADD += \
|
|||
|
||||
# Don't update the files from bitkeeper
|
||||
%::SCCS/s.%
|
||||
|
||||
windoze-dsp: libdblqh.dsp
|
||||
|
||||
libdblqh.dsp: Makefile \
|
||||
$(top_srcdir)/storage/ndb/config/win-lib.am \
|
||||
$(top_srcdir)/storage/ndb/config/win-name \
|
||||
$(top_srcdir)/storage/ndb/config/win-includes \
|
||||
$(top_srcdir)/storage/ndb/config/win-sources \
|
||||
$(top_srcdir)/storage/ndb/config/win-libraries
|
||||
cat $(top_srcdir)/storage/ndb/config/win-lib.am > $@
|
||||
@$(top_srcdir)/storage/ndb/config/win-name $@ $(noinst_LIBRARIES)
|
||||
@$(top_srcdir)/storage/ndb/config/win-includes $@ $(INCLUDES)
|
||||
@$(top_srcdir)/storage/ndb/config/win-sources $@ $(libdblqh_a_SOURCES)
|
||||
@$(top_srcdir)/storage/ndb/config/win-libraries $@ LIB $(LDADD)
|
||||
|
|
|
@ -1,23 +0,0 @@
|
|||
noinst_LIBRARIES = libdbtc.a
|
||||
|
||||
libdbtc_a_SOURCES = DbtcInit.cpp DbtcMain.cpp
|
||||
|
||||
include $(top_srcdir)/storage/ndb/config/common.mk.am
|
||||
include $(top_srcdir)/storage/ndb/config/type_kernel.mk.am
|
||||
|
||||
# Don't update the files from bitkeeper
|
||||
%::SCCS/s.%
|
||||
|
||||
windoze-dsp: libdbtc.dsp
|
||||
|
||||
libdbtc.dsp: Makefile \
|
||||
$(top_srcdir)/storage/ndb/config/win-lib.am \
|
||||
$(top_srcdir)/storage/ndb/config/win-name \
|
||||
$(top_srcdir)/storage/ndb/config/win-includes \
|
||||
$(top_srcdir)/storage/ndb/config/win-sources \
|
||||
$(top_srcdir)/storage/ndb/config/win-libraries
|
||||
cat $(top_srcdir)/storage/ndb/config/win-lib.am > $@
|
||||
@$(top_srcdir)/storage/ndb/config/win-name $@ $(noinst_LIBRARIES)
|
||||
@$(top_srcdir)/storage/ndb/config/win-includes $@ $(INCLUDES)
|
||||
@$(top_srcdir)/storage/ndb/config/win-sources $@ $(libdbtc_a_SOURCES)
|
||||
@$(top_srcdir)/storage/ndb/config/win-libraries $@ LIB $(LDADD)
|
|
@ -1,26 +1,3 @@
|
|||
noinst_LIBRARIES = libdbtup.a
|
||||
|
||||
libdbtup_a_SOURCES = \
|
||||
DbtupExecQuery.cpp \
|
||||
DbtupBuffer.cpp \
|
||||
DbtupRoutines.cpp \
|
||||
DbtupCommit.cpp \
|
||||
DbtupFixAlloc.cpp \
|
||||
DbtupTrigger.cpp \
|
||||
DbtupAbort.cpp \
|
||||
DbtupPageMap.cpp \
|
||||
DbtupPagMan.cpp \
|
||||
DbtupStoredProcDef.cpp \
|
||||
DbtupMeta.cpp \
|
||||
DbtupTabDesMan.cpp \
|
||||
DbtupGen.cpp \
|
||||
DbtupIndex.cpp \
|
||||
DbtupDebug.cpp \
|
||||
DbtupScan.cpp \
|
||||
DbtupDiskAlloc.cpp DbtupVarAlloc.cpp \
|
||||
tuppage.cpp Undo_buffer.cpp
|
||||
|
||||
INCLUDES_LOC = -I$(top_srcdir)/storage/ndb/src/kernel/blocks/dblqh
|
||||
|
||||
include $(top_srcdir)/storage/ndb/config/common.mk.am
|
||||
include $(top_srcdir)/storage/ndb/config/type_kernel.mk.am
|
||||
|
@ -28,20 +5,6 @@ include $(top_srcdir)/storage/ndb/config/type_kernel.mk.am
|
|||
# Don't update the files from bitkeeper
|
||||
%::SCCS/s.%
|
||||
|
||||
windoze-dsp: libdbtup.dsp
|
||||
|
||||
libdbtup.dsp: Makefile \
|
||||
$(top_srcdir)/storage/ndb/config/win-lib.am \
|
||||
$(top_srcdir)/storage/ndb/config/win-name \
|
||||
$(top_srcdir)/storage/ndb/config/win-includes \
|
||||
$(top_srcdir)/storage/ndb/config/win-sources \
|
||||
$(top_srcdir)/storage/ndb/config/win-libraries
|
||||
cat $(top_srcdir)/storage/ndb/config/win-lib.am > $@
|
||||
@$(top_srcdir)/storage/ndb/config/win-name $@ $(noinst_LIBRARIES)
|
||||
@$(top_srcdir)/storage/ndb/config/win-includes $@ $(INCLUDES)
|
||||
@$(top_srcdir)/storage/ndb/config/win-sources $@ $(libdbtup_a_SOURCES)
|
||||
@$(top_srcdir)/storage/ndb/config/win-libraries $@ LIB $(LDADD)
|
||||
|
||||
ndbtest_PROGRAMS = test_varpage
|
||||
test_varpage_SOURCES = test_varpage.cpp tuppage.cpp
|
||||
test_varpage_LDFLAGS = @ndb_bin_am_ldflags@ \
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
#include <md5_hash.hpp>
|
||||
|
||||
// big brother
|
||||
#include <Dbtup.hpp>
|
||||
#include <dbtup/Dbtup.hpp>
|
||||
|
||||
// signal classes
|
||||
#include <signaldata/DictTabInfo.hpp>
|
||||
|
|
|
@ -1,36 +0,0 @@
|
|||
noinst_LIBRARIES = libdbtux.a
|
||||
|
||||
libdbtux_a_SOURCES = \
|
||||
DbtuxGen.cpp \
|
||||
DbtuxMeta.cpp \
|
||||
DbtuxMaint.cpp \
|
||||
DbtuxNode.cpp \
|
||||
DbtuxTree.cpp \
|
||||
DbtuxScan.cpp \
|
||||
DbtuxSearch.cpp \
|
||||
DbtuxCmp.cpp \
|
||||
DbtuxStat.cpp \
|
||||
DbtuxDebug.cpp
|
||||
|
||||
INCLUDES_LOC = -I$(top_srcdir)/storage/ndb/src/kernel/blocks/dbtup \
|
||||
-I$(top_srcdir)/storage/ndb/src/kernel/blocks/dblqh
|
||||
|
||||
include $(top_srcdir)/storage/ndb/config/common.mk.am
|
||||
include $(top_srcdir)/storage/ndb/config/type_kernel.mk.am
|
||||
|
||||
# Don't update the files from bitkeeper
|
||||
%::SCCS/s.%
|
||||
|
||||
windoze-dsp: libdbtux.dsp
|
||||
|
||||
libdbtux.dsp: Makefile \
|
||||
$(top_srcdir)/storage/ndb/config/win-lib.am \
|
||||
$(top_srcdir)/storage/ndb/config/win-name \
|
||||
$(top_srcdir)/storage/ndb/config/win-includes \
|
||||
$(top_srcdir)/storage/ndb/config/win-sources \
|
||||
$(top_srcdir)/storage/ndb/config/win-libraries
|
||||
cat $(top_srcdir)/storage/ndb/config/win-lib.am > $@
|
||||
@$(top_srcdir)/storage/ndb/config/win-name $@ $(noinst_LIBRARIES)
|
||||
@$(top_srcdir)/storage/ndb/config/win-includes $@ $(INCLUDES)
|
||||
@$(top_srcdir)/storage/ndb/config/win-sources $@ $(libdbtux_a_SOURCES)
|
||||
@$(top_srcdir)/storage/ndb/config/win-libraries $@ LIB $(LDADD)
|
|
@ -1,23 +0,0 @@
|
|||
noinst_LIBRARIES = libdbutil.a
|
||||
|
||||
libdbutil_a_SOURCES = DbUtil.cpp
|
||||
|
||||
include $(top_srcdir)/storage/ndb/config/common.mk.am
|
||||
include $(top_srcdir)/storage/ndb/config/type_kernel.mk.am
|
||||
|
||||
# Don't update the files from bitkeeper
|
||||
%::SCCS/s.%
|
||||
|
||||
windoze-dsp: libdbutil.dsp
|
||||
|
||||
libdbutil.dsp: Makefile \
|
||||
$(top_srcdir)/storage/ndb/config/win-lib.am \
|
||||
$(top_srcdir)/storage/ndb/config/win-name \
|
||||
$(top_srcdir)/storage/ndb/config/win-includes \
|
||||
$(top_srcdir)/storage/ndb/config/win-sources \
|
||||
$(top_srcdir)/storage/ndb/config/win-libraries
|
||||
cat $(top_srcdir)/storage/ndb/config/win-lib.am > $@
|
||||
@$(top_srcdir)/storage/ndb/config/win-name $@ $(noinst_LIBRARIES)
|
||||
@$(top_srcdir)/storage/ndb/config/win-includes $@ $(INCLUDES)
|
||||
@$(top_srcdir)/storage/ndb/config/win-sources $@ $(libdbutil_a_SOURCES)
|
||||
@$(top_srcdir)/storage/ndb/config/win-libraries $@ LIB $(LDADD)
|
|
@ -1,26 +0,0 @@
|
|||
noinst_LIBRARIES = libndbcntr.a
|
||||
|
||||
libndbcntr_a_SOURCES = \
|
||||
NdbcntrInit.cpp \
|
||||
NdbcntrSysTable.cpp \
|
||||
NdbcntrMain.cpp
|
||||
|
||||
include $(top_srcdir)/storage/ndb/config/common.mk.am
|
||||
include $(top_srcdir)/storage/ndb/config/type_kernel.mk.am
|
||||
|
||||
# Don't update the files from bitkeeper
|
||||
%::SCCS/s.%
|
||||
|
||||
windoze-dsp: libndbcntr.dsp
|
||||
|
||||
libndbcntr.dsp: Makefile \
|
||||
$(top_srcdir)/storage/ndb/config/win-lib.am \
|
||||
$(top_srcdir)/storage/ndb/config/win-name \
|
||||
$(top_srcdir)/storage/ndb/config/win-includes \
|
||||
$(top_srcdir)/storage/ndb/config/win-sources \
|
||||
$(top_srcdir)/storage/ndb/config/win-libraries
|
||||
cat $(top_srcdir)/storage/ndb/config/win-lib.am > $@
|
||||
@$(top_srcdir)/storage/ndb/config/win-name $@ $(noinst_LIBRARIES)
|
||||
@$(top_srcdir)/storage/ndb/config/win-includes $@ $(INCLUDES)
|
||||
@$(top_srcdir)/storage/ndb/config/win-sources $@ $(libstorage/ndbcntr_a_SOURCES)
|
||||
@$(top_srcdir)/storage/ndb/config/win-libraries $@ LIB $(LDADD)
|
|
@ -1,27 +0,0 @@
|
|||
noinst_LIBRARIES = libndbfs.a
|
||||
|
||||
libndbfs_a_SOURCES = \
|
||||
AsyncFile.cpp \
|
||||
Ndbfs.cpp VoidFs.cpp \
|
||||
Filename.cpp \
|
||||
CircularIndex.cpp
|
||||
|
||||
include $(top_srcdir)/storage/ndb/config/common.mk.am
|
||||
include $(top_srcdir)/storage/ndb/config/type_kernel.mk.am
|
||||
|
||||
# Don't update the files from bitkeeper
|
||||
%::SCCS/s.%
|
||||
|
||||
windoze-dsp: libndbfs.dsp
|
||||
|
||||
libndbfs.dsp: Makefile \
|
||||
$(top_srcdir)/storage/ndb/config/win-lib.am \
|
||||
$(top_srcdir)/storage/ndb/config/win-name \
|
||||
$(top_srcdir)/storage/ndb/config/win-includes \
|
||||
$(top_srcdir)/storage/ndb/config/win-sources \
|
||||
$(top_srcdir)/storage/ndb/config/win-libraries
|
||||
cat $(top_srcdir)/storage/ndb/config/win-lib.am > $@
|
||||
@$(top_srcdir)/storage/ndb/config/win-name $@ $(noinst_LIBRARIES)
|
||||
@$(top_srcdir)/storage/ndb/config/win-includes $@ $(INCLUDES)
|
||||
@$(top_srcdir)/storage/ndb/config/win-sources $@ $(libstorage/ndbfs_a_SOURCES)
|
||||
@$(top_srcdir)/storage/ndb/config/win-libraries $@ LIB $(LDADD)
|
|
@ -1,25 +0,0 @@
|
|||
noinst_LIBRARIES = libqmgr.a
|
||||
|
||||
libqmgr_a_SOURCES = \
|
||||
QmgrInit.cpp \
|
||||
QmgrMain.cpp
|
||||
|
||||
include $(top_srcdir)/storage/ndb/config/common.mk.am
|
||||
include $(top_srcdir)/storage/ndb/config/type_kernel.mk.am
|
||||
|
||||
# Don't update the files from bitkeeper
|
||||
%::SCCS/s.%
|
||||
|
||||
windoze-dsp: libqmgr.dsp
|
||||
|
||||
libqmgr.dsp: Makefile \
|
||||
$(top_srcdir)/storage/ndb/config/win-lib.am \
|
||||
$(top_srcdir)/storage/ndb/config/win-name \
|
||||
$(top_srcdir)/storage/ndb/config/win-includes \
|
||||
$(top_srcdir)/storage/ndb/config/win-sources \
|
||||
$(top_srcdir)/storage/ndb/config/win-libraries
|
||||
cat $(top_srcdir)/storage/ndb/config/win-lib.am > $@
|
||||
@$(top_srcdir)/storage/ndb/config/win-name $@ $(noinst_LIBRARIES)
|
||||
@$(top_srcdir)/storage/ndb/config/win-includes $@ $(INCLUDES)
|
||||
@$(top_srcdir)/storage/ndb/config/win-sources $@ $(libqmgr_a_SOURCES)
|
||||
@$(top_srcdir)/storage/ndb/config/win-libraries $@ LIB $(LDADD)
|
|
@ -1,23 +0,0 @@
|
|||
noinst_LIBRARIES = libsuma.a
|
||||
|
||||
libsuma_a_SOURCES = Suma.cpp SumaInit.cpp
|
||||
|
||||
include $(top_srcdir)/storage/ndb/config/common.mk.am
|
||||
include $(top_srcdir)/storage/ndb/config/type_kernel.mk.am
|
||||
|
||||
# Don't update the files from bitkeeper
|
||||
%::SCCS/s.%
|
||||
|
||||
windoze-dsp: libsuma.dsp
|
||||
|
||||
libsuma.dsp: Makefile \
|
||||
$(top_srcdir)/storage/ndb/config/win-lib.am \
|
||||
$(top_srcdir)/storage/ndb/config/win-name \
|
||||
$(top_srcdir)/storage/ndb/config/win-includes \
|
||||
$(top_srcdir)/storage/ndb/config/win-sources \
|
||||
$(top_srcdir)/storage/ndb/config/win-libraries
|
||||
cat $(top_srcdir)/storage/ndb/config/win-lib.am > $@
|
||||
@$(top_srcdir)/storage/ndb/config/win-name $@ $(noinst_LIBRARIES)
|
||||
@$(top_srcdir)/storage/ndb/config/win-includes $@ $(INCLUDES)
|
||||
@$(top_srcdir)/storage/ndb/config/win-sources $@ $(libsuma_a_SOURCES)
|
||||
@$(top_srcdir)/storage/ndb/config/win-libraries $@ LIB $(LDADD)
|
|
@ -1,23 +0,0 @@
|
|||
noinst_LIBRARIES = libtrix.a
|
||||
|
||||
libtrix_a_SOURCES = Trix.cpp
|
||||
|
||||
include $(top_srcdir)/storage/ndb/config/common.mk.am
|
||||
include $(top_srcdir)/storage/ndb/config/type_kernel.mk.am
|
||||
|
||||
# Don't update the files from bitkeeper
|
||||
%::SCCS/s.%
|
||||
|
||||
windoze-dsp: libtrix.dsp
|
||||
|
||||
libtrix.dsp: Makefile \
|
||||
$(top_srcdir)/storage/ndb/config/win-lib.am \
|
||||
$(top_srcdir)/storage/ndb/config/win-name \
|
||||
$(top_srcdir)/storage/ndb/config/win-includes \
|
||||
$(top_srcdir)/storage/ndb/config/win-sources \
|
||||
$(top_srcdir)/storage/ndb/config/win-libraries
|
||||
cat $(top_srcdir)/storage/ndb/config/win-lib.am > $@
|
||||
@$(top_srcdir)/storage/ndb/config/win-name $@ $(noinst_LIBRARIES)
|
||||
@$(top_srcdir)/storage/ndb/config/win-includes $@ $(INCLUDES)
|
||||
@$(top_srcdir)/storage/ndb/config/win-sources $@ $(libtrix_a_SOURCES)
|
||||
@$(top_srcdir)/storage/ndb/config/win-libraries $@ LIB $(LDADD)
|
|
@ -20,7 +20,8 @@ libkernel_a_SOURCES = \
|
|||
Mutex.cpp SafeCounter.cpp \
|
||||
Rope.cpp \
|
||||
SuperPool.cpp \
|
||||
ndbd_malloc.cpp ndbd_malloc_impl.cpp
|
||||
ndbd_malloc.cpp ndbd_malloc_impl.cpp \
|
||||
NdbdSuperPool.cpp
|
||||
|
||||
INCLUDES_LOC = -I$(top_srcdir)/storage/ndb/src/mgmapi
|
||||
|
||||
|
@ -44,7 +45,7 @@ libkernel.dsp: Makefile \
|
|||
@$(top_srcdir)/storage/ndb/config/win-sources $@ $(libkernel_a_SOURCES)
|
||||
@$(top_srcdir)/storage/ndb/config/win-libraries $@ LIB $(LDADD)
|
||||
|
||||
EXTRA_PROGRAMS = ndbd_malloc_impl_test
|
||||
EXTRA_PROGRAMS = ndbd_malloc_impl_test bench_pool
|
||||
ndbd_malloc_impl_test_CXXFLAGS = -DUNIT_TEST
|
||||
ndbd_malloc_impl_test_SOURCES = ndbd_malloc_impl.cpp
|
||||
ndbd_malloc_impl_test_LDFLAGS = @ndb_bin_am_ldflags@ \
|
||||
|
@ -52,3 +53,11 @@ ndbd_malloc_impl_test_LDFLAGS = @ndb_bin_am_ldflags@ \
|
|||
$(top_builddir)/mysys/libmysys.a \
|
||||
$(top_builddir)/dbug/libdbug.a \
|
||||
$(top_builddir)/strings/libmystrings.a
|
||||
|
||||
bench_pool_SOURCES = bench_pool.cpp ndbd_malloc.cpp \
|
||||
SuperPool.cpp NdbdSuperPool.cpp ndbd_malloc_impl.cpp
|
||||
bench_pool_LDFLAGS = @ndb_bin_am_ldflags@ \
|
||||
$(top_builddir)/storage/ndb/src/libndbclient.la \
|
||||
$(top_builddir)/mysys/libmysys.a \
|
||||
$(top_builddir)/dbug/libdbug.a \
|
||||
$(top_builddir)/strings/libmystrings.a
|
||||
|
|
228
storage/ndb/src/kernel/vm/NdbdSuperPool.cpp
Normal file
228
storage/ndb/src/kernel/vm/NdbdSuperPool.cpp
Normal file
|
@ -0,0 +1,228 @@
|
|||
/* Copyright (C) 2003 MySQL AB
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||
|
||||
#include <ndb_global.h>
|
||||
#include "SuperPool.hpp"
|
||||
#include "ndbd_malloc_impl.hpp"
|
||||
#include "NdbdSuperPool.hpp"
|
||||
|
||||
#define PSI (1 << (BMW_2LOG + 2))
|
||||
|
||||
struct AllocArea
|
||||
{
|
||||
AllocArea(AllocArea* next);
|
||||
|
||||
Uint16 m_currPage; // 2
|
||||
Uint16 m_numPages; // number of pages // 2
|
||||
SuperPool::PtrI m_firstPageI; // 4
|
||||
void* m_memory; // page-aligned pages // 4/8
|
||||
struct AllocArea* m_nextArea; // 4/8
|
||||
// tot 16/24
|
||||
};
|
||||
|
||||
AllocArea::AllocArea(AllocArea* next)
|
||||
{
|
||||
m_nextArea = next;
|
||||
m_firstPageI = RNIL;
|
||||
m_currPage = m_numPages = 0;
|
||||
m_memory = 0;
|
||||
}
|
||||
|
||||
NdbdSuperPool::NdbdSuperPool(class Ndbd_mem_manager & mm,
|
||||
Uint32 pageSize, Uint32 pageBits) :
|
||||
SuperPool(pageSize, pageBits),
|
||||
m_mm(mm),
|
||||
m_currArea(0), m_firstArea(0)
|
||||
{
|
||||
m_memRoot = m_mm.get_memroot();
|
||||
|
||||
m_shift = Ndbd_mem_manager::log2((1 << (BMW_2LOG + 2)) / pageSize) - 1;
|
||||
m_add = (1 << m_shift) - 1;
|
||||
}
|
||||
|
||||
NdbdSuperPool::~NdbdSuperPool()
|
||||
{
|
||||
Uint32 cnt = PSI / sizeof(AllocArea);
|
||||
AllocArea* ap = m_firstArea;
|
||||
while(ap != 0)
|
||||
{
|
||||
AllocArea * first = ap;
|
||||
for(Uint32 i = 0; i<cnt; i++)
|
||||
{
|
||||
if (ap->m_numPages)
|
||||
{
|
||||
m_mm.release(ap->m_memory, ap->m_numPages >> m_shift);
|
||||
}
|
||||
ap = ap->m_nextArea;
|
||||
}
|
||||
m_mm.release((void*)first, 1);
|
||||
}
|
||||
}
|
||||
|
||||
bool
|
||||
NdbdSuperPool::init_1()
|
||||
{
|
||||
Uint32 pageCount = (1 << m_pageBits);
|
||||
if (m_pageEnt == 0) {
|
||||
// allocate page entry array
|
||||
Uint32 bytes = pageCount * sizeof(PageEnt);
|
||||
m_pageEnt = static_cast<PageEnt*>(malloc(bytes));
|
||||
if (m_pageEnt == 0)
|
||||
return false;
|
||||
for (Uint32 i = 0; i < pageCount; i++)
|
||||
new (&m_pageEnt[i]) PageEnt();
|
||||
}
|
||||
if (m_pageType == 0) {
|
||||
// allocate type check array
|
||||
Uint32 bytes = pageCount;
|
||||
m_pageType = static_cast<Uint8*>(malloc(bytes));
|
||||
if (m_pageType == 0)
|
||||
return false;
|
||||
memset(m_pageType, 0, bytes);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static
|
||||
void
|
||||
initAllocAreaPage(AllocArea * p1)
|
||||
{
|
||||
AllocArea * ap = p1;
|
||||
Uint32 cnt = PSI / sizeof(AllocArea);
|
||||
for(Uint32 i = 0; i<cnt; i++, ap++)
|
||||
{
|
||||
new (ap) AllocArea(ap + 1);
|
||||
}
|
||||
|
||||
(p1 + cnt - 1)->m_nextArea = 0;
|
||||
}
|
||||
|
||||
bool
|
||||
NdbdSuperPool::init_2()
|
||||
{
|
||||
m_memRoot = m_mm.get_memroot();
|
||||
|
||||
Uint32 cnt = 1;
|
||||
AllocArea* p1 = (AllocArea*)m_mm.alloc(&cnt, 1);
|
||||
if (p1 == 0)
|
||||
return false;
|
||||
|
||||
initAllocAreaPage(p1);
|
||||
m_currArea = p1;
|
||||
m_firstArea = p1;
|
||||
return true;
|
||||
}
|
||||
|
||||
SuperPool::PtrI
|
||||
NdbdSuperPool::getNewPage()
|
||||
{
|
||||
AllocArea* ap = m_currArea;
|
||||
Uint32 curr = ap->m_currPage;
|
||||
Uint32 cnt = ap->m_numPages;
|
||||
if (curr == cnt)
|
||||
{
|
||||
// area is used up
|
||||
if (! (ap = allocMem()))
|
||||
{
|
||||
abort();
|
||||
return RNIL;
|
||||
}
|
||||
curr = ap->m_currPage;
|
||||
cnt = ap->m_numPages;
|
||||
}
|
||||
|
||||
assert(curr < cnt);
|
||||
PtrI pageI = ap->m_firstPageI;
|
||||
Uint32 recBits = m_recBits;
|
||||
Int32 ip = ((Int32)pageI >> recBits) + curr;
|
||||
pageI = ip << recBits;
|
||||
ap->m_currPage = curr + 1;
|
||||
return pageI;
|
||||
}
|
||||
|
||||
Uint32
|
||||
NdbdSuperPool::allocAreaMemory(AllocArea* ap, Uint32 tryPages)
|
||||
{
|
||||
Uint32 cnt = (tryPages + m_add) >> m_shift;
|
||||
void* p1 = m_mm.alloc(&cnt, 1);
|
||||
if (p1 == 0)
|
||||
{
|
||||
abort();
|
||||
return 0;
|
||||
}
|
||||
Uint32 pageI = getPageI(p1);
|
||||
ap->m_firstPageI = pageI;
|
||||
ap->m_currPage = 0;
|
||||
ap->m_memory = p1;
|
||||
ap->m_numPages = cnt << m_shift;
|
||||
return cnt;
|
||||
}
|
||||
|
||||
AllocArea*
|
||||
NdbdSuperPool::allocArea()
|
||||
{
|
||||
AllocArea * curr = m_currArea;
|
||||
AllocArea * next = curr->m_nextArea;
|
||||
if (next == 0)
|
||||
{
|
||||
Uint32 cnt = 1;
|
||||
AllocArea* p1 = (AllocArea*)m_mm.alloc(&cnt, 1);
|
||||
if (p1 == 0)
|
||||
return 0;
|
||||
|
||||
initAllocAreaPage(p1);
|
||||
|
||||
m_currArea->m_nextArea = p1;
|
||||
return m_currArea = p1;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_currArea = m_currArea->m_nextArea;
|
||||
return m_currArea;
|
||||
}
|
||||
}
|
||||
|
||||
AllocArea*
|
||||
NdbdSuperPool::allocMem()
|
||||
{
|
||||
// compute number of additional pages needed
|
||||
if (m_totPages >= m_maxPages)
|
||||
{
|
||||
abort();
|
||||
return 0;
|
||||
}
|
||||
Uint32 needPages = (m_totPages == 0 ? m_initPages : m_incrPages);
|
||||
|
||||
// add new area
|
||||
AllocArea* ap = allocArea();
|
||||
if (ap == 0)
|
||||
{
|
||||
abort();
|
||||
return 0;
|
||||
}
|
||||
|
||||
Uint32 numPages;
|
||||
if (!(numPages = allocAreaMemory(ap, needPages)))
|
||||
{
|
||||
abort();
|
||||
return 0;
|
||||
}
|
||||
|
||||
// update counts
|
||||
m_totPages += numPages;
|
||||
return ap;
|
||||
}
|
55
storage/ndb/src/kernel/vm/NdbdSuperPool.hpp
Normal file
55
storage/ndb/src/kernel/vm/NdbdSuperPool.hpp
Normal file
|
@ -0,0 +1,55 @@
|
|||
/* Copyright (C) 2003 MySQL AB
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||
|
||||
#ifndef NDBD_SUPER_POOL_HPP
|
||||
#define NDBD_SUPER_POOL_HPP
|
||||
|
||||
#include "SuperPool.hpp"
|
||||
|
||||
struct AllocArea;
|
||||
|
||||
class NdbdSuperPool : public SuperPool
|
||||
{
|
||||
public:
|
||||
NdbdSuperPool(class Ndbd_mem_manager&, Uint32 pageSize, Uint32 pageBits);
|
||||
|
||||
// Destructor.
|
||||
virtual ~NdbdSuperPool();
|
||||
|
||||
// Get new page from current area.
|
||||
virtual PtrI getNewPage();
|
||||
|
||||
// Call first...on all superpools (uses malloc)
|
||||
bool init_1();
|
||||
|
||||
// Call second...uses mm
|
||||
bool init_2();
|
||||
|
||||
virtual bool allocMemory() { return allocMem() != 0; }
|
||||
private:
|
||||
Uint32 allocAreaMemory(AllocArea*, Uint32 pages);
|
||||
AllocArea* allocArea();
|
||||
AllocArea* allocMem();
|
||||
|
||||
// List of malloc areas.
|
||||
Uint32 m_shift, m_add;
|
||||
class Ndbd_mem_manager & m_mm;
|
||||
|
||||
AllocArea* m_currArea;
|
||||
AllocArea* m_firstArea;
|
||||
};
|
||||
|
||||
#endif
|
|
@ -644,7 +644,7 @@ HeapPool::getNewPage()
|
|||
if (ap->m_currPage == ap->m_numPages) {
|
||||
// area is used up
|
||||
if (ap->m_nextArea == 0) {
|
||||
if (! allocMemory())
|
||||
if (! allocMemoryImpl())
|
||||
return RNIL;
|
||||
}
|
||||
ap = m_currArea = ap->m_nextArea;
|
||||
|
@ -711,7 +711,7 @@ HeapPool::allocArea(Area* ap, Uint32 tryPages)
|
|||
}
|
||||
|
||||
bool
|
||||
HeapPool::allocMemory()
|
||||
HeapPool::allocMemoryImpl()
|
||||
{
|
||||
if (! allocInit())
|
||||
return false;
|
||||
|
|
|
@ -580,7 +580,8 @@ public:
|
|||
bool allocArea(Area* ap, Uint32 tryPages);
|
||||
|
||||
// Allocate memory.
|
||||
virtual bool allocMemory();
|
||||
virtual bool allocMemory() { return allocMemoryImpl();}
|
||||
bool allocMemoryImpl();
|
||||
|
||||
// List of malloc areas.
|
||||
Area m_areaHead;
|
||||
|
|
249
storage/ndb/src/kernel/vm/bench_pool.cpp
Normal file
249
storage/ndb/src/kernel/vm/bench_pool.cpp
Normal file
|
@ -0,0 +1,249 @@
|
|||
/* Copyright (C) 2003 MySQL AB
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||
|
||||
|
||||
#include "NdbdSuperPool.hpp"
|
||||
#include "ArrayPool.hpp"
|
||||
#include <NdbTick.h>
|
||||
#include "ndbd_malloc_impl.hpp"
|
||||
|
||||
template <typename T>
|
||||
inline
|
||||
void
|
||||
init(ArrayPool<T> & pool, Uint32 cnt)
|
||||
{
|
||||
pool.setSize(cnt + 1);
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
inline
|
||||
void
|
||||
init(RecordPool<T> & pool, Uint32 cnt)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
template<typename T, typename R>
|
||||
inline
|
||||
void
|
||||
test_pool(R& pool, Uint32 cnt, Uint32 loops)
|
||||
{
|
||||
init(pool, cnt);
|
||||
Ptr<T> ptr;
|
||||
Uint32 *arr = (Uint32*)alloca(cnt * sizeof(Uint32));
|
||||
{
|
||||
printf(" ; seize "); fflush(stdout);
|
||||
Uint64 sum = 0;
|
||||
for(Uint32 i = 0; i<loops; i++)
|
||||
{
|
||||
Uint64 start = NdbTick_CurrentMillisecond();
|
||||
for(Uint32 j = 0; j<cnt; j++)
|
||||
{
|
||||
bool b = pool.seize(ptr);
|
||||
arr[j] = ptr.i;
|
||||
assert(b);
|
||||
}
|
||||
Uint64 stop = NdbTick_CurrentMillisecond();
|
||||
|
||||
for(Uint32 j = 0; j<cnt; j++)
|
||||
{
|
||||
ptr.i = arr[j];
|
||||
pool.getPtr(ptr);
|
||||
pool.release(ptr);
|
||||
arr[j] = RNIL;
|
||||
}
|
||||
|
||||
sum += (stop - start);
|
||||
if (i == 0)
|
||||
printf("; first ; %lld", (stop - start));
|
||||
}
|
||||
printf(" ; avg ; %lld ; tot ; %lld", sum/loops, sum);fflush(stdout);
|
||||
}
|
||||
|
||||
{
|
||||
printf(" ; release "); fflush(stdout);
|
||||
Uint64 sum = 0;
|
||||
for(Uint32 i = 0; i<loops; i++)
|
||||
{
|
||||
for(Uint32 j = 0; j<cnt; j++)
|
||||
{
|
||||
bool b = pool.seize(ptr);
|
||||
arr[j] = ptr.i;
|
||||
assert(b);
|
||||
}
|
||||
|
||||
Uint64 start = NdbTick_CurrentMillisecond();
|
||||
for(Uint32 j = 0; j<cnt; j++)
|
||||
{
|
||||
ptr.i = arr[j];
|
||||
pool.release(ptr);
|
||||
arr[j] = RNIL;
|
||||
}
|
||||
Uint64 stop = NdbTick_CurrentMillisecond();
|
||||
|
||||
sum += (stop - start);
|
||||
}
|
||||
printf("; avg ; %lld ; tot ; %lld", sum/loops, sum); fflush(stdout);
|
||||
}
|
||||
|
||||
{
|
||||
printf(" ; mix"); fflush(stdout);
|
||||
|
||||
Uint64 sum = 0;
|
||||
Uint64 start = NdbTick_CurrentMillisecond();
|
||||
for(Uint32 i = 0; i<loops * cnt; i++)
|
||||
{
|
||||
int pos = rand() % cnt;
|
||||
ptr.i = arr[pos];
|
||||
if (ptr.i == RNIL)
|
||||
{
|
||||
pool.seize(ptr);
|
||||
arr[pos] = ptr.i;
|
||||
assert(ptr.i != RNIL);
|
||||
}
|
||||
else
|
||||
{
|
||||
pool.release(ptr);
|
||||
arr[pos] = RNIL;
|
||||
}
|
||||
}
|
||||
Uint64 stop = NdbTick_CurrentMillisecond();
|
||||
|
||||
for(Uint32 j = 0; j<cnt; j++)
|
||||
{
|
||||
ptr.i = arr[j];
|
||||
if (ptr.i != RNIL)
|
||||
{
|
||||
pool.getPtr(ptr);
|
||||
pool.release(ptr);
|
||||
}
|
||||
arr[j] = RNIL;
|
||||
}
|
||||
|
||||
sum += (stop - start);
|
||||
printf(" ; %lld", sum); fflush(stdout);
|
||||
}
|
||||
|
||||
{
|
||||
printf(" ; getPtr"); fflush(stdout);
|
||||
|
||||
for(Uint32 j = 0; j<cnt; j++)
|
||||
{
|
||||
bool b = pool.seize(ptr);
|
||||
arr[j] = ptr.i;
|
||||
assert(b);
|
||||
}
|
||||
|
||||
Uint64 sum = 0;
|
||||
Uint64 start = NdbTick_CurrentMillisecond();
|
||||
for(Uint32 i = 0; i<loops * cnt; i++)
|
||||
{
|
||||
int pos = rand() % cnt;
|
||||
ptr.i = arr[pos];
|
||||
pool.getPtr(ptr);
|
||||
}
|
||||
Uint64 stop = NdbTick_CurrentMillisecond();
|
||||
|
||||
for(Uint32 j = 0; j<cnt; j++)
|
||||
{
|
||||
ptr.i = arr[j];
|
||||
pool.getPtr(ptr);
|
||||
pool.release(ptr);
|
||||
arr[j] = RNIL;
|
||||
}
|
||||
|
||||
sum += (stop - start);
|
||||
printf(" ; %lld", sum); fflush(stdout);
|
||||
}
|
||||
ndbout_c("");
|
||||
}
|
||||
|
||||
template <Uint32 sz> struct Rec { char data[sz-4]; Uint32 nextPool; };
|
||||
typedef Rec<32> Rec32;
|
||||
typedef Rec<36> Rec36;
|
||||
typedef Rec<256> Rec256;
|
||||
typedef Rec<260> Rec260;
|
||||
|
||||
Ndbd_mem_manager mem;
|
||||
|
||||
template <typename T>
|
||||
inline
|
||||
void test_rp(Uint32 cnt, Uint32 loop, Uint32 pgsz)
|
||||
{
|
||||
printf("RP ; %d ; ws ; %d ; page ; %d",
|
||||
sizeof(T), (sizeof(T)*cnt) >> 10, pgsz >> 10);
|
||||
NdbdSuperPool sp(mem, pgsz, 19);
|
||||
GroupPool gp(sp);
|
||||
sp.init_1();
|
||||
sp.init_2();
|
||||
|
||||
sp.setInitPages(4);
|
||||
sp.setIncrPages(4);
|
||||
sp.setMaxPages(~0);
|
||||
sp.allocMemory();
|
||||
|
||||
RecordPool<T> pool(gp);
|
||||
test_pool<T, RecordPool<T> >(pool, cnt, loop);
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
inline
|
||||
void test_ap(Uint32 cnt, Uint32 loop)
|
||||
{
|
||||
printf("AP ; %d ; ws ; %d ; page ; n/a", sizeof(T), (cnt * sizeof(T))>>10);
|
||||
ArrayPool<T> pool;
|
||||
test_pool<T, ArrayPool<T> >(pool, cnt, loop);
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
mem.init(10000);
|
||||
|
||||
Uint32 cnt = 100;
|
||||
Uint32 loop = 300000;
|
||||
|
||||
while(cnt <= 1000000)
|
||||
{
|
||||
test_rp<Rec32>(cnt, loop, 8192);
|
||||
test_rp<Rec32>(cnt, loop, 32768);
|
||||
test_ap<Rec32>(cnt, loop);
|
||||
|
||||
test_rp<Rec36>(cnt, loop, 8192);
|
||||
test_rp<Rec36>(cnt, loop, 32768);
|
||||
test_ap<Rec36>(cnt, loop);
|
||||
|
||||
test_rp<Rec256>(cnt, loop, 8192);
|
||||
test_rp<Rec256>(cnt, loop, 32768);
|
||||
test_ap<Rec256>(cnt, loop);
|
||||
|
||||
test_rp<Rec260>(cnt, loop, 8192);
|
||||
test_rp<Rec260>(cnt, loop, 32768);
|
||||
test_ap<Rec260>(cnt, loop);
|
||||
|
||||
cnt *= 100;
|
||||
loop /= 100;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
ErrorReporter::handleAssert(const char * msg, const char * file,
|
||||
int line, int)
|
||||
{
|
||||
ndbout << "ErrorReporter::handleAssert activated - "
|
||||
<< " line= " << line << endl;
|
||||
abort();
|
||||
}
|
|
@ -84,7 +84,7 @@ Ndbd_mem_manager::init(Uint32 pages)
|
|||
release(start+1, end - 1 - start);
|
||||
}
|
||||
|
||||
return 0;
|
||||
return true;
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -200,6 +200,25 @@ Ndbd_mem_manager::alloc(Uint32* ret, Uint32 *pages, Uint32 min)
|
|||
* pages = 0;
|
||||
}
|
||||
|
||||
void*
|
||||
Ndbd_mem_manager::alloc(Uint32 *pages, Uint32 min)
|
||||
{
|
||||
Uint32 ret;
|
||||
alloc(&ret, pages, min);
|
||||
if (pages)
|
||||
{
|
||||
return m_base_page + ret;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
Ndbd_mem_manager::release(void* ptr, Uint32 cnt)
|
||||
{
|
||||
Uint32 page = ((Alloc_page*)ptr) - m_base_page;
|
||||
release(page, cnt);
|
||||
}
|
||||
|
||||
void
|
||||
Ndbd_mem_manager::insert_free_list(Uint32 start, Uint32 size)
|
||||
{
|
||||
|
|
|
@ -64,8 +64,12 @@ public:
|
|||
bool grow(Uint32 pages = 0);
|
||||
|
||||
void dump() const ;
|
||||
private:
|
||||
|
||||
|
||||
void* get_memroot() const { return (void*)m_base_page;}
|
||||
|
||||
void* alloc(Uint32 * pages, Uint32 min_requested);
|
||||
void release(void* ptr, Uint32 cnt);
|
||||
|
||||
/**
|
||||
* Compute 2log of size
|
||||
* @note size = 0 -> 0
|
||||
|
@ -73,6 +77,7 @@ private:
|
|||
*/
|
||||
static Uint32 log2(Uint32 size);
|
||||
|
||||
private:
|
||||
/**
|
||||
* Return pointer to free page data on page
|
||||
*/
|
||||
|
|
Loading…
Add table
Reference in a new issue