mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
First step for WL 2025
Not yet fully working Scan reads work fine, not scan updates ndb/include/kernel/ndb_limits.h: Introducing a new parameter plus increasing the max no of parallel operations per scan in LQH, first step in WL 2025 ndb/include/kernel/signaldata/ScanFrag.hpp: Only need one clientOpPtr Concurrency is batch_size to use in this scan batch_byte_size is max no of bytes sent in a batch first_batch_size is the batch size in the first batch ndb/include/kernel/signaldata/ScanTab.hpp: apiOperationPtr is sent as long signal data batch_byte_size and first_batch_size is needed for further transport to LQH batch size can now be bigger than before ndb/include/kernel/signaldata/TcKeyReq.hpp: More concurrency means more size for scanInfo also in TCKEYREQ ndb/include/ndbapi/NdbReceiver.hpp: New subroutine to caclculate batch size and similar parameters ndb/include/ndbapi/NdbScanOperation.hpp: batch size calculated before sending, not necessary to store anymore ndb/src/common/debugger/signaldata/ScanTab.cpp: Updated signal printer for SCAN_TABREQ ndb/src/kernel/blocks/backup/Backup.cpp: Fixes to make it compile, not fixed for BACKUP being useful yet ndb/src/kernel/blocks/dblqh/Dblqh.hpp: Removed parameters no longer needed and added some new ones. ndb/src/kernel/blocks/dblqh/DblqhMain.cpp: Fix for cmaxAccOps that was using the wrong constant Removed old code New SCAN_FRAGREQ signal ndb/src/kernel/blocks/dbtc/Dbtc.hpp: New variables Removed dead code ndb/src/kernel/blocks/dbtc/DbtcMain.cpp: New SCAN_TABREQ, SCAN_FRAGREQ, SCAN_FRAGCONF and SCAN_TABCONF Fixed some error handling to be more efficient ndb/src/kernel/blocks/suma/Suma.cpp: Fixes to make it compile, not yet usable for SUMA features ndb/src/kernel/vm/Configuration.cpp: Fix for wrong constant ndb/src/ndbapi/NdbApiSignal.cpp: Fix for not using constants ndb/src/ndbapi/NdbApiSignal.hpp: Added possibility to get signal sending node from signal ndb/src/ndbapi/NdbConnectionScan.cpp: Moved declaration ndb/src/ndbapi/NdbReceiver.cpp: New routine to calculate batch_size etc. ndb/src/ndbapi/NdbScanOperation.cpp: Various fixes for sending SCAN_TABREQ and other stuff
This commit is contained in:
@ -33,7 +33,7 @@ class ScanFragReq {
|
||||
*/
|
||||
friend class Dblqh;
|
||||
public:
|
||||
STATIC_CONST( SignalLength = 25 );
|
||||
STATIC_CONST( SignalLength = 13 );
|
||||
|
||||
public:
|
||||
Uint32 senderData;
|
||||
@ -45,9 +45,11 @@ public:
|
||||
Uint32 schemaVersion;
|
||||
Uint32 transId1;
|
||||
Uint32 transId2;
|
||||
Uint32 clientOpPtr[MAX_PARALLEL_OP_PER_SCAN];
|
||||
Uint32 clientOpPtr;
|
||||
Uint32 concurrency;
|
||||
Uint32 batch_byte_size;
|
||||
Uint32 first_batch_size;
|
||||
|
||||
static Uint32 getConcurrency(const Uint32 & requestInfo);
|
||||
static Uint32 getLockMode(const Uint32 & requestInfo);
|
||||
static Uint32 getHoldLockFlag(const Uint32 & requestInfo);
|
||||
static Uint32 getKeyinfoFlag(const Uint32 & requestInfo);
|
||||
@ -56,7 +58,6 @@ public:
|
||||
static Uint32 getAttrLen(const Uint32 & requestInfo);
|
||||
static Uint32 getScanPrio(const Uint32 & requestInfo);
|
||||
|
||||
static void setConcurrency(Uint32 & requestInfo, Uint32 concurrency);
|
||||
static void setLockMode(Uint32 & requestInfo, Uint32 lockMode);
|
||||
static void setHoldLockFlag(Uint32 & requestInfo, Uint32 holdLock);
|
||||
static void setKeyinfoFlag(Uint32 & requestInfo, Uint32 keyinfo);
|
||||
@ -79,7 +80,6 @@ class KeyInfo20 {
|
||||
friend class NdbOperation;
|
||||
friend class NdbScanReceiver;
|
||||
public:
|
||||
//STATIC_CONST( SignalLength = 21 );
|
||||
STATIC_CONST( HeaderLength = 5);
|
||||
STATIC_CONST( DataLength = 20 );
|
||||
|
||||
@ -110,15 +110,15 @@ class ScanFragConf {
|
||||
friend class Backup;
|
||||
friend class Suma;
|
||||
public:
|
||||
STATIC_CONST( SignalLength = 21 );
|
||||
STATIC_CONST( SignalLength = 6 );
|
||||
|
||||
public:
|
||||
Uint32 senderData;
|
||||
Uint32 completedOps;
|
||||
Uint32 fragmentCompleted;
|
||||
Uint32 opReturnDataLen[16];
|
||||
Uint32 transId1;
|
||||
Uint32 transId2;
|
||||
Uint32 total_len;
|
||||
};
|
||||
|
||||
class ScanFragRef {
|
||||
@ -188,7 +188,6 @@ public:
|
||||
* Request Info
|
||||
*
|
||||
* a = Length of attrinfo - 16 Bits (16-31)
|
||||
* c = Concurrency - 5 Bits (0-4) -> Max 31
|
||||
* l = Lock Mode - 1 Bit 5
|
||||
* h = Hold lock - 1 Bit 7
|
||||
* k = Keyinfo - 1 Bit 8
|
||||
@ -198,11 +197,8 @@ public:
|
||||
*
|
||||
* 1111111111222222222233
|
||||
* 01234567890123456789012345678901
|
||||
* ccccclxhkr ppppaaaaaaaaaaaaaaaa
|
||||
* lxhkr ppppaaaaaaaaaaaaaaaa
|
||||
*/
|
||||
#define SF_CONCURRENCY_SHIFT (0)
|
||||
#define SF_CONCURRENCY_MASK (31)
|
||||
|
||||
#define SF_LOCK_MODE_SHIFT (5)
|
||||
#define SF_LOCK_MODE_MASK (1)
|
||||
|
||||
@ -217,12 +213,6 @@ public:
|
||||
#define SF_PRIO_SHIFT 12
|
||||
#define SF_PRIO_MASK 15
|
||||
|
||||
inline
|
||||
Uint32
|
||||
ScanFragReq::getConcurrency(const Uint32 & requestInfo){
|
||||
return (requestInfo >> SF_CONCURRENCY_SHIFT) & SF_CONCURRENCY_MASK;
|
||||
}
|
||||
|
||||
inline
|
||||
Uint32
|
||||
ScanFragReq::getLockMode(const Uint32 & requestInfo){
|
||||
@ -272,13 +262,6 @@ ScanFragReq::setScanPrio(UintR & requestInfo, UintR val){
|
||||
requestInfo |= (val << SF_PRIO_SHIFT);
|
||||
}
|
||||
|
||||
inline
|
||||
void
|
||||
ScanFragReq::setConcurrency(UintR & requestInfo, UintR val){
|
||||
ASSERT_MAX(val, SF_CONCURRENCY_MASK, "ScanFragReq::setConcurrency");
|
||||
requestInfo |= (val << SF_CONCURRENCY_SHIFT);
|
||||
}
|
||||
|
||||
inline
|
||||
void
|
||||
ScanFragReq::setLockMode(UintR & requestInfo, UintR val){
|
||||
@ -324,7 +307,7 @@ ScanFragReq::setAttrLen(UintR & requestInfo, UintR val){
|
||||
inline
|
||||
Uint32
|
||||
KeyInfo20::setScanInfo(Uint32 opNo, Uint32 scanNo){
|
||||
ASSERT_MAX(opNo, 15, "KeyInfo20::setScanInfo");
|
||||
ASSERT_MAX(opNo, 1023, "KeyInfo20::setScanInfo");
|
||||
ASSERT_MAX(scanNo, 255, "KeyInfo20::setScanInfo");
|
||||
return (opNo << 8) + scanNo;
|
||||
}
|
||||
@ -338,7 +321,7 @@ KeyInfo20::getScanNo(Uint32 scanInfo){
|
||||
inline
|
||||
Uint32
|
||||
KeyInfo20::getScanOp(Uint32 scanInfo){
|
||||
return (scanInfo >> 8) & 0xF;
|
||||
return (scanInfo >> 8) & 0x1023;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user