Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • May 23 2017 14:09

    jeremydmiller on dotnet

    Bumping to 0.2.13 (compare)

  • May 23 2017 14:07

    jeremydmiller on dotnet

    Add global.json file, bump stor… (compare)

  • May 23 2017 14:07
    jeremydmiller closed #12
  • Apr 27 2017 20:40
    joemcbride synchronize #12
  • Apr 27 2017 20:03
    joemcbride edited #12
  • Apr 27 2017 20:02
    joemcbride opened #12
  • Feb 03 2017 17:14

    CoreyKaylor on dotnet

    Added license (compare)

  • Nov 23 2016 14:01

    jeremydmiller on dotnet

    trying to harden the Queue disp… (compare)

  • Nov 08 2016 14:02

    jeremydmiller on dotnet

    tweaks to the logging, added In… (compare)

  • Sep 23 2016 16:34

    CoreyKaylor on dotnet

    Bumping version and LightningDB… (compare)

  • Sep 22 2016 23:06

    CoreyKaylor on dotnet

    Timeout slow clients (compare)

  • Sep 22 2016 22:01

    CoreyKaylor on dotnet

    Fixes for sending retries, adde… Hardening the sending error pol… (compare)

  • Sep 02 2016 18:54

    CoreyKaylor on dotnet

    Bumping version on lmdb storage (compare)

  • Sep 02 2016 18:48

    CoreyKaylor on dotnet

    Updated lmdb lib for bug fixes (compare)

  • Aug 29 2016 20:34

    CoreyKaylor on dotnet

    Updated LightningDB, fixed test… (compare)

  • Aug 20 2016 15:36

    CoreyKaylor on dotnet

    Bumping version (compare)

  • Aug 20 2016 15:31

    CoreyKaylor on dotnet

    Fixed incorrect logic on length… (compare)

  • Aug 20 2016 00:03

    CoreyKaylor on dotnet

    Bumping version (compare)

  • Aug 20 2016 00:02

    CoreyKaylor on dotnet

    More polish and some end-to-end… (compare)

  • Aug 15 2016 23:39

    CoreyKaylor on dotnet

    Added GetMessage for diagnostic… Bumping version (compare)

Corey Kaylor
@CoreyKaylor
Beginning work on the API overhaul to make everything *nix friendly. A BIG part of that is removing Esent and all of it’s entanglement in the original design. We’ll be storage engine agnostic, but the default will be the lmdb key/value storage library.
In addition, due to the large overhaul required to get away from Esent the API will likely take the form of Rx streams instead of the CRUD centric design it is today.
Luckily, if you were using LQ before 99% of the usage is around .Receive, or .ReceiveStream. This will make the switch to Rx fairly painless. The other more statistic related functions were error prone and inaccurate anyways. Hopefully we can exploit Rx streams to get more accuracy around this type of information. That will be a longer term goal though and the focus will be around sending and receiving message while keeping the durability guarantees that are there today.
Corey Kaylor
@CoreyKaylor
Pushed up an initial direction for what hopefully will be Rx streams from input on the incoming tcp connections, to streams on the outgoing tcp connections, each step in the processing will just attach itself to the observable stream and add it’s own projection for the stream, or expose it’s own new stream. Lots of details to flush out still, but next step will be ensuring the wire protocol still handles all the various error cases. Good news, this direction so far seems like it will be much easier to test than the older way.
Corey Kaylor
@CoreyKaylor
I should also add I’ve been 100% on the Mac with omnisharp and emacs for this work and plan to stay that way until I’m “done”. Been a really good experience so far.
Corey Kaylor
@CoreyKaylor
I’ve made good progress on this front. I can compose a reactive stream from the incoming tcp connections all the way out to a stream of LQ Messages and a simulated persistence as part of the stream composition. Unfortunately I’ve run into another mono issue with regard to how Rx uses Observable.FromAsync that will slow down my progress. I’m going to take a look at how far the core fx has come, but I believe it’s still missing some core pieces that I need for this to work.
Corey Kaylor
@CoreyKaylor
Looks like my lofty goals of staying on the Mac are gone. Due to more than one bug with mono I’m dropping back into the Windows VM for a while until those issues get sorted out. I am going to keep the emacs workflow with omnisharp going though so not a total fail.
Jeremy D. Miller
@jeremydmiller
When you do get to the Rx everywhere approach where we can do the SelectMany() to split by message type in the envelope, let’s reevaluate how FT does its listening. Maybe we ditch the Thread/Task polling and just tell the transports what the priorities are or how whether a message type/channel should be serialized or parallelized. Let the Transport do things the most efficient thing they can do and get rid of the generic code in FT.
Corey Kaylor
@CoreyKaylor
Agreed, Rx covers a lot of the complexity very declaratively and simplifies the threading quite a bit.
compile + full test run is around .17 sec
Corey Kaylor
@CoreyKaylor
Moving on to LMDB storage now. On a side note, it’s really nice to see MS projects supporting DllImport type stuff for xplat. Makes for a good reference point for some of the more complicated bits.
Corey Kaylor
@CoreyKaylor
Mostly finished up the work for LightningDB to make it dnx compatible. Moving on to the LQ integration pieces now.
Corey Kaylor
@CoreyKaylor
Woot! First test is passing first try on Mac with the new LightningDB nuget as a dependency.
Corey Kaylor
@CoreyKaylor
Latest push closes off the LMDB storage for at least the receiving side of the API. Going to start working on more of the public API next.
Andre Carlucci
@andrecarlucci
Hi guys, any tutorial somewhere?
Corey Kaylor
@CoreyKaylor
Not yet, I’ll be starting in on the docs next week when I get back from vacation. For now the best place to look is inside the tests.
Corey Kaylor
@CoreyKaylor
Had to put the Rx version on the backburner for a little bit. I probably won’t come back to it until Januaryish timeframe to write docs and put together more samples. I will try and stay up to date with the latest dnx releases as they come out though.
Christos Matskas
@cmatskas
hello
Corey Kaylor
@CoreyKaylor
Hello
Christos Matskas
@cmatskas
Hey buddy, thanks for your time :)
just a quick question.. Do we need a SharedTestDirectory for things to work?
this is what the queue uses in the constructor. How would this work across different platforms. Desktop vs mobile etc?
Corey Kaylor
@CoreyKaylor
The SharedTestDirectory is just an easier way for me to do setup and teardown rather than using a base class for everything.
Christos Matskas
@cmatskas
the library I'm working on needs to listen to messages but it's meant to be a PCL hence platform agnostic. Can this be an in memory object instead of the file system?
or did i get this totally wrong?