This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2020-11-19
Channels
- # admin-announcements (1)
- # asami (9)
- # aws (46)
- # beginners (117)
- # calva (9)
- # cider (48)
- # clj-kondo (27)
- # cljdoc (6)
- # clojure (41)
- # clojure-australia (2)
- # clojure-europe (22)
- # clojure-nl (3)
- # clojure-spec (3)
- # clojure-uk (26)
- # clojurescript (57)
- # code-reviews (25)
- # cursive (9)
- # data-science (2)
- # datomic (31)
- # events (1)
- # expound (24)
- # figwheel-main (8)
- # fulcro (38)
- # graalvm (40)
- # helix (6)
- # jackdaw (4)
- # java (5)
- # jobs (1)
- # kaocha (7)
- # kekkonen (1)
- # meander (65)
- # off-topic (67)
- # pathom (4)
- # reagent (9)
- # reitit (8)
- # remote-jobs (3)
- # ring (2)
- # shadow-cljs (24)
- # spacemacs (13)
- # timbre (2)
- # tools-deps (4)
Good moriningnging!
@borkdude that transit flush issue is interesting. I'm sidestepping it by having a small number or large objects I'm writing so I'm dodging that issue
If csv works as a format I could go for arrow and http://tech.ml.dataset, but it would be weird to then drop the dataset aspects of it
Can you migitate it by wrapping the actual writer in a buffering writer?
@ordnungswidrig I'm not currently having a problem with it, but I seem to be hitting the sweet spot of only writing a few big objects to a file
I'm using this in clj-kondo where the files I'm writing aren't that big, so all in memory is fine
@ordnungswidrig nope. Buffering output streams follow flushing rules too.
That would rewuire a custom stream that reconciles the flashes?
@ordnungswidrig Yep. I tried to write one, it's very difficult because you need to sometimes flush in order to actually stream things to the browser to reduce overall latency (otherwise you're basically just doing a ByteArrayOutputStream).
it’s an interesting question and I think the “flush management” must be a separate concern than the wire encoding. Acutally you need to combination of time and size based decision. But honestly I do not understand how this can have an impact on chunking, which is a transport encoding.
@ordnungswidrig Well, when you flush, that causes a cascade of flushes which means the gzipoutputstream just flushes out the chunk it has right now, which the http chunking output stream then delivers.