You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-08-07 03:22:57 +03:00
MCOL-3460. Found that indeed this is a worthwhile optimization.
Write and appendtask were breaking the incoming data into 1MB chunks to call IOC::write/append() with. Keeping the limit for safety, but bumping it to 100MB.
This commit is contained in:
@@ -68,7 +68,8 @@ bool AppendTask::run()
|
|||||||
|
|
||||||
ssize_t readCount = 0, writeCount = 0;
|
ssize_t readCount = 0, writeCount = 0;
|
||||||
vector<uint8_t> databuf;
|
vector<uint8_t> databuf;
|
||||||
uint bufsize = min(1 << 20, cmd->count); // 1 MB
|
uint bufsize = min(100 << 20, cmd->count); // 100 MB
|
||||||
|
//uint bufsize = cmd->count;
|
||||||
databuf.resize(bufsize);
|
databuf.resize(bufsize);
|
||||||
|
|
||||||
while (readCount < cmd->count)
|
while (readCount < cmd->count)
|
||||||
|
@@ -108,7 +108,7 @@ bool PosixTask::read(uint8_t *buf, uint length)
|
|||||||
while (count < length)
|
while (count < length)
|
||||||
{
|
{
|
||||||
err = ::recv(sock, &buf[count], length - count, 0);
|
err = ::recv(sock, &buf[count], length - count, 0);
|
||||||
if (err <= 0)
|
if (err < 0)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
count += err;
|
count += err;
|
||||||
@@ -207,7 +207,7 @@ void PosixTask::consumeMsg()
|
|||||||
|
|
||||||
while (remainingLengthInStream > 0)
|
while (remainingLengthInStream > 0)
|
||||||
{
|
{
|
||||||
logger->log(LOG_ERR,"ERROR: eating data.");
|
logger->log(LOG_WARNING, "PosixTask::consumeMsg(): Discarding the tail end of a partial msg.");
|
||||||
err = ::recv(sock, buf, min(remainingLengthInStream, 1024), 0);
|
err = ::recv(sock, buf, min(remainingLengthInStream, 1024), 0);
|
||||||
if (err <= 0) {
|
if (err <= 0) {
|
||||||
remainingLengthInStream = 0;
|
remainingLengthInStream = 0;
|
||||||
|
@@ -68,7 +68,8 @@ bool WriteTask::run()
|
|||||||
|
|
||||||
ssize_t readCount = 0, writeCount = 0;
|
ssize_t readCount = 0, writeCount = 0;
|
||||||
vector<uint8_t> databuf;
|
vector<uint8_t> databuf;
|
||||||
uint bufsize = min(1 << 20, cmd->count); // 1 MB
|
uint bufsize = min(100 << 20, cmd->count); // 100 MB
|
||||||
|
//uint bufsize = cmd->count;
|
||||||
databuf.resize(bufsize);
|
databuf.resize(bufsize);
|
||||||
|
|
||||||
while (readCount < cmd->count)
|
while (readCount < cmd->count)
|
||||||
|
Reference in New Issue
Block a user