HN user

cangencer

1,343 karma

Working on distributed systems

Posts32
Comments54
View on HN
www.brendangregg.com 3y ago

Computing Performance 2022: What's on the Horizon

cangencer
2pts1
chrisgagne.com 3y ago

The Tyranny of ‘The Plan' (2013)

cangencer
125pts53
www.oaktreecapital.com 3y ago

The Illusion of Knowledge

cangencer
1pts0
github.com 5y ago

Show HN: Hazelcast 5 BETA – streaming+storage in one

cangencer
3pts0
jet-start.sh 5y ago

Jet 4.4 with SQL support is released

cangencer
2pts0
hazelcast.com 5y ago

The Journey to a High-Performance Node.js Library

cangencer
2pts0
medium.com 5y ago

There’s more or less no such thing as an asymptomatic viral infection

cangencer
3pts0
github.com 5y ago

Show HN: Jet – in-memory, fault-tolerant, distributed stream processing

cangencer
129pts55
basri.dev 5y ago

Improved Majority Quorums for Raft

cangencer
2pts0
jet-start.sh 6y ago

Designing an Evergreen Cache with Change Data Capture

cangencer
3pts0
jet-start.sh 6y ago

The Low-Latency Rematch: Performance of modern Java on data-heavy workloads

cangencer
3pts1
jet-start.sh 6y ago

Performance of modern Java on data-heavy workloads

cangencer
202pts98
www.cell.com 6y ago

40-60% of the unexposed produce Covid-19 antibodies due to earlier cold exposure [pdf]

cangencer
95pts102
jet-start.sh 6y ago

Hazelcast Jet 4.1, Including gRPC, Extended 2PC and Kubernetes Operator

cangencer
1pts0
jet-start.sh 6y ago

Implementing two-phase commit for a distributed stream processing framework

cangencer
7pts0
jet-start.sh 6y ago

Hazelcast Jet – Open-Source Distributed Stream Processing

cangencer
10pts0
twitter.com 6y ago

Slack offers option to turn off WYSIWYG editor

cangencer
5pts1
www.theguardian.com 6y ago

Bright red haze from Indonesian fires envelops city

cangencer
1pts0
www.cnet.com 6y ago

WoW Classic lets you party in Azeroth like it's 2006

cangencer
1pts0
www.personal.ceu.hu 6y ago

Kicking Away the Ladder: The “Real” History of Free Trade (2003) [pdf]

cangencer
3pts0
www.morningstar.co.uk 6y ago

London Stock Exchange Blames “Software Issue” for Delayed Open

cangencer
1pts0
www.smh.com.au 6y ago

Earth had a near-miss with 'city-killer' asteroid this morning

cangencer
3pts0
dbmsmusings.blogspot.com 7y ago

The dangers of conditional consistency guarantees

cangencer
5pts0
hazelcast.com 7y ago

Distributed Locks Are Dead; Long Live Distributed Locks

cangencer
110pts14
copenhagenize.eu 11y ago

The Top Bike-Friendly Cities in the World (Copenhagenize Index 2015)

cangencer
1pts0
www.vox.com 11y ago

Why oil prices keep falling – and throwing the world into turmoil

cangencer
2pts0
math-blog.com 12y ago

STEM Shortage Claims and Facebook’s $19 Billion Acquisition of WhatsApp

cangencer
2pts2
www.adzuna.co.uk 12y ago

UK startup jobs up 44% in 2013 (infrographics)

cangencer
2pts0
channel9.msdn.com 13y ago

Git Support Added to Visual Studio

cangencer
6pts0
www.slideshare.net 14y ago

The top reason node.js submissions get rejected by SoundCloud

cangencer
1pts0

The article is extremely shallow beyond saying "Formal verification a la SPARK" should have been used, while not offering how this could actually work in the real world - I don't think the author has any experience working on any similar piece of software either.

While such techniques are available, would they be really applicable in a very dynamic environment such as with millions of PCs running various windows versions, needing continuous / real-time updates.

And yes, we of course know that QA and testing magically removes all possible failure modes/bugs.

The thread is still wrong, since it was a OOB memory read, not a missing null pointer check as claimed. 0x9c is likely the value that just happened to be in the OOB read.

Threads are similar to slideshows - you can put a few bullet points that sound reasonably correct, but lacking in detail and context and you mostly forget about it after you read it, it's disposable.

A long-form narrative that is convincing and made to last and read repeatedly is much harder to write.

This is indeed a question that we get asked a lot. We have so far not though about adding more advanced scheduling capabilities for the cooperative threads. With the slot system, if you have 48 core available in the cluster, and running 8 jobs, each job will only use 6 cores each. With cooperative threading, each job runs on all the 48 cores. We have tested something like 5,000 concurrent jobs on same cluster, but essentially they may be competing for the same resources, so you'll need to do your capacity planning accordingly. Simple way to work around that would be to create separate Jet nodes (a Jet node is very lightweight) so you could have separate execution pools.

This is very true. Stream processing is both old and new and I think it takes time for technology like this to really mature. There's currently a standardisation effort around Streaming SQL which may bear some fruit, but probably still many years away. Right even if you want to use some standard language like SQL to describe streaming queries there's differences in each tool both in syntax and semantics.

While Flink is a fully-featured stream processing framework I think there's some notable differences. Off the top of my mind:

- Flink uses Zookeeper for metadata and coordination, Jet doesn't require any external systems for resilience.

- Flink uses RocksDB and HDFS for checkpointing/snapshotting, Jet stores it in distributed, replicated in-memory store.

- Flink allocates operators to slots, while Jet uses green threads/cooperative multi-threading. This means you can run many concurrent streaming jobs on the same cluster, with very low overhead.

- Jet is basically a single, self-contained JAR. It's all you need to run a production-grade service (+ some connectors, if you'd like)

- Jet can scale up/down with very little friction. You start a couple of processes and they will form a cluster automatically. Kill a couple of the processes, and the cluster goes on.

That said, Flink have a great set of overall features, especially around persistence and huge states. This is another area we're currently investing in as well as SQL support.

The license is meant to prevent service-wrapping by cloud providers, other than that it doesn't have any implications for standard usage. The core library / server is Apache 2 and the rest of the connectors are community license. You can use and embed both the core module and the connectors for free.

The license itself is similar to the licenses from Confluent, Elastic among many others. You can read more about it here: https://hazelcast.org/blog/announcing-the-hazelcast-communit...

+1, in countries like Turkey, Persia, India, Pakistan rice cookers are pretty uncommon. In my home country of Turkey where rice is eaten very commonly, I've never heard of a single person use it. Further, rice is typically first washed several times, fried with a bit of oil and perhaps some spices before being simmered. I don't know if it's possible to do this with a Japanese style rice-cooker.

Hazelcast | Fully Remote, European Time Zones | QA/Quality Lead | https://hazelcast.com/

I'm a Director of Engineering at Hazelcast. We build distributed systems at scale. We're looking for QA Leads/Engineers to help test our distributed storage and compute engines. If you want to do exciting work on distributed systems (think jepsen), find consistency and concurrency issues and do performance testing at scale, Hazelcast might be the right fit for you! Contact me directly at can@hazelcast.com

I wanted to try it on a single repository, but it requested access to all repositories, public or private and also needs admin access for webhooks. No thanks.

I've only been to WeWork in London, yes I agree the vibe is a little different. You could argue they're both faking it being hip but WeWork does a slightly more convincing job while Spaces feels bit more corporate.

That said, I found the WeWork in London extremely noisy and tight compared to my current space. It might be just a side effect of real estate prices in respective cities, though.

We are adding something called a "rolling aggregation", where you receive a record, accumulate it and then emit the current accumulated value. I'm not sure if this matches what you want.

I meant that products like Esper, StreamBase, InfoSphere have been around for a long time, which have a _very_ rich set of features [1], and are mostly designed around single process usage. Lot of the type of queries they support are not possible to implement in a performant way in a distributed system. Though nowadays Esper claim to have horizontal scalability - it was originally designed as a single threaded system. They do also have a passive/active type solution as you mentioned.

Stream processing frameworks originally evolved to offer "big scale" through data partitioning compared to the traditional CEP systems. But CEP engines have been able to deal with windowing and similar concepts since many years ago - the main difference of the stream processing frameworks _is_ the distribution and scalability aspect.

My point was that the systems linked in the original article seem to match closely to the limitations of what distributed stream processing frameworks are able to do, but only run on a single node.

[1] http://www.espertech.com/esper/

Single process "streaming" or basically CEP engines have been around for a very long time and used to be the norm before distributed stream processing engines came around (such as Storm). CEP engines have much richer functionality than distributed stream processing engines because they don't need to deal with partitioning or data distribution. I'm not quite sure I see the appeal of making a non-distributed engine but with the same limitations of a distributed engine.

I work on Hazelcast Jet [1], which is a Java based distributed stream processing engine. The core engine is fast enough that it can be used with very good throughput on a single node (several times faster compared to Flink or Spark) but usually several nodes are not only needed strictly for parallelization but also for tolerating node failures and being able to restart where you left off. As others have pointed out, not every computation can be parallelised efficiently. Jet also offers in memory storage, so adding more nodes also increases your storage capacity.

Since the core of Jet is small enough (~400kb JAR), we also considered making a non-distributed version that runs strictly in process. Mainly for lightweight usage or embedding but would also offer a path to distributed execution, if it was ever needed.

[1] https://github.com/hazelcast/hazelcast-jet