Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
    Francesco Nigro
    @forked_franz_twitter
    I do not need that the data are correctly published there, but only to validate that the claim hasn't changed (on the consumer)
    Nitsan Wakart
    @nitsanw
    in which case it seems correct, but needs better doc
    Francesco Nigro
    @forked_franz_twitter
    It is a nasty trick sorry
    Nitsan Wakart
    @nitsanw
    IIUC you want to test message seq before/after read and if not changed you are good
    Francesco Nigro
    @forked_franz_twitter
    Exactly, Writing in the doc about the release/acquire logic could help?wdyt?
    Nitsan Wakart
    @nitsanw
    the thing to explain is that you need to stop the seq write from overtaking the data write
    I would still make it a store ordered
    so you have soFoo + storeFence to nail the particular store to the fence
    Francesco Nigro
    @forked_franz_twitter
    Yep, but on the On heap version of this channel the storeFence is not needed
    Nitsan Wakart
    @nitsanw
    I can't look at it right now...
    Francesco Nigro
    @forked_franz_twitter
    Np I'm just glad you've solved my dubt about this acquire/release, thanks :) Only last thing...
    This Off Heap version of multicast buffer...I want to do like the other off heap fixed size message ring buffers
    and makes some use of byte code generation..wdyt? makes sense?
    Francesco Nigro
    @forked_franz_twitter
    I've committed a version of the off heap multicast ring buffer that fakes the behaviour expected by org.jctools.channels.Channel and that does not fail while compiling using the original templates...
    The implementation is suboptimal and running the original ChannelThroughputBackoffNone against it produces very bad performances
    I've attached other JMH benchmarks that hit (and collect better metrics for my use case) the lower level API of the same ring buffer and produce better results:
    Francesco Nigro
    @forked_franz_twitter
    Now the results (using batch reading + Proxy) are similar to those that use the lower level API of the multicast channel
    Nitsan Wakart
    @nitsanw
    When you feel its ready, how about making it a PR? it makes for easier review...
    Francesco Nigro
    @forked_franz_twitter
    You're right Nitsan, sorry, I've to put proper documentation in the off-heap version too and I've had days pretty busy in y daily job :smile:
    Nitsan Wakart
    @nitsanw
    no rush, take your time
    KyleDKavanagh
    @KyleDKavanagh
    Hi, I've been taking a look at the SpscLinkedQueue impl recently and have a question about the fill methods. If I understand it correct, we first build up a chain of the new items, then we attach that chain to the existing linked queue and set the producer node to be the last item in the newly attached chain
    In the loop to assemble the new chain, the next node is set using an ordered store. Is it necessary for that store to be ordered? I would think that when building the chain an unprotected store will do, so long as when you attach the new chain to the linked queue you do the appropriate ordered stores
    Nitsan Wakart
    @nitsanw
    true
    Bojan Tomić
    @kaqqao
    Hey all.
    Is there any documentation/tutorials/quick-start/examples/anything for this project? The Github Wiki just redirects to README which contains 0 usage info...
    Francesco Nigro
    @franz1981
    @kaqqao For the most part it contains replacements of the standard Java Queue and ConcurrentMap (with retrictions listed in the javadocs of the single implementations)
    Bojan Tomić
    @kaqqao
    Oh, I see. It just implements the standard interfaces. Thanks!
    Francesco Nigro
    @franz1981
    @kaqqao yep, with some restrictions: https://github.com/JCTools/JCTools/blob/master/jctools-core/src/main/java/org/jctools/queues/MessagePassingQueue.java is a good start point to know the differences between these implementations and the Java' s vanilla ones
    @kaqqao eg No iterators are provided, thanks :+1:
    Vsevolod Tolstopyatov
    @qwwdfsad
    I used to create issue about best-effort FIFO queue, here is the apotheosis of it https://github.com/pramalhe/ConcurrencyFreaks/blob/master/papers/multilist-2017.pdf
    I don't know whether it's common when one needs very fast enqueues for the price of slower dequeues, but nevertheless ithe idea is pretty exciting and clear
    Aimed to be used to collect samples without backpressuring a (single) producer
    If anyone is interested I can push a PR with it :+1:
    Francesco Nigro
    @franz1981
    Hi guys! I'm writing here to get help with JCTools/JCTools#195: I will work on it on the weekend, but seems that something weird can happen with multiple producers are involved and is used a small capacity
    Francesco Nigro
    @franz1981
    HI! I was thinking to do some work around flat combining , using a Combiner (similar to this one here: https://github.com/franz1981/java-puzzles/blob/4b4b8bd023ffc0f9b9056e284c09a12d3c0b4ab3/src/main/java/red/hat/puzzles/combiner/OptimizedCombiner.java) to batch offers into a Spsc q (the combiner has the nice property that allow mutual exclusive batching) and compare it vs a Mpsc queue...@nitsanw did you have already looked at flat combining with this purpose in mind?
    Francesco Nigro
    @franz1981
    I have opened an issue on netty netty/netty#8390 to exploit batch offer capabilities of the JCTools queues: feel free to comment or give any feedbacks on it :)
    Francesco Nigro
    @franz1981
    @nitsanw do not esistate to contact me re the XADD queues..I'm trying to not get too attached to them, but I cannot "let them go" and became adults :)
    zagorulkinde
    @zagorulkinde
    He folks! Thank you for jstools it's really great! Do jstools provide something like priority queue?
    Francesco Nigro
    @franz1981
    Not that I remember any :)
    zagorulkinde
    @zagorulkinde
    Thanks! Whatt java version you use for performnce tests?
    zagorulkinde
    @zagorulkinde
    I've found that on java 11 does not possible to compile jctool-channels
    due to lack of unsafe
    Francesco Nigro
    @franz1981
    Personally I've used Java 8 with both G1GC and ParallelNew. Recently with Shenandoah
    and sometime with GraalVM too.
    @nitsanw probably has done more extentive perf tests with a wider matrixs of HW and java versions
    dmocek-o
    @dmocek-o

    Hello. I'm building JCTools v3.2.0. When I build, the release version show 3.1.1-SNAPSHOT.jar, not 3.2.0. I've tried building from both the main repository using the v3.2.0 tag and the JCTools v3.2.0 source.zip release available from the Releases page here on GitHub. I've followed the instructions on this page: http://jctools.github.io/JCTools/ and on the GitHub page: https://github.com/JCTools/JCTools. I also tried using 'mvn release:prepare/perform, which asks me the release version, but I would think the POM file would contain the correct version.

    How do I build v3.2.0?