Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
    Alexandru Nedelcu
    @alexandru
    OK, so the app is probably doing a lot of blocking.
    Rüdiger Klaehn
    @rklaehn
    Yes, it is. Unfortunately.
    Rüdiger Klaehn
    @rklaehn
    Anyway, thanks a lot for your help!
    Alexandru Nedelcu
    @alexandru
    No problem. Cheers.
    Rüdiger Klaehn
    @rklaehn
    One more question: I think I have no choice but to give shade its own execution context. There are too many places in the codebase where there is blocking without BlockContext. So what kind of execution context would you recommend? Thread pool, FJ, ...?
    Lloyd
    @lloydmeta
    If the blocking is being done because of lots of short I/O tasks (such as Spymemcached blocking), and the blocking is happening in so many places that you can't fix them all, I would maybe recommend a CachedThreadpool : https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/Executors.html#newCachedThreadPool()
    that way you don't get stuck without a thread, old threads get reused when possible, etc
    Rüdiger Klaehn
    @rklaehn
    From looking at jstack it seems that spymemcached has its own thread for IO. So I used a Scheduler.computation(Runtime.getRuntime().availableProcessors()) for now.
    Lloyd
    @lloydmeta
    @alexandru maybe it's a good time to do another release?
    Let me know if you want me to prep a PR for that alexandru/shade@f06dc1b.
    Alexandru Nedelcu
    @alexandru
    @lloydmeta sure, but I'm at a conference, we'll do when I get back
    No PR for that commit needed
    Lloyd
    @lloydmeta
    ok, sounds good
    Alexandru Nedelcu
    @alexandru
    Lloyd
    @lloydmeta
    @alexandru I think it might be a good idea to release 1.7.4 with @mspielberg's new server-side incr/decr feature from #38 and perhaps my changes in #39
    Alexandru Nedelcu
    @alexandru
    @lloydmeta sorry for the late response, lets cut a new release
    Alexandru Nedelcu
    @alexandru
    Released version 1.7.4
    Lloyd
    @lloydmeta
    Cool :)
    Lloyd
    @lloydmeta
    @alexandru I think it might be good to cut a new release some time. There've been a few enhancements since the last release and we're now using Monix and 2.12.x is supported.
    Alexandru Nedelcu
    @alexandru
    Sure, I’m a little caught up with work right now; but when I have the time, maybe tonight, or tomorrow.
    Lloyd
    @lloydmeta
    Sounds good. No hurry btw.
    Alexandru Nedelcu
    @alexandru

    @/all version 1.8.0 is released: https://github.com/monix/shade/blob/master/release-notes/1.8.md

    Note that the organization has changed to io.monix, along with the GitHub move to monix/shade, so in order to update your dependencies you need this:

    "io.monix" %% "shade" % "1.8.0"
    Anton Vanco
    @thenobody

    Hi @alexandru I'm currently using the client to store compressed data in memcached and found that the Spy client integration is not allowing setting any flags (just hard-setting 0s). Would it be possible to expose this functionality? Possibly by extending the Codec interface as

    trait Codec[T] {
      def serialize(value: T, flags: Int): Array[Byte]
      def deserialize(data: Array[Byte], flags: Int): T
    }

    Thanks!

    Alexandru Nedelcu
    @alexandru
    Hi @thenobody - I’ll investigate what that means
    What do those flags specify?
    Anton Vanco
    @thenobody
    @alexandru thanks for looking into this! The flags are supposed to be just arbitrary "metadata" that describe the value stored under a given key. It's mentioned here https://github.com/memcached/memcached/blob/master/doc/protocol.txt (under the storage command description).
    Alexandru Nedelcu
    @alexandru
    @thenobody unfortunately this means changing the Codec
    Anton Vanco
    @thenobody
    yeah, that's what i was thinking
    i actually have made the changes in my fork
    i could create a PR if you'd like to take a look?
    Alexandru Nedelcu
    @alexandru
    @thenobody Sure, I’d like to see what you did.
    I’m currently toying with a refactoring, because I have the feeling that poking those internals isn’t needed anymore. It’s dirty and the whole point of accessing those internals, when I started this project, was that the Future objects returned by SpyMemcached where not exposing some kind of addListener, but now they do.
    Anton Vanco
    @thenobody
    ah, that's good to hear. deleting code is the best kind of refactoring :)
    Anton Vanco
    @thenobody
    @alexandru raised the PR monix/shade#49
    feel free to take a look if it makes sense. happy to make any changes if needed.
    Anton Vanco
    @thenobody
    hi @alexandru, i saw your PR for version 2.0 (which brings in the flag support). i was just wondering what's the current status of that release?
    Alexandru Nedelcu
    @alexandru
    Need to add/fix tests, have been procrastinating.
    Anton Vanco
    @thenobody
    i see :D
    need any help?
    Alexandru Nedelcu
    @alexandru
    Well, if you could help me out with those tests, it would be great :)
    Anton Vanco
    @thenobody
    anything in particular or just fix those that are broken?
    Alexandru Nedelcu
    @alexandru
    Well, this PR isn’t a small change, because I got rid of the internals we had, as they were tricky and at some point SpyMemcached started supporting listeners for completed futures, etc… so there are some interface changes and the tests we had are broken and need to be ported.
    Anton Vanco
    @thenobody
    alrighty
    i'll see what i can do
    Lloyd
    @lloydmeta
    @alexandru can you cut a release? Been wanting to get monix/shade@409e823 on stable for a while
    Alexandru Nedelcu
    @alexandru
    @lloydmeta I'm away this week, coming back next Sunday, so unfortunately I can't. But when I'll return, I'll set the project up for Travis-enabled publishing, since I figured out how.