Hi All,

Thanks all for replying/resolving my previous doubts. I am planning to use 
gRPC for our project. I have following question related to performance.

If I have following proto definition.

    option optimize_for = SPEED;    
    message ScanRow {
        repeated bytes row  = 1;
    }
    message ScanResult {
        repeated ScanRow row  = 1;
    }
    message ScanRequest {
        int32 numOfColumns = 1;
        int32 sizeOfEachColumn = 2;
        int64 numOfRows = 3;
        int32 batchSize = 4;
    }
    service ScanService {
        rpc Scan (ScanRequest) returns (stream ScanResult) {}
    }

I get around 900-1000 MegaBytes/Seconds on Single Machine and across two 
different Physical Machines I am getting 100-110 MegaBytes/Seconds speed.

If I change above proto definition to following.

option optimize_for = SPEED;
message ColumnValues {
 bytes columnName = 1;
 bytes columnValue = 2;
}
message ScanRow {
 int64 rowId = 1;
 int64 timeStamp = 2;
 repeated ColumnValues columnValue = 3;
}
message ScanResult {
 repeated ScanRow row = 1;
}
message ScanRequest {
 int32 numOfColumns = 1;
 int32 sizeOfEachColumn = 2;
 int64 numOfRows = 3;
 int32 batchSize = 4;
}
service ScanService {
 rpc Scan (ScanRequest) returns (stream ScanResult) {}
}

Now I get around 130-135 MegaBytes/Seconds Speed.


Why it is slow with kind of multi-level proto files. Is there any 
Serialization/De-Serialization overhead with this ?


Thanks

Avinash


-- 
You received this message because you are subscribed to the Google Groups 
"grpc.io" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/grpc-io.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/grpc-io/bba2fc24-fd69-4c78-89a6-173aea8f3545%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to