Thank you for clarification.
Omid
On Jan 12, 2017 17:43, "Karan, Cem F CIV USARMY RDECOM ARL (US)" <
cem.f.karan.civ@xxxxxxxx> wrote:
Omid, I'm not entirely sure what you're arguing for. I think you're
arguing that a really good messaging library cannot solve problems caused
by a poorly designed system. I think we're all in agreement about that.
The message thread below was about a very specific portion of libnng's
code, where Garrett asked us what our typical use cases were like so he
could select a solution that fit actual use cases, rather than any
potential use case. Trying to optimize for cases that are not in the real
world, and not likely to be in the real world any time soon is pointless.
Thanks,
Cem Karan
-----Original Message-----On Behalf Of omid shahraki
From: nanomsg-bounce@xxxxxxxxxxxxx [mailto:nanomsg-bounce@xxxxxxxxxxxxx]
Sent: Thursday, January 12, 2017 7:08 AMthe identity of the sender, and confirm the authenticity of all links
To: nanomsg@xxxxxxxxxxxxx
Subject: [nanomsg] Re: [Non-DoD Source] status update libnng
All active links contained in this email were disabled. Please verify
contained within the message prior to copying and pasting the address toa Web browser.
and try to figure it out more in detail. Consider an enterprise
________________________________
Hi guys,
Considering performance issue, I think we need to start asking questions
including all architectural elements, systems / sub-systems / components/ modules / processes and all the way down to functional units
which plenty of resources (tangible and intangible) dedicated to make ithappen. Let's take this as a holographic universe in our mind and
ask "Could there be a demand for a performance monitoring pattern to getfit in that enterprise without having major impacts? If there
could be a demand, as a Hypothesis, how it could be rejected? If not,what we are going to exchange for this opportunity or what would
be the opportunity cost for such decision making?..."pattern building but it is about designing in a SMART way. Ans you
It is not only about "inproc" which could be used in local structural
already know about that! Measurement as one of its core elements shineout when we encounter bottle-necks by which whole enterprise
could experience risk that no compensation overseen for it.is just one of the problem solvents in solution space.
Are you paying attention?
It is not always about speed. How fast is fast? Is it really fast? Speed
cem.f.karan.civ@xxxxxxxx < Caution-
Omid Shahraki
------------------------------------------------------------------
On Jan 6, 2017 22:25, "Karan, Cem F CIV USARMY RDECOM ARL (US)" <
mailto:cem.f.karan.civ@xxxxxxxx ;> > wrote:suspect that once subscriptions are set up, they will stay stable
Sounds good. I agree that arrays are the fastest method, and I
over long time periods. So, yes, **in theory** an array is worse than aPatricia tree, etc., but I expect that in practice the arrays will win
big.nanomsg-bounce@xxxxxxxxxxxxx > [Caution-mailto:nanomsg-
Thanks,
Cem Karan
> -----Original Message-----
> From: nanomsg-bounce@xxxxxxxxxxxxx < Caution-mailto:
bounce@xxxxxxxxxxxxx < Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx ;> ]On Behalf Of Garrett D'Amore
> Sent: Friday, January 06, 2017 1:33 PMverify the identity of the sender, and confirm the authenticity of all
> To: nanomsg@xxxxxxxxxxxxx < Caution-mailto:nanomsg@xxxxxxxxxxxxx
> Subject: [nanomsg] Re: [Non-DoD Source] status update libnng
>
> All active links contained in this email were disabled. Please
linksaddress to a Web browser.
> contained within the message prior to copying and pasting the
>cooler, is that using an array, I can use a binary search to get filtering
>
> ________________________________
>
>
>
> Oh, I convinced myself that an array is better. What’s even
> operations back to O(log(n)). Changing subscriptions will stillbe somewhat expensive, but I think that won’t be too bad since I
can reducebasically a pointer and a size (at most 16 bytes total typically) per
> it to the cost of memcpy(), where the size being copied is
subscription.16k when you change the subscription. But most of the time
> This means if you have 1000 subscriptions I might have to memcpy
we’ll be(Allocations are still an issue, but I think I can keep that down to
> looking at shuffling around a couple of hundred bytes at most.
minimumfind we need more.)
> — preallocating 16 slots or so to start, and doubling each we
>ARL (US) <cem.f.karan.civ@xxxxxxxx < Caution-
> On Fri, Jan 6, 2017 at 10:19 AM, Karan, Cem F CIV USARMY RDECOM
mailto:cem.f.karan.civ@xxxxxxxx ;> < Caution-cem.f.karan.civ@xxxxxxxx > > > wrote:
> Caution-mailto:cem.f.karan.civ@xxxxxxxx ;< Caution-mailto:
>somewhat simpler testing; whether or not an array/list/Patricia tree
>
> I agree with what you're saying, but I was thinking of
arepoint out, really, really complicated to test.
> better in the real world. The higher-order stuff is, as you
>nanomsg-bounce@xxxxxxxxxxxxx > < Caution-Caution-
> Thanks,
> Cem Karan
>
> > -----Original Message-----
> > From: nanomsg-bounce@xxxxxxxxxxxxx < Caution-mailto:
mailto:nanomsg-bounce@xxxxxxxxxxxxx ;< Caution-mailto:nanomsg-bounce@freelists.org > > [Caution-Caution-mailto:nanomsg- ;<
Caution-mailto:nanomsg- ;>Caution-Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx ;<
> bounce@xxxxxxxxxxxxx < Caution-mailto:bounce@xxxxxxxxxxxxx ;> <
Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx ;> > ] On Behalf Of GarrettD'Amore
> > Sent: Friday, January 06, 2017 11:30 AMfreelists.org > < Caution-Caution-mailto:nanomsg@xxxxxxxxxxxxx ;<
> > To: nanomsg@xxxxxxxxxxxxx < Caution-mailto:nanomsg@
Caution-mailto:nanomsg@xxxxxxxxxxxxx ;> >libnng
> > Subject: [nanomsg] Re: [Non-DoD Source] status update
> >Please verify the identity of the sender, and confirm the authenticity
> > All active links contained in this email were disabled.
of allpasting the address to a Web browser.
> links
> > contained within the message prior to copying and
> >harder to use generically.
> >
> > ________________________________
> >
> >
> >
> > Performance statistics are hard to gather somewhat, and
> >entire latency; really you want to modify the wire protocol to carry
> > The difficulty of gathering is that you need to measure
> timestamps.depth, etc.
> > Some performance data we can report, such as queue
> >applications are so wildly different that what might be perfectly normal
> > The difficulty of use is that everyone’s system and
forperformance-related bug analysis, I can recall precisely one user over he
> one user
> > might be tragically bad for another.
> >
> > In actuality, there has been very little demand for
yearstime was “I don’t care”. (Because inproc performance was never
> griping
> > about inproc performance vs. ZMQ. My response at the
> terriblyworld use, and I also had bigger fish to fry around trying to fix the MT-
> > important to me since I don’t think it sees much real
> safety things incouldn’t figure out how to make libnanomsg’s inproc completely thread-
> > inproc. libnng is me basically giving up on that. I
safearchitecture made passing data across the different sockets (which had
> without
> > completely trashing the performance. The FSM
differentRDECOM ARL (US) <cem.f.karan.civ@xxxxxxxx < Caution-
> lock
> > hierarchies) too damned difficult.
> >
> > On Fri, Jan 6, 2017 at 7:00 AM, Karan, Cem F CIV USARMY
mailto:cem.f.karan.civ@xxxxxxxx ;> < Caution-cem.f.karan.civ@xxxxxxxx > > < Caution-
> Caution-mailto:cem.f.karan.civ@xxxxxxxx ;< Caution-mailto:
> > Caution-Caution-mailto:cem.f.karan.civ@xxxxxxxx ;<Caution-mailto:cem.f.karan.civ@xxxxxxxx ;> < Caution-Caution-
mailto:cem.f.karan.civ@xxxxxxxx ;< Caution-mailto:cem.f.karan.civ@xxxxxxxx > > > > wrote:
> >adding statistics gathering code; have you considered adding code
> >
> > You were mentioning that you were planning on
thatsend you bug reports that include those statistics, which would let
> gathers
> > performance statistics as well? As end users we could
youCaution-mailto:nanomsg-bounce@xxxxxxxxxxxxx ;> < Caution-Caution-
> know if it’s a
> > problem or not.
> >
> > Thanks,
> > Cem Karan
> >
> > > -----Original Message-----
> > > From: nanomsg-bounce@xxxxxxxxxxxxx <
mailto:nanomsg-bounce@xxxxxxxxxxxxx ;< Caution-mailto:nanomsg-bounce@freelists.org > > < Caution-Caution-
> Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx ;< Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx > < Caution-Caution-
mailto:nanomsg-bounce@xxxxxxxxxxxxx ;< Caution-mailto:nanomsg-bounce@freelists.org > > > [Caution-Caution-Caution-
mailto:nanomsg- ;< Caution-mailto:nanomsg- ;> <freelists.org > < Caution-Caution-mailto:bounce@xxxxxxxxxxxxx ;< Caution-
> Caution-Caution-mailto:nanomsg- ;< Caution-mailto:nanomsg- ;> >
> > bounce@xxxxxxxxxxxxx < Caution-mailto:bounce@
mailto:bounce@xxxxxxxxxxxxx ;> > < Caution-Caution-Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx < Caution-mailto:nanomsg-
bounce@xxxxxxxxxxxxx > <Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx ;> > > ] On Behalf Of
> Caution-Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx ;<
Garrett D'Amorenanomsg@xxxxxxxxxxxxx > < Caution-Caution-
> > > Sent: Thursday, January 05, 2017 1:37 PM
> > > To: nanomsg@xxxxxxxxxxxxx < Caution-mailto:
mailto:nanomsg@xxxxxxxxxxxxx ;< Caution-mailto:nanomsg@xxxxxxxxxxxxx ;>nanomsg@xxxxxxxxxxxxx > > >
< Caution-Caution-Caution-mailto:nanomsg@xxxxxxxxxxxxx ;<
Caution-mailto:nanomsg@xxxxxxxxxxxxx ;> <
> Caution-Caution-mailto:nanomsg@xxxxxxxxxxxxx ;< Caution-mailto:
> > > Subject: [nanomsg] Re: [Non-DoD Source] statusupdate libnng
> > >disabled. Please verify the identity of the sender, and confirm the
> > > All active links contained in this email were
authenticityand pasting the address to a Web browser.
> of all
> > links
> > > contained within the message prior to copying
> > >more than a few hundred of these things, I’ll switch to an array.
> > >
> > > ________________________________
> > >
> > >
> > >
> > > I could certainly make it an array. :-)
> > >
> > > If it seems to be universal that nobody needs
> > >times as I was about the O(n) vs O(log(n)) thing though. If we know that
> > > I wasn’t so much worried about list traversal
O(n)going to be superior. One thing about an array, is that if I keep it
> is
> > good
> > > enough, then certainly an array is probably
sorted,
thenI’ll have to shuffle on average half the items in the array. I’m assuming
> > subscribe
> > > operations will become more expensive, since
> > subscriptionarrive. (I’d really like to know if anyone has an application where
> > > changes occur less frequently than messages
changes tosensitive operation.)
> > subscriptions —
> > > subscribe/unsubscribe — is a performance
> > >danielcccc@xxxxxxxxx < Caution-mailto:danielcccc@xxxxxxxxx ;> <
> > > - Garrett
> > >
> > >
> > > On Thu, Jan 5, 2017 at 10:23 AM, Daniel C <
Caution-Caution-mailto:danielcccc@xxxxxxxxx ;< Caution-mailto:danielcccc@gmail.com > > < Caution-
> Caution-Caution-mailto:danielcccc@xxxxxxxxx ;< Caution-mailto:danielcccc@xxxxxxxxx > < Caution-Caution-
mailto:danielcccc@xxxxxxxxx ;< Caution-mailto:danielcccc@xxxxxxxxx ;> >Caution-mailto:danielcccc@xxxxxxxxx ;> < Caution-Caution-
< Caution-
> > Caution-Caution-Caution-mailto:danielcccc@xxxxxxxxx ;<
mailto:danielcccc@xxxxxxxxx ;< Caution-mailto:danielcccc@xxxxxxxxx ;> >< Caution-Caution-
> Caution-mailto:danielcccc@xxxxxxxxx ;< Caution-mailto:danielcccc@gmail.com > < Caution-Caution-
mailto:danielcccc@xxxxxxxxx ;< Caution-mailto:danielcccc@xxxxxxxxx ;> >faster. N definitely less than 10 or 20 in my case.
> > wrote:
> > >
> > >
> > > I agree with Jason; an array would be
> > >Aten <j.e.aten@xxxxxxxxx < Caution-mailto:j.e.aten@xxxxxxxxx ;> <
> > >
> > > Dan
> > >
> > >
> > > On Thu, Jan 5, 2017 at 7:58 AM, Jason E.
Caution-Caution-mailto:j.e.aten@xxxxxxxxx ;< Caution-mailto:j.e.aten@xxxxxxxxx > > < Caution-
> Caution-Caution-mailto:j.e.aten@xxxxxxxxx ;< Caution-mailto:j.e.aten@xxxxxxxxx > < Caution-Caution-
mailto:j.e.aten@xxxxxxxxx ;< Caution-mailto:j.e.aten@xxxxxxxxx ;> > >< Caution-
> > Caution-Caution-Caution-mailto:j.e.aten@xxxxxxxxx ;<Caution-mailto:j.e.aten@xxxxxxxxx ;> < Caution-Caution-
mailto:j.e.aten@xxxxxxxxx ;< Caution-mailto:j.e.aten@xxxxxxxxx ;> > <Caution-Caution-
> Caution-mailto:j.e.aten@xxxxxxxxx ;< Caution-mailto:j.e.aten@xxxxxxxxx > < Caution-Caution-mailto:j.e.aten@xxxxxxxxx ;<
Caution-mailto:j.e.aten@xxxxxxxxx ;> > > > > wrote:an array to be much faster than a linked list.
> > >
> > >
> > > For a small N < 10, I would expect
> > >about 3.
> > > My typical use is for small N,
> > >Garrett D'Amore <garrett@xxxxxxxxxx < Caution-
> > > On Thu, Jan 5, 2017 at 4:52 AM,
mailto:garrett@xxxxxxxxxx ;> < Caution-Caution-mailto:garrett@xxxxxxxxxx< Caution-mailto:garrett@xxxxxxxxxx ;> >
> < Caution-Caution-Caution-mailto:garrett@xxxxxxxxxx ;<Caution-mailto:garrett@xxxxxxxxxx ;> < Caution-Caution-
mailto:garrett@xxxxxxxxxx ;< Caution-mailto:garrett@xxxxxxxxxx ;> > > <org < Caution-mailto:garrett@xxxxxxxxxx ;> < Caution-Caution-
>
> > Caution-Caution-Caution-Caution-mailto:garrett@damore.
mailto:garrett@xxxxxxxxxx ;< Caution-mailto:garrett@xxxxxxxxxx ;> > <Caution-Caution-
> Caution-mailto:garrett@xxxxxxxxxx ;< Caution-mailto:garrett@xxxxxxxxxx > < Caution-Caution-mailto:garrett@xxxxxxxxxx ;<
Caution-mailto:garrett@xxxxxxxxxx ;> > > > > wrote:close() vs. accept() is such a non-portable nightmare. I almost went down
> > >
> > >
> > > TCP works now. OMG,
the
path ofis now averted. I never realized just how broken the use of UNIX file
> > > pthread cancellation. Thankfully, that crisis
> descriptors inits working now . Thank goodness for shutdown(2) and dup2().
> > the face of
> > > close() and multiple threads really are. But
> > >TCP and inproc, and I’ve started PUB/SUB. Sub is actually done, untested.
> > > There’s a test suite for
> > >finishing up the remaining protocols and IPC before the weekend.
> > > I give 50/50 odds on me
> > >the weekend is writing the eventing framework (necessary for file descriptor
> > > What won’t happen before
> basedframework. And Windows will probably happen next week. I’ve designed this
> > > notifications for example), or statistics
suchfast.
> that I
> > think I
> > > will be able to crank out Windows stuff super
> > >PUB/SUB. I’ve for now used a simple sorted linked list for subscriptions.
> > > One question about
My instinct
isonly sufficient, but probably superior to a patricia tree; I think most of
> that
> > > for the vast vast majority of folks, this is not
us onlysubscriber at any given time. That said, I’m keen to hear of actual uses of
> > maintain
> > > around a dozen or so subscriptions on any
> nanomsgwith over several hundred active subscriptions on a given end node.
> > where the
> > > patricia tree makes a real difference — cases
(Notemany clients — thousands — each having dozens of subscriptions —
> that
> > this is only
> > > on the the end node; a server can service many
withlist means that filtering messages is now an O(n) instead of O(log(n))
> zero
> > negative
> > > impact in my design.)
> > >
> > > To be clear, the linked
operation
(wherethat for small values of n, the linked list approach I’ve taken is faster.
> n is
> > > the number of active subscriptions); I suspect
I
havepulling in a patricia tree if there is need. (I didn’t yank Martin’s old
> > implemented
> > > this way for now for expediency, but I’m open to
codebring it into the new code base — I haven’t had time to be certain of
> > because I want
> > > to make sure I thoroughly understand it before I
that2:18 AM, Garrett D'Amore <garrett@xxxxxxxxxx < Caution-
> yet.
> > >
> > >
> > > On Wed, Jan 4, 2017 at
mailto:garrett@xxxxxxxxxx ;> < Caution-garrett@xxxxxxxxxx > > < Caution-Caution-Caution-
> Caution-mailto:garrett@xxxxxxxxxx ;< Caution-mailto:
mailto:garrett@xxxxxxxxxx ;< Caution-mailto:garrett@xxxxxxxxxx ;> <Caution-Caution-mailto:garrett@xxxxxxxxxx ;< Caution-
mailto:garrett@xxxxxxxxxx ;> > >org < Caution-mailto:garrett@xxxxxxxxxx ;> < Caution-
>
> > < Caution-Caution-Caution-Caution-mailto:garrett@damore.
Caution-mailto:garrett@xxxxxxxxxx ;< Caution-mailto:garrett@xxxxxxxxxxgarrett@xxxxxxxxxx > < Caution-Caution-mailto:garrett@xxxxxxxxxx ;<
> < Caution-Caution-
> Caution-mailto:garrett@xxxxxxxxxx ;< Caution-mailto:
Caution-mailto:garrett@xxxxxxxxxx ;> > > >committed the initial swag at TCP. Turns out it was bit more code than
> > > > wrote:
> > >
> > >
> > > I’ve just
anticipated, as I
want todifferent platforms that might have different ways to resolve names,
> > > support TCPv4 and TCPv6, and properly support
orwrite the winsock code later.
> handle
> > low level
> > > TCP details. This should make it really fast to
> > >abstract the details so that transports that want to build on top of TCP
> > > I’ve also tried to
(e.g.
websocketbut you can look at the last commit if you want to see what I’m up to. The
> > > or TLS) can do so easily.
> > >
> > >
> > > Totally untested,
main
> missingis support for some of the richer TCP options — e.g. KEEPALIVEs etc. I am
> > > thing (besides testing that it actually works)
> disablinghave no business wanting Nagle turned on. (And I’ve taken care to use
> > Nagle by
> > > default, because I think 99% of nanomsg users
> writev topossible. This is something that sadly isn’t possible using Go….)
> > avoid
> > > splitting writes up across separate packets when
> > >2017 at 10:54 AM, Karan, Cem F CIV USARMY RDECOM ARL (US)
> > > On Tue, Jan 3,
> > > <cem.f.karan.civ@xxxxxxxx < Caution-mailto:cem.f.karan.civ@xxxxxxxx > < Caution-Caution-
mailto:cem.f.karan.civ@xxxxxxxx ;< Caution-mailto:cem.f.karan.civ@xxxxxxxx > > < Caution-Caution-
> Caution-mailto:cem.f.karan.civ@xxxxxxxx ;< Caution-mailto:cem.f.karan.civ@xxxxxxxx > < Caution-Caution-
mailto:cem.f.karan.civ@xxxxxxxx ;< Caution-mailto:cem.f.karan.civ@xxxxxxxx > > > < Caution-Caution-Caution-
> Caution-mailto:cem.f.karan.civ@xxxxxxxx ;< Caution-mailto:cem.f.karan.civ@xxxxxxxx > < Caution-Caution-
mailto:cem.f.karan.civ@xxxxxxxx ;< Caution-mailto:cem.f.karan.civ@xxxxxxxx > > <
> > Caution-Caution-Caution-mailto:cem.f.karan.civ@xxxxxxxx< Caution-mailto:cem.f.karan.civ@xxxxxxxx ;> < Caution-
Caution-mailto:cem.f.karan.civ@xxxxxxxx ;< Caution-mailto:cem.f.karan.civ@xxxxxxxx > > > > > wrote:
> > >brain glitched and forgot that inproc is a thing; for some reason I thought
> > >
> > > Got it, my
you were
> > > building out your own TCP stack, which wouldhave made me... concerned. ;)
> > >-----Original Message-----
> > > Thanks,
> > > Cem Karan
> > >
> > > >
> > > > From:nanomsg-bounce@xxxxxxxxxxxxx < Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx
<nanomsg-bounce@xxxxxxxxxxxxx > > <
Caution-Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx ;< Caution-mailto:
> Caution-Caution-Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx ;<Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx ;> < Caution-
Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx ;< Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx > > > < Caution-
> > Caution-Caution-Caution-mailto:nanomsg-bounce@freelists.org < Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx ;> <
Caution-Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx ;< Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx > > < Caution-Caution-
> Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx ;< Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx > < Caution-Caution-
mailto:nanomsg-bounce@xxxxxxxxxxxxx ;< Caution-mailto:nanomsg-bounce@freelists.org > > > >
> > > [Caution-Caution-Caution-Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx < Caution-mailto:nanomsg-
bounce@xxxxxxxxxxxxx > < Caution-Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx < Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx ;> >
<
> Caution-Caution-Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx ;<Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx ;> < Caution-
Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx ;< Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx > > > < Caution-Caution-
> > Caution-Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx ;<Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx ;> < Caution-
Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx ;< Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx > > < Caution-Caution-
> Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx ;< Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx > < Caution-Caution-
mailto:nanomsg-bounce@xxxxxxxxxxxxx ;< Caution-mailto:nanomsg-bounce@freelists.org > > > > ] On Behalf Of Garrett D'Amore
> > > > Sent:Tuesday, January 03, 2017 1:23 PM
> >nanomsg@xxxxxxxxxxxxx < Caution-mailto:nanomsg@xxxxxxxxxxxxx ;> <
> > > > To:
Caution-Caution-
mailto:nanomsg@xxxxxxxxxxxxx ;< Caution-mailto:nanomsg@xxxxxxxxxxxxx ;>freelists.org > < Caution-Caution-
< Caution-Caution-
> Caution-mailto:nanomsg@xxxxxxxxxxxxx ;< Caution-mailto:nanomsg@
mailto:nanomsg@xxxxxxxxxxxxx ;< Caution-mailto:nanomsg@xxxxxxxxxxxxx ;>Caution-mailto:nanomsg@xxxxxxxxxxxxx ;> < Caution-Caution-
> < Caution-Caution-
> > Caution-Caution-mailto:nanomsg@xxxxxxxxxxxxx ;<
mailto:nanomsg@xxxxxxxxxxxxx ;< Caution-mailto:nanomsg@xxxxxxxxxxxxx ;>freelists.org > < Caution-Caution-
< Caution-Caution-
> Caution-mailto:nanomsg@xxxxxxxxxxxxx ;< Caution-mailto:nanomsg@
mailto:nanomsg@xxxxxxxxxxxxx ;< Caution-mailto:nanomsg@xxxxxxxxxxxxx ;>[nanomsg] Re: [Non-DoD Source] status update libnng
> >
> > > > Subject:
> > > >active links contained in this email were disabled. Please verify the
> > > > All
identity of the sender,
> > > and confirm the authenticity of all linkscontained within the message prior to copying and pasting the address to a
> > > >
Web browser.
> > > >________________________________
> > > >
> > > >
> > > >about 24 hours from having TCP working. Right now the TCP transport is not
> > > >
> > > >
> > > > I’m
written,
> > > though I’ve written a fair bit of it locally.REQ/REP pattern is working now, as is PAIR, and inproc is working quit well
> > > >
> > > > The
and totally
> > > thread safe.as lockless algorithms go — I’m a big believer in mutexes. I need mutexes
> > > >
> > > > As far
and
conditionexperience if they are used sensibly (with minimal contention), they do not
> > > variables to make things work well, and in
> > > > my
significantly
> > > impact performance.things lockless data structures are superior, but you have to have use
> > > >
> > > > For some
cases that
workhave to think about this; they Just Work.
> > > for them; with mutexes and condvars I
> > > > don’t
> > > >be useful to look at alternative designs for that in the future, but I’m
> > > > It may
only going to do
> > > that once I’ve demonstrated a clear need or(or maybe someone else will contribute at that point). Until then, I need
> > > > benefit
to focus on
> > > getting the code working with a sensibleand avoid prematurely optimizing things.
> > > > design
> > > >Garrett
> > > > -
> > > >Jan 3, 2017 at 6:45 AM, Karan, Cem F CIV USARMY RDECOM ARL (US)
> > > >
> > > > On Tue,
> >cem.f.karan.civ@xxxxxxxx > < Caution-Caution-
> > > <cem.f.karan.civ@xxxxxxxx < Caution-mailto:
mailto:cem.f.karan.civ@xxxxxxxx ;< Caution-mailto:cem.f.karan.civ@xxxxxxxx > > < Caution-Caution-
> Caution-mailto:cem.f.karan.civ@xxxxxxxx ;< Caution-mailto:cem.f.karan.civ@xxxxxxxx > < Caution-Caution-
mailto:cem.f.karan.civ@xxxxxxxx ;< Caution-mailto:cem.f.karan.civ@xxxxxxxx > > > < Caution-Caution-Caution-
> Caution-mailto:cem.f.karan.civ@xxxxxxxx ;< Caution-mailto:cem.f.karan.civ@xxxxxxxx > < Caution-Caution-
mailto:cem.f.karan.civ@xxxxxxxx ;< Caution-mailto:cem.f.karan.civ@xxxxxxxx > > <
> > Caution-Caution-Caution-mailto:cem.f.karan.civ@xxxxxxxx< Caution-mailto:cem.f.karan.civ@xxxxxxxx ;> < Caution-
Caution-mailto:cem.f.karan.civ@xxxxxxxx ;< Caution-mailto:cem.f.karan.civ@xxxxxxxx > > > > < Caution-
> > > >Caution-Caution-Caution-Caution-mailto:cem.f.karan.civ@xxxxxxxx ;< Caution-
mailto:cem.f.karan.civ@xxxxxxxx ;> < Caution-cem.f.karan.civ@xxxxxxxx > > < Caution-Caution-Caution-
> Caution-mailto:cem.f.karan.civ@xxxxxxxx ;< Caution-mailto:
mailto:cem.f.karan.civ@xxxxxxxx ;< Caution-mailto:cem.f.karan.civ@xxxxxxxx > < Caution-Caution-mailto:cem.f.karan.civ@xxxxxxxx ;<
Caution-mailto:cem.f.karan.civ@xxxxxxxx ;> > > <civ@xxxxxxxx < Caution-mailto:cem.f.karan.civ@xxxxxxxx ;> <
> > Caution-Caution-Caution-Caution-mailto:cem.f.karan.
Caution-Caution-mailto:cem.f.karan.civ@xxxxxxxx ;< Caution-mailto:cem.f.karan.civ@xxxxxxxx > > < Caution-Caution-
> Caution-mailto:cem.f.karan.civ@xxxxxxxx ;< Caution-mailto:cem.f.karan.civ@xxxxxxxx > < Caution-Caution-
mailto:cem.f.karan.civ@xxxxxxxx ;< Caution-mailto:cem.f.karan.civ@xxxxxxxx > > > > > >
> > > wrote:-----Original Message-----
> > > >
> > > >
> > > > >
> > > > >From: nanomsg-bounce@xxxxxxxxxxxxx < Caution-mailto:nanomsg-bounce@
freelists.org
Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx ;> > << Caution-Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx ;<
> Caution-Caution-Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx ;<Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx ;> < Caution-
Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx ;< Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx > > > <
> > Caution-Caution-Caution-Caution-mailto:nanomsg-bounce@freelists.org < Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx
Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx ;> > < Caution-< Caution-Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx ;<
> Caution-Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx ;<Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx ;> < Caution-Caution-
mailto:nanomsg-bounce@xxxxxxxxxxxxx ;< Caution-mailto:nanomsg-bounce@freelists.org > > > >
> > > < Caution-Caution-Caution-Caution-Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx ;< Caution-mailto:
nanomsg-
bounce@xxxxxxxxxxxxx > < Caution-Caution-mailto:nanomsg- ;<Caution-mailto:nanomsg- ;>
> bounce@xxxxxxxxxxxxx < Caution-mailto:bounce@xxxxxxxxxxxxx ;>Caution-Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx ;<
< Caution-Caution-Caution-mailto:nanomsg-
bounce@xxxxxxxxxxxxx < Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx ;> <
Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx ;> > > <freelists.org < Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx ;> <
> Caution-
> > Caution-Caution-Caution-mailto:nanomsg-bounce@
Caution-Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx ;< Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx > > < Caution-Caution-
> Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx ;< Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx > < Caution-Caution-
mailto:nanomsg-bounce@xxxxxxxxxxxxx ;< Caution-mailto:nanomsg-bounce@freelists.org > > > > > [Caution-Caution-
> > > Caution-Caution-Caution-mailto:nanomsg- ;<Caution-mailto:nanomsg- ;> < Caution-Caution-mailto:nanomsg- ;<
Caution-mailto:nanomsg- ;> > < Caution-Caution-Caution-mailto:nanomsg-< Caution-mailto:nanomsg- ;> < Caution-
> Caution-mailto:nanomsg- ;< Caution-mailto:nanomsg- ;> > > <Caution-Caution-Caution-Caution-mailto:nanomsg- ;< Caution-
mailto:nanomsg- ;> < Caution-Caution-mailto:nanomsg- ;< Caution-mailto:nanomsg- > > < Caution-Caution-Caution-mailto:nanomsg- ;<
Caution-mailto:nanomsg- ;> <bounce@xxxxxxxxxxxxx < Caution-mailto:bounce@xxxxxxxxxxxxx ;> <
> Caution-Caution-mailto:nanomsg- ;< Caution-mailto:nanomsg- ;> >
>
> > > >
Caution-Caution-
mailto:bounce@xxxxxxxxxxxxx ;< Caution-mailto:bounce@xxxxxxxxxxxxx ;> >< Caution-Caution-
> Caution-mailto:bounce@xxxxxxxxxxxxx ;< Caution-mailto:bounce@freelists.org > < Caution-Caution-mailto:bounce@xxxxxxxxxxxxx ;<
Caution-mailto:bounce@xxxxxxxxxxxxx ;> > > < Caution-Caution-Caution-mailto:bounce@xxxxxxxxxxxxx ;> < Caution-Caution-
> > Caution-Caution-mailto:bounce@xxxxxxxxxxxxx ;<
mailto:bounce@xxxxxxxxxxxxx ;< Caution-mailto:bounce@xxxxxxxxxxxxx ;> >< Caution-Caution-Caution-mailto:bounce@xxxxxxxxxxxxx ;<
Caution-mailto:bounce@xxxxxxxxxxxxx ;> <bounce@xxxxxxxxxxxxx > > > > < Caution-Caution-
> Caution-Caution-mailto:bounce@xxxxxxxxxxxxx ;< Caution-mailto:
> > > Caution-Caution-Caution-mailto:nanomsg-bounce@freelists.org < Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx ;> <
Caution-Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx ;< Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx > > < Caution-
> Caution-Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx ;<Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx ;> < Caution-Caution-
mailto:nanomsg-bounce@xxxxxxxxxxxxx ;< Caution-mailto:nanomsg-bounce@freelists.org > > > < Caution-Caution-
> > Caution-Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx ;<Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx ;> < Caution-
Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx ;< Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx > > < Caution-Caution-
> Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx ;< Caution-mailto:nanomsg-bounce@xxxxxxxxxxxxx > < Caution-Caution-
mailto:nanomsg-bounce@xxxxxxxxxxxxx ;< Caution-mailto:nanomsg-bounce@freelists.org > > > > > ] On Behalf Of Garrett D'Amore
> > > > >Sent: Monday, December 26, 2016 2:46 AM
> > >To: nanomsg@xxxxxxxxxxxxx < Caution-mailto:nanomsg@xxxxxxxxxxxxx ;> <
> > > > >
Caution-
Caution-mailto:nanomsg@xxxxxxxxxxxxx ;< Caution-mailto:nanomsg@freelists.org > > < Caution-Caution-
> Caution-mailto:nanomsg@xxxxxxxxxxxxx ;< Caution-mailto:nanomsg@freelists.org > < Caution-Caution-
mailto:nanomsg@xxxxxxxxxxxxx ;< Caution-mailto:nanomsg@xxxxxxxxxxxxx ;>Caution-mailto:nanomsg@xxxxxxxxxxxxx ;> < Caution-Caution-
> < Caution-Caution-
> > Caution-Caution-mailto:nanomsg@xxxxxxxxxxxxx ;<
mailto:nanomsg@xxxxxxxxxxxxx ;< Caution-mailto:nanomsg@xxxxxxxxxxxxx ;>freelists.org > < Caution-Caution-
< Caution-Caution-
> Caution-mailto:nanomsg@xxxxxxxxxxxxx ;< Caution-mailto:nanomsg@
mailto:nanomsg@xxxxxxxxxxxxx ;< Caution-mailto:nanomsg@xxxxxxxxxxxxx ;>nanomsg@xxxxxxxxxxxxx < Caution-mailto:nanomsg@xxxxxxxxxxxxx ;> < Caution-
> > < Caution-Caution-
> > > Caution-Caution-Caution-mailto:
Caution-mailto:nanomsg@xxxxxxxxxxxxx ;< Caution-mailto:nanomsg@freelists.org > > < Caution-Caution-
> Caution-mailto:nanomsg@xxxxxxxxxxxxx ;< Caution-mailto:nanomsg@freelists.org > < Caution-Caution-
mailto:nanomsg@xxxxxxxxxxxxx ;< Caution-mailto:nanomsg@xxxxxxxxxxxxx ;>Caution-mailto:nanomsg@xxxxxxxxxxxxx ;> < Caution-Caution-
> < Caution-Caution-
>
> > Caution-Caution-mailto:nanomsg@xxxxxxxxxxxxx ;<
mailto:nanomsg@xxxxxxxxxxxxx ;< Caution-mailto:nanomsg@xxxxxxxxxxxxx ;>freelists.org > < Caution-Caution-
< Caution-Caution-
> Caution-mailto:nanomsg@xxxxxxxxxxxxx ;< Caution-mailto:nanomsg@
mailto:nanomsg@xxxxxxxxxxxxx ;< Caution-mailto:nanomsg@xxxxxxxxxxxxx ;>Subject: [Non-DoD Source] [nanomsg] status update libnng
> > >
> >
> > > > >
> > > > >Just a brief Christmas (western) update…
> > > > >
> > > > >libnng is now managing connections. There’s a lot more to this than you’d
> > > > >
think — and
aI expect that by New Years I’ll have it in a functional state for TCP for
> > > lot of details that I’ve written under
> > > > the hood.
> > > > >
> > > > >
POSIX systems,
forprotocols. TBH,
> > > at least the primary patterns /
> > > >
> > > > >I’m really only a couple of hours from that point.
> > > > >Note that the current code base is pretty much crash-immune with respect to
> > > > >
things
thaterrors will not impact libnng. The whole approach has been from a “correct
> > > caused grief in libnanomsg — e.g.
> > > > ENOMEM
> > > > >
first”, so I
> > > expect we will have fewer problems onceactually start using this.
> > > > we
> > > > >
> > > > >Things are moving apace… quite quickly actually.
> > > > >
> > > > >If anyone is so inclined to review or give feedback on teh existing code,
> > > > >
I’m now at the
> > > point to receive it, understanding thatstill large swathes still unimplemented. You can’t use it for TCP for
> > > > there are
> > > > >
example. But at this
> > > point I’d rather solicit feedback earlythan
> > > > rather
> > > > >late. Don’t tell me what’s missing, but if you see problems with what’s
already there,
> > > please *do* let me know.I’m going on a ski trip for the next several days, but will probably work
> > > > >
> > > > >
in the evenings
> > > getting the thing to a state where otherstart playing with for actual experimentation.
> > > > folks can
> > > > >
> > > > >I’m really looking forward to benchmarking this thing. I think we’re gonna
> > > > >
blow the
doorsnon-crappy pthreads. :-)
> > > off libnanomsg, at least for platforms
> > > > that have
> > > > >
> > > > >Merry Christmas everyone! :-)
> > > > >
> > > >Thank you for all your hard work!
> > > >
> > > >BTW, when you say that you can't use it for TCP, what exactly do you mean?
> > > >
> > > >Thanks,
> > > >
> > > >Cem Karan
> > > >
> > > >
> > > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> >
> >
> >
>
>
>