Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
jlouis
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
27 ms
·
241.
▲
by
jlouis
10y ago
No. The actual ext is something you have to provide yourself.
242.
▲
by
jlouis
10y ago
Beware of putting too much into these benchmarks. They are far too simple to say anything about larger systems. In particular, large systems are to a great extent measured in how well they optimize interactions between different modules in
243.
▲
by
jlouis
10y ago
The really interesting problems have the property that there is no library written for them yet. Granted, you need some kind of interaction with the outside world, but this is easy to handle in another language layer. The "existing lib
244.
▲
by
jlouis
10y ago
Erlang programs are typically structured around OTP-like style. In this style an executing process consists of an "upper" half, written by the user as a module of callback hooks. And a "lower" half which is reused in all
245.
▲
by
jlouis
10y ago
Elixir immediately gets access to all of these features in the VM. Over the next coming months, there may be the creation of more Elixir-friendly access wrappers to the features. However, there is the need to make sure Elixir can work with
246.
▲
by
jlouis
10y ago
Hah, Mnesia doesn't have a 2GB limit per shard now . But having access to a leveldb backing store means you can avoid keeping the dataset resident in memory. This gives you a nice memory/latency/disk tradeoff.
247.
▲
by
jlouis
10y ago
The post is old, but still somewhat true. The most important change is how memory carriers can be moved between schedulers/cores nowadays which improves the TLB miss rate and makes for better system locality.
248.
▲
by
jlouis
10y ago
It is only half the story. In reality it is isolated resources: memory, CPU usage, files, sockets, ... The key benefit is that a single process has a harder time monopolizing the system and taking over the system as a whole. This allows you
249.
▲
by
jlouis
11y ago
Supervisors is only half the game here. Suppose A sends a message to B and decides to wait around for the answer. B now divides by zero. In Go, your whole program is in consistency trouble and you have to write code to handle the case. In E
250.
▲
by
jlouis
11y ago
I was wondering this when Go came out. But time has shown they solve problems very differently, so they are not really direct competitors. Erlangs primary difference over Go is that it can gracefully handle the case where a programmer has m
251.
▲
by
jlouis
11y ago
The interesting aspect of scaling up is that it doesn't matter how fast you are at individual single-core computation. Fast single core computation, or even SIMD GPU processing, is largely an "easy" problem: get a stream of d
252.
▲
by
jlouis
11y ago
One of the alluring things of SSA form is that many optimizations are much faster to execute on the form. The costly part is to raise the SSA form in the first place which in the standard implementation requires one to build a costly domina
253.
▲
by
jlouis
11y ago
The wikipedia page explains them pretty well I think, so going there is a better explanation than anything else. For a programmer, they allow you to be more precise about the point in time where an object should be regarded as a weak object
254.
▲
by
jlouis
11y ago
An idiomatic Erlang cluster will have great benefit from ECC memory. The problem is that bit-flips can yield the wrong results for a while before the system crashes. And you may not be able to tolerate these wrong results.
255.
▲
by
jlouis
11y ago
The major problem, without any measurement and just guesswork, is that you have a larger allocation overhead in Erlang. Not only do you need the process control block for the process, you also need to go to the memory subsystem and grab a h
256.
▲
by
jlouis
11y ago
Just tune the VM: https://github.com/atemerev/skynet/issues/33 and speed doubles :)
257.
▲
by
jlouis
11y ago
Right, scanning large heaps means someone has to pay along the way. The Go GC pays with lowered throughput much like the adapted HotSpot VM is showing. The 10ms pause times for go were reported for a 250 gigabyte heap, however, and that i
258.
▲
by
jlouis
11y ago
Side note: many functional languages use the same bump alloc method because they tend to have higher allocation rates than imperative programs.
259.
▲
by
jlouis
11y ago
Author of fuse here :) What we do in order to make the ideas of load regulation (see https://github.com/jlouis/safetyvalve or https://github.com/uwiger/jobs ) and circuit breakers is that we "
260.
▲
by
jlouis
11y ago
Hot code reloading is best used for a scenario where you cannot afford to restart your system, usually because it drags a lot of internal state around and reconstructing that state is expensive. Typical use cases include several gigabytes
261.
▲
by
jlouis
11y ago
n=10 is a small set. In addition, you don't know if there is a prior bias here. Say most of the 10 grads use syntax colors in their daily work. This is likely to perturb the numbers. Figure 2 shows the plain samples have much greater v
262.
▲
by
jlouis
11y ago
As others have said, there is a difference in Erlang between `Foo` and `foo`; the first is a binding the latter is an atom. Many languages encode information in capitalization. Go uses it for functions which are exported. In OCaml and Haske
263.
▲
by
jlouis
11y ago
One could argue that good programming languages self-select good programmers. And that there are not that many good programmers in the first place.
264.
▲
by
jlouis
11y ago
These questions often depend on how much time you are willing to spend making things fast. OCaml has an extremely predictable performance curve, which is nice when you are writing code that has to run fast. In turn, productivity is good bec
265.
▲
by
jlouis
11y ago
Far more interesting is the question: what error in the filesystem led to a situation where you lost data in production? It is very easy to crank out claims of features while not having really implemented said feature in a correct way. This
266.
▲
by
jlouis
11y ago
That would explain it. In addition, the classic PubSub pattern here screams the Disruptor pattern (which I first heard about from Trisha Gee and Martin Thompson). The Erlang runtime has no direct good support for this kind of pattern, so
267.
▲
by
jlouis
11y ago
I don't think anything has the flexibility of tsung to be honest. It can test many different protocols already. A better way would probably be to optimize it a bit for lower memory usage. For web server benchmarking, only wrk2 by Gil T
268.
▲
by
jlouis
11y ago
Some comments: Haskell will use less memory on this task. Since it has a shared heap, it doesn't have to allocate a small heap per process, and thus it is expected that it has lower overhead. Furthermore, static typing means Haskell ne
269.
▲
by
jlouis
11y ago
On a perfect network, I presume. In reality, clients lose packets and strains the system differently. There is more to this than just perfect network conditions in a lab setting.
270.
▲
by
jlouis
11y ago
Here is an Erlang implementation of, essentially, the BT DHT: https://github.com/jlouis/dht Its main feature is that it has a full formal model written in QuickCheck to verify its integrity. That is, the dht code is si
More ›