Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
NovaX
searching Neon…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
7 ms
·
1.
▲
by
NovaX
7mo ago
Go tried that [1], a failed experiment that was a complex NIH version of the generational hypothesis. They currently use a CMS-stye collector. [1] https://docs.google.com/document/d/1gCsFxXamW8RRvOe5hECz98Ft...
2.
▲
by
NovaX
9mo ago
Thanks for the corrected evaluation. Just for your awareness, the HotSpot team is working on offering a spectrum of AOT/JIT options under the Leyden project [1]. Currently one has to choose between either a fully open world (JIT) or cl
3.
▲
by
NovaX
9mo ago
That is just a normal JVM with optional Graal components if enabled, but not being used. The default memory allocation is based on a percentage of available memory and uncommitted (meaning its available for other programs). When people ment
4.
▲
by
NovaX
2y ago
In both the asMap() view unwraps the opinionated Cache facade to the underlying bounded map. There are a lot of little gotchas so it is best to not believe your own results until proven otherwise. A Rust influencer wrote EVMap, eagerly givi
5.
▲
by
NovaX
2y ago
This was a good attempt but flawed. 1. You should use JMH to handle warmup, jit, timings, averaging of runs, etc. You might enjoy the following talks on the subject, though I am sure there are other gems out there. - Performance Anxiety: h
6.
▲
by
NovaX
2y ago
How about the senior engineer level error of forking Doug Lea's concurrent data structures only to make them operate in worst-case time complexity? Found this doozy recently. [1] https://gist.github.com/ben-manes/6
7.
▲
by
NovaX
2y ago
I think the idea is that the cache is so large that hot data won't be forced out by one-hit wonders. In this 2017 talk [1], the speaker says that Twitter's SLA depends on having a 99.9% hit rate. It is very common to have extremel
8.
▲
by
NovaX
2y ago
You might be interested in this thread [1] where I described an idea for how to incorporate the latency penalty into the eviction decision. A developer even hacked a prototype that showed promise. The problem is that there is not enough var
9.
▲
by
NovaX
2y ago
As the article mentions, Caffeine's approach is to monitor the workload and adapt to these phase changes. This stress test [1] demonstrates shifting back and forth between LRU and MRU request patterns, and the cache reconfiguring itsel
10.
▲
by
NovaX
2y ago
Yep, no bots. A real bug not only means that I wasted someone else’s time, but reporting is a gift for an improvement. If a misunderstanding then it’s motivation that my project is used and deserves a generous reply. This perspective and tr
11.
▲
by
NovaX
2y ago
Thanks Jonathan!
12.
▲
by
NovaX
2y ago
I tried to reimplement Linux’s algorithm in [1], but I cannot be sure about correctness. They adjust the fixed sizes at construction based on device’s total memory, so it varies if a phone or server. This fast trace simulation in the CI [2]
13.
▲
by
NovaX
2y ago
Doesn’t reddit use Cassandra, Solr, and Kafka which uses Caffeine?
14.
▲
by
NovaX
2y ago
I've resorted to using Cmd-Shift-J (scrollback buffer) and grepping that, but its flaky about whether it will honor the command and emit a history file.
15.
▲
Analyzing the codebase of a high performance caching library
(adriacabeza.github.io)
1 points
by
NovaX
2y ago
|
0 comments
16.
▲
by
NovaX
2y ago
That’s in the works, where it adapts from 16mb to terabyte heaps. The current GCs have a max, with lazy allocation and ability to release back to the system periodically, but are not as system aware. 1. https://openjdk.org/j
17.
▲
by
NovaX
2y ago
It will likely become available for application developers to use. At work, we use it to assist warehouse checkins by allowing the guard to take photos of the truck, paperwork, seal, etc and fill out the forms going in and out. If built-in
18.
▲
by
NovaX
2y ago
Endian indicates the byte order (MSB->LSB, LSB->MSB), but does not change the representation of a bit. The conditional logic says that an even result is 32 and an odd is 0 after a modulus two. In binary that (x & 1) is 0 for even
19.
▲
by
NovaX
2y ago
I believe it is (!i & 32) because the bitwise version is an incorrect rewrite. [1] https://news.ycombinator.com/item?id=41830016
20.
▲
by
NovaX
2y ago
I'm confused because isn't the bitwise version the inverted logic? If the LSB is 1 then it is an odd value, which should be zero, yet that is shifted to become 32. The original modulus is for an even value becoming 32. Shouldn
21.
▲
by
NovaX
2y ago
Oh thank you, I’m glad it’s been helpful.
22.
▲
by
NovaX
2y ago
One optimization for background refresh is coalescing the individual reloads into a batch operation based on a time/space window. Here is how we do it in the Java world. [1] [1] https://github.com/ben-manes/caffein
23.
▲
by
NovaX
2y ago
In a typical LRU cache every read is a write in order to maintain access order. If this is a concurrent cache then those mutations would cause contention, as the skewed access distribution leads to serializing threads on atomic operations t
24.
▲
by
NovaX
2y ago
Nope, I used the default in your github repository (10_000_000). From a quick profile it looked like previous benchmark allocations where crossing into later runs, who were then penalized unfairly, so I made those small adjustments.
25.
▲
by
NovaX
2y ago
Adding Guava testlib's GcFinalization.awaitFullGc() before a benchmark run and -XX:+UseParallelGC, I saw the runtimes decrease by 30s in Bench_Fury_Ordinal and 20s in Bench_ObjectOutputStream. Ideally you would run using JMH to avoid j
26.
▲
by
NovaX
2y ago
The two articles on your epoll command queuing and prefetching have a lot of similar observations to the BP-Wrapper approach [1], so you might find that to be an interesting paper to read. That is used by Caffeine cache [2, 3] which uses a
27.
▲
by
NovaX
2y ago
In the example the DatabaseSetup is an existing task type that is registered under a new name. Since that has an action body, the doFirst and doLast append logic to run around that. Thus, after setting up the database it then runs a migrati
28.
▲
by
NovaX
2y ago
RedisLabs actually was a somewhat hostile takeover of the project by a complete outsider. It commercialized Redis prior, kept trying to trademark the project name, change the company name to RedisDB to confuse users. A few of those attempts
29.
▲
by
NovaX
3y ago
Perhaps it’s better to say that they are not yet general purpose. There are many caveats which need to be resolved and are being actively worked on. I would not use them broadly yet, but that could change rapidly. A monitor will pin the VT
30.
▲
by
NovaX
3y ago
By long running I just meant anything that was not fast compute. I was more focused on finding the reference link so I agree my wording wasn’t clear. Go started without preemption and added it later. The Java team has indicated a similar pa
More ›