Opened 6 years ago
Closed 6 years ago
#1850 closed defect (fixed)
rasdapy fails on any query resulting in more than 4MB data
Reported by: | Dimitar Misev | Owned by: | ahambasan |
---|---|---|---|
Priority: | critical | Milestone: | 9.7 |
Component: | rasdapy | Version: | development |
Keywords: | Cc: | ||
Complexity: | Medium |
Description (last modified by )
In #1849 an import script is attached that will import 6.6GB array in rasdaman. The query in the ticket should be checked if it works with rasdapy, with the latest rasdaman.
The solution is http://rasdaman.org/ticket/1850#comment:4 but in C++, it needs something like this in Python: https://stackoverflow.com/a/42655487/2028440
However, current GRPC version for rasdapy is still beta so options
parameter does not exist. Hence, it needs to update GRPC for rasdapy.
Rasdapy folder exists at rasdaman/applications/rasdapy
and what need to do first is installing GRPC for python:
sudo pip install grpcio-tools pip install -U protobuf (version 3.6)
There is a python script to generate GRPC files at rasdapy/scripts/stub_generator.py
, however, it needs to use some built GRPC tool, so don't use this one, use this new content: https://pastebin.com/Ha2EXLbk which will generate GRPC files from above installed Python dependencies.
After that, trying to figure out what changed from the current source code of current rasdapy using beta GRPC with new generated GRPC version.
Finally, rasql.py should be able to run any rasql query which can be larger than 4 MB.
Change History (6)
comment:1 by , 6 years ago
Priority: | minor → critical |
---|
comment:2 by , 6 years ago
Summary: | test rasdapy with export of large array → rasdapy fails on any query resulting in more than 4MB data |
---|
comment:3 by , 6 years ago
yes, GRPC set the maximum size of a message is 4 MB: https://github.com/googleapis/google-cloud-node/issues/1991, the question is how to fix it (is rasdaman server already supported chunking?)
comment:4 by , 6 years ago
I think it's chunked of in rasdaman otherwise the failure would be in the rasserver logs, not the python ones. But I'm not sure what the chunk size is in rasdaman. We set to unlimited the msg send/receive size in rasdaman, so maybe smth like this can be set in python as well?
grpc::ChannelArguments args; args.SetMaxReceiveMessageSize(-1); // unlimited args.SetMaxSendMessageSize(-1); // unlimited return args;
comment:5 by , 6 years ago
Description: | modified (diff) |
---|---|
Owner: | changed from | to
Status: | new → assigned |
comment:6 by , 6 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
I tested it and got this:
I tried a smaller subset, and it still failed with same error:
[0:1000,0:1000]
worked fine.That means rasdapy cannot receive more than 4MB array from rasdaman?