Git Product home page Git Product logo

Comments (6)

mjpt777 avatar mjpt777 commented on June 21, 2024 1

ByteBuffer and byte arrays cannot be larger be larger than int capacity.

from agrona.

mjpt777 avatar mjpt777 commented on June 21, 2024 1

ByteBuffer and byte arrays cannot be larger be larger than int capacity.

That is, if Argon would like to support a ring buffer of this size, then the only option is to work with files directly (memory-mapped files, dev/shm, etc.)?

Mapped files in Java still return a ByteBuffer so still not possible. There are techniques that can be used which are unsupported in the JDK. We can provide commercial consulting on that but we do not provide it as free support in Agrona.

from agrona.

vyazelenko avatar vyazelenko commented on June 21, 2024 1

First of all as pointed out @mjpt777 the underlying size cannot exceed int (an actual value is Integer.MAX_VALUE - 8). That being said we could allow ExpandableDirectByteBufferto grow until that max value as oppose to 1GB.

If you need more than 2GB of storage you can use org.agrona.concurrent.MappedResizeableBuffer.

from agrona.

mikeb01 avatar mikeb01 commented on June 21, 2024

This would require changing all of the accessor methods that take in a index value and switch it from a int to a long. This in turn would break compatibility with the array backed implementations of the DirectBuffer.

from agrona.

clayly avatar clayly commented on June 21, 2024

This would require changing all of the accessor methods that take in a index value and switch it from a int to a long. This in turn would break compatibility with the array backed implementations of the DirectBuffer.

What do you think, are there other pitfalls besides compatibility that prevent the increase in the maximum size? Only this limitation does not allow using Aeron in our project, where the buffer size must be at least 60 gigabytes.

from agrona.

clayly avatar clayly commented on June 21, 2024

ByteBuffer and byte arrays cannot be larger be larger than int capacity.

That is, if Argon would like to support a ring buffer of this size, then the only option is to work with files directly (memory-mapped files, dev/shm, etc.)?

from agrona.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.