9,188 karma · joined July 27, 2009
mali at akmanalp dot com
In the case of Redis, AFAIK it can't support larger than memory use cases, right? And in fact they do compare to RocksDB for larger-than-memory, see Fig 10. Granted, it could be more detailed, but I think it makes their point.
Second, think of software artifacts from papers as a proof of concept, or a prototype. It's intended more to demonstrate some architectural innovation, and less to serve customer needs. Their ideas revolve around supporting a high level of concurrent access and removing the locking overhead that would normally stem from this, and an interesting way to handle spilling over to disk in larger-than-memory scenarios. This might evolve into a customer-oriented product eventually. Or perhaps get retrofitted into the guts of something like MS SQL server.
How would this compare to something like WebCrypto, which assume would be implemented in a way that would allow for side channel resistance etc? It does seem surprising that we don't have something like a browser API version of libsodium in widespread use already.
I support your side of the argument, but why is it the case that finding a CEO is hard? It seems a bit like becoming president: there aren't many people in the pool who have matching previous experience anyway, and it's not even clear if "similar" experience even applies (Does one company resemble the other, even in the same industry? Different stages of growth, corporate structure, business model, region of operation etc), and much of the job seems to be adapting to new conditions. It seems more about the CEO's reputation and network, is that really just it? You pay for the CEO's access to the Old Boy's Club? Wouldn't the company be better served by spreading the role across multiple people, to avoid the stigma of changing CEOs?
https://cloud.google.com/blog/products/gcp/open-sourcing-gvi...
That said, they don't quite go into the details of what type of isolation is missing from standard containers - I'm curious. It does seem like it would have been ideal for everyone if LXC would have had better isolation, rather than having to run a userspace kernel emulator thingy for each container, but c'est la vie!
I think aside from the icon and the special treatment mentioned above, don't AMP pages get served directly from google and get preloaded on the search results page? So that's the other benefit, I guess. Whether a few less milliseconds from preloading on an already fast page really buys anything is another question.
Huh - how did you get to this conclusion? What would be the alternative? Do you mean Java was essentially "better" because it had access to all the undocumented APIs while other languages didn't?
Not that I disagree with you, but this is an interesting point. I've heard archivists argue that with simpler analog storage, the curve for corrupt bits vs interpretability is smoothish, but with digital storage it's often a step function where it's like "whoops, a few bits flipped, can't read at all anymore"
Tangentially, this makes me wonder: While microfilm can't be copied perfectly, isn't it true that the source quality (e.g. the crispness of the print) is vastly lower than the resolution of the medium itself? Which seems like it would imply that the "lossy" transformation might in some sense still lossless, at least for a while - like converting a high bitrate mp3 recording of a radio broadcast into a lower bitrate one. Or perhaps the kinds of loss are different. I'm sure I'm confusing a lot of ideas and butchering some terms here.
The interesting thoughts from the paper as far as I can see were: 1) Tuple spaces are programming language or architecture or program independent, and vastly different programs can communicate with each other 2) You don't communicate directly to other agents by address, you write to a topic and read from a topic, which is a form of decoupling producers and consumers 3) The "block when nothing to read in this topic" idea, which makes programming coordination SO easy. I guess it's a bit like unix pipes.
If tuple spaces don't seem that interesting and novel, it's probably because of the benefit of hindsight and that a lot of these ideas are so subsumed into the tools of today. I can't definitively make the claim that Linda is the cause of this, but I suspect it had some effect. I think the original author also had a lot of wacky ideas around "cyberspace" and all that, but that's another deal and I don't think it's why people find the Linda paper interesting now. The closest useful descendants of Linda to be seem to be modern Pub / Sub systems or coordination databases like RabbitMQ, Kafka, Zookeeper.
Since fork() as far as I understand is effectively copy-on-write in modern architectures on linux, that's probably not a terrible model at least for the initial step but it does seem kinda over-simplified if you think about the rest of the lifetime of the process and the different execution models with processes on a computer vs a supercomputing cluster.
What looks like it happened is that they had a cool enough idea: with supercomputers, the scheduler is kinda like the operating system. The scheduler becomes the bottleneck in some workloads. So why not replace the core data structures and operations with a DBMS which is kinda built for this sort of highly distributed, high contention state management situation. Also the larger general idea of comparing it to an OS sounds curiously close to the mesos / kubernetes worldview of things in some ways: "the operating system of your datacenter".
Then some annoying but probably correct person was like "hey we need a basis for comparison and a benchmark because this is an academic paper and that's how systems papers must be because academia in 2018" so they shoehorned in some apples and oranges comparison and we got this.
Also, social news websites require effort to post on, and often the content that gets upvoted is the lowest common denominator of the interests of the people who currently happen to be staring at the site, rather than each person getting their own set of new content.
The tradeoff is that spark and hadoop in general have invested /serious/ efforts into resilience, while dask only really provides protection against worker failure, but not really scheduler failure. In practice is this really an issue? shrug it depends. "Works for me". How many tasks do you run in parallel? If you're doing ad-hoc analysis on a very large dataset, dask might be a great fit. If you have a data warehouse use case and have tons of people running analytics queries, then you have uptime requirements, and spark might be a better fit. That's where I ended up.
I saw this statement in the official documentation too ... in practice this isn't a big burden - if you're going to reuse something, persist it. That's about it. "Keep in mind the computation graph" doesn't mean anything - the docs and guides really gloss over why I don't have to do this. Not thinking about these is effectively a decision made one way or another.
The papers offer a bit more insight: Looks like the novelty is in the scheduler that was built for low task latencies and high throughput: wonderful for all kinds of compute-intensive workloads (they talk about Reinforcement Learning, for example) and definitely fulfills a need. They especially talk about how some tasks are dynamic in nature and spawn new tasks unpredictably and how you might not know the whole task graph in advance, or how some work can be done either locally or globally in a transparent manner, or how if you have many tiny tasks, the task overhead can kill you. But don't see what this buys for traditional table style data-heavy analytic workloads which have none of these problems.
Don't get me wrong - I'm excited about more contenders. The neat stuff about ray seems to be the scheduling model they have, the fact that they built in fault tolerance by storing all state globally in a sharded data store (redis in this case), but also they use Apache Arrow and the plasma store, which means zero-copy data transfer between workers and other data stores - awesome. Dask should probably also consider some of this. But pandas + ray just seems like an odd couple - it seems like ray's scheduler was built for the opposite use case.
http://matthewrocklin.com/blog/work/2018/06/26/dask-scaling-...
Yes, aside from high heat the cold ferment step seems to play a big role: https://slice.seriouseats.com/2010/09/the-pizza-lab-how-long...