Live data from Hacker News

Storm - the Hadoop of realtime processing

tech.backtype.com

21–30 of 47 posts

Re: Storm - the Hadoop of realtime processing

#21

This sounds great. This is the traditional realtime processing use case: process messages and update a variety of databases. Question: I typically think of real-time as a need for user-facing things, i.e. handling a user's requests before he gets bored and goes away. Is Storm set up for that? Or is it mostly meant to update a database with results rather than return them to a waiting process?

It handles both cases. Storm can be used to asynchronously update databases in realtime in a scalable way (replacing traditional systems of queues and workers). Using Storm for Distributed RPC lets you do intense computations on Storm and return them to a waiting process.

Ah yes, I should have read not scanned "3. Distributed RPC". Thanks.

Re: Storm - the Hadoop of realtime processing

#22
post #20

It sounds like a neat project, but I think describing it as "real time" is misleading if you're not also providing information on latency. The majority of the provided use cases seem to indicate a high level of scalability and durability, as well as a high level of throughput, but these are not necessary characteristics of a true real time system. It's a common misconception. A real time system doesn't have to be fas…

You described a hard real-time system. That exists for things like the controllers on a jet. What's becoming much more prevalent are soft real-time systems that perform analytics. There won't be any catastrophic failure if deadlines aren't meant - and there may not even be any expressed deadline - it's just understood that the data must be processed and analyzed as fast as possible to be useful.

I certainly did describe a hard real-time system. It's nice to see that other people recognize the distinction.

Every time I see a post describing a "real time" system I always read into it hoping that what they are describing is a hard real time system, because they are neat, but they never are, probably because they are so difficult and expensive to build. Also I guess they aren't the most relevant type of system for the majority of people here, who are dealing (as you say) with customer-facing front ends.

Re: Storm - the Hadoop of realtime processing

#23
post #20

It sounds like a neat project, but I think describing it as "real time" is misleading if you're not also providing information on latency. The majority of the provided use cases seem to indicate a high level of scalability and durability, as well as a high level of throughput, but these are not necessary characteristics of a true real time system. It's a common misconception. A real time system doesn't have to be fas…

You described a hard real-time system. That exists for things like the controllers on a jet. What's becoming much more prevalent are soft real-time systems that perform analytics. There won't be any catastrophic failure if deadlines aren't meant - and there may not even be any expressed deadline - it's just understood that the data must be processed and analyzed as fast as possible to be useful.

Yes, Storm is more intended for soft realtime problems.

Re: Storm - the Hadoop of realtime processing

#25
post #14

I'm not sure if this is the same thing, but there's also a new company called Hadapt (the commercialization of HadoopDB). It's about adapting Hadoop for real-time analytic SQL queries by putting local SQL dbs on the Hadoop nodes and then using the Hadoop plumbing. It's based on Daniel Abadi's research, he's a really smart guy.

The high-level difference is that anything Hadoop-based is oriented around "give me a job to run, I'll go crunch over the data, and spit the result back to you."

In "realtime" analysis, you tell the system "these are the queries I want you to run" and it continuously updates those with answers as data arrives.

Re: Storm - the Hadoop of realtime processing

#27

" To compute reach, you need to get all the people who tweeted the URL, get all the followers of all those people, unique that set of followers, and then count the number of uniques. It's an intense computation that potentially involves thousands of database calls and tens of millions of follower records." Or you could use a Graph DB to solve a Graph problem. URL -> tweeted_by -> users -> followed_by -> users Try tha…

To do that query on Neo4j, you would need to store in memory on one machine the entire Twitter social graph, all the people who tweeted every URL ever tweeted on Twitter, and then do the computation on a single thread. Neo4j can't handle that scale. The reach computation on Storm does everything in parallel (across however many machines you need to scale the computation) and gets data using distributed key/value data…

Nathan, we'd love to hear your postmortem on BackType's experience with Neo4J, and how Sphinx is turning out.

Re: Storm - the Hadoop of realtime processing

#29
post #24

How is this different from a "traditional" CEP system like Esper? (I mean on the actual processing front, rather than architecturally -- sounds like Storm is a bunch of building blocks instead of a unified system.)

Storm is a unified system. The key difference with other CEP systems is that Storm executes your topologies across a cluster of machines and is horizontally scalable. Running a topology on Storm looks like this:

storm jar mycode.jar backtype.storm.my_topology

In this example, the "backtype.storm.my_topology" defines the realtime computation as a processing graph. The "storm jar" command causes the code to be distributed across the cluster and executes it using many processes across the cluster. Storm makes sure the topology runs forever (or at least until you stop the topology).

(I can't say I'm intimately familiar with every CEP system out there, so feel free to correct me if there are distributed CEP systems. Those products tend to have webpages which make it hard to decipher what they actually are / do)

Post reply on HN