Large GDB, Long VV

RichardWright
RichardWright Posts: 10 Calcite Rank Badge
edited May 2023 in Oasis montaj
Hi Guys

I have Gx that converts a binary data file to a GDB. It works fine until i try making a VV longer then 268435456 (2^28) as soon as i get larger this this i get and exception :

Error Seeking File: At Offset (-XXXXXXX) from origin (0) an attempt was made to mode the pointer before the beginning of the file.
The Value XXXXX changes from run to run.

In order to even get this far i needed to create the GDB using a larger Page Size then mentioned in the documentation below is the function call i use

CDB.CreateEx(GdbOut, 1000, 150, 1170, 10, 100, "SUPER", "", 4096 * 64);

If i use the normal documented values the GDB is then limited to 2GB per channel. with the setting of 4096*64 the new GDB says it has a limit of 8GB per channel.

Once i have made a GDB i create a channel and the associated VV, fill the VV with a fixed value using SetRealN and then put the VV into the channel.

I slowly increased the length of the VV until i got and error this seems to be as soon as i made the VV longer then 268435456, by my calculations this is 8GB assuming doubles.

I then tested to see if it was not maybe my GX, i made a quick text file with the 268435456+ lines in it and tried importing with the Ascii import and got an error as well.

If i make multiple lines, i can make each line up to this limit with out any issue but i would like to avoid having to make multiple lines simply as this makes further processing steps more tedious.

Any help would great and much appreciated, should there be any thing i can supply in order to try help isolate my problem let me know.

Cheers
Richard

Tagged:

Comments

  • Hi Again

    I investigated further while trying to improve one of my other gx, i noticed that the limit of a byte array is 2147483591, if i divide this by 8 for doubles i get very close to the same limit of items as i described above.

    stackoverflow.com/questions/3944320/maximum-length-of-byte

    I would have to guess that internally the
    docs.geosoft.com/gxdev/8.5/dotnet/GXNet/html/M_GeoEngine_Core_GXNet_CVV_iGetData.htm
    or
    iSetData function is falling over when trying to access or create byte arrays larger then this limit.

    Any comments or ideas on how i could resolve this would be great .
  • Hi Richard,

    Can you please tell me the version of the GX Developer you are using? Would you be able to share your code with us (outside forum) so we can try to determine the source of the issue you are encountering?

    Thank you,
    Rhonda

    CRG | Geosoft
  • Hi Rhonda

    I ma using the GX developer 9Beta, i had similar issues with 8.5 but at the time did not go thru process of isolating them.

    I have no issue sharing the code what so ever, please just let me know how i should get it to you guys.

    Cheers
  • Thank you Richard, one of our developers will be in communication.
  • Hi Guys

    Thanks for the assistance and speed reply to my questions.

    As per emails i will for now just use the work around of making a new line should any one of my VV get larger then the max length of 2GB.

    Looking forward to this being increased in the future.

    cheers
This discussion has been closed.