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
b254e69a
Commit
b254e69a
authored
Nov 19, 2004
by
joreland@mysql.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
wl2077 - scan optimizations
(recommit in clean clone)
parent
64382cdc
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
67 additions
and
14 deletions
+67
-14
ndb/docs/wl2077.txt
ndb/docs/wl2077.txt
+35
-0
ndb/src/kernel/blocks/dbdih/Dbdih.hpp
ndb/src/kernel/blocks/dbdih/Dbdih.hpp
+0
-1
ndb/src/kernel/blocks/dbdih/DbdihMain.cpp
ndb/src/kernel/blocks/dbdih/DbdihMain.cpp
+9
-11
ndb/src/kernel/blocks/dbtc/DbtcMain.cpp
ndb/src/kernel/blocks/dbtc/DbtcMain.cpp
+14
-0
ndb/test/ndbapi/testReadPerf.cpp
ndb/test/ndbapi/testReadPerf.cpp
+9
-2
No files found.
ndb/docs/wl2077.txt
0 → 100644
View file @
b254e69a
100' * (select 1 from T1 (1M rows) where key = rand());
1 host, 1 ndbd, api co-hosted
results in 1000 rows / sec
wo/reset bounds w/ rb
4.1-read committed a) 4.9 b) 7.4
4.1-read hold lock c) 4.7 d) 6.7
wl2077-read committed 6.4 (+30%) 10.8 (+45%)
wl2077-read hold lock 4.6 (-1%) 6.7 (+ 0%)
-- Comparision e)
serial pk: 10.9'
batched (1000): 59'
serial uniq index: 8.4'
batched (1000): 33'
index range (1000): 186'
----
load) testScanPerf -c 1 -d 1 T1
a) testScanPerf -s 100000 -c 0 -d 0 -a 1 -l 0 -r 2 -q 0 T1
b) testScanPerf -s 100000 -c 0 -d 0 -a 1 -l 0 -r 2 -q 1 T1
c) testScanPerf -s 100000 -c 0 -d 0 -a 1 -l 1 -r 2 -q 0 T1
d) testScanPerf -s 100000 -c 0 -d 0 -a 1 -l 1 -r 2 -q 1 T1
e) testReadPerf -i 25 -c 0 -d 0 T1
--- music join 1db-co 2db-co
4.1 13s 14s
4.1 wo/ blobs 1.7s 3.2s
wl2077 12s 14s
wl2077 wo/ blobs 1.2s (-30%) 2.5s (-22%)
ndb/src/kernel/blocks/dbdih/Dbdih.hpp
View file @
b254e69a
...
...
@@ -147,7 +147,6 @@ public:
Uint32
nfConnect
;
Uint32
table
;
Uint32
userpointer
;
Uint32
nodeCount
;
BlockReference
userblockref
;
};
typedef
Ptr
<
ConnectRecord
>
ConnectRecordPtr
;
...
...
ndb/src/kernel/blocks/dbdih/DbdihMain.cpp
View file @
b254e69a
...
...
@@ -7080,24 +7080,22 @@ void Dbdih::execDIGETPRIMREQ(Signal* signal)
ndbrequire
(
tabPtr
.
p
->
tabStatus
==
TabRecord
::
TS_ACTIVE
);
connectPtr
.
i
=
signal
->
theData
[
0
];
if
(
connectPtr
.
i
!=
RNIL
){
if
(
connectPtr
.
i
!=
RNIL
)
{
jam
();
ptrCheckGuard
(
connectPtr
,
cconnectFileSize
,
connectRecord
);
ndbrequire
(
connectPtr
.
p
->
connectState
==
ConnectRecord
::
INUSE
);
getFragstore
(
tabPtr
.
p
,
fragId
,
fragPtr
);
connectPtr
.
p
->
nodeCount
=
extractNodeInfo
(
fragPtr
.
p
,
connectPtr
.
p
->
nodes
);
signal
->
theData
[
0
]
=
connectPtr
.
p
->
userpointer
;
signal
->
theData
[
1
]
=
passThrough
;
signal
->
theData
[
2
]
=
connectPtr
.
p
->
nodes
[
0
];
sendSignal
(
connectPtr
.
p
->
userblockref
,
GSN_DIGETPRIMCONF
,
signal
,
3
,
JBB
);
return
;
}
//if
//connectPtr.i == RNIL -> question without connect record
}
else
{
jam
();
signal
->
theData
[
0
]
=
RNIL
;
}
Uint32
nodes
[
MAX_REPLICAS
];
getFragstore
(
tabPtr
.
p
,
fragId
,
fragPtr
);
Uint32
count
=
extractNodeInfo
(
fragPtr
.
p
,
nodes
);
signal
->
theData
[
0
]
=
RNIL
;
signal
->
theData
[
1
]
=
passThrough
;
signal
->
theData
[
2
]
=
nodes
[
0
];
signal
->
theData
[
3
]
=
nodes
[
1
];
...
...
ndb/src/kernel/blocks/dbtc/DbtcMain.cpp
View file @
b254e69a
...
...
@@ -8944,6 +8944,20 @@ void Dbtc::execDIGETPRIMCONF(Signal* signal)
scanptr
.
i
=
scanFragptr
.
p
->
scanRec
;
ptrCheckGuard
(
scanptr
,
cscanrecFileSize
,
scanRecord
);
if
(
ScanFragReq
::
getReadCommittedFlag
(
scanptr
.
p
->
scanRequestInfo
))
{
jam
();
Uint32
max
=
3
+
signal
->
theData
[
6
];
Uint32
nodeid
=
getOwnNodeId
();
for
(
Uint32
i
=
3
;
i
<
max
;
i
++
)
if
(
signal
->
theData
[
i
]
==
nodeid
)
{
jam
();
tnodeid
=
nodeid
;
break
;
}
}
{
/**
* Check table
...
...
ndb/test/ndbapi/testReadPerf.cpp
View file @
b254e69a
...
...
@@ -390,8 +390,15 @@ run_read(){
void
print_result
(){
int
tmp
=
1
;
tmp
*=
g_paramters
[
P_RANGE
].
value
;
tmp
*=
g_paramters
[
P_LOOPS
].
value
;
int
t
,
t2
;
for
(
int
i
=
0
;
i
<
P_OP_TYPES
;
i
++
){
g_err
.
println
(
"%s avg: %u us/row"
,
g_ops
[
i
],
(
1000
*
g_times
[
i
])
/
(
g_paramters
[
P_RANGE
].
value
*
g_paramters
[
P_LOOPS
].
value
));
g_err
<<
g_ops
[
i
]
<<
" avg: "
<<
(
int
)((
1000
*
g_times
[
i
])
/
tmp
)
<<
" us/row ("
<<
(
1000
*
tmp
)
/
g_times
[
i
]
<<
" rows / sec)"
<<
endl
;
}
}
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