http://news.cornell.edu/stories/2015/08/some-honeybee-coloni...
404 karma · joined June 26, 2012
http://news.cornell.edu/stories/2015/08/some-honeybee-coloni...
Create a global Cassandra cluster with regional datacenters.
Use one keyspace per region
Use per-keyspace replication to only replicate that region's data locally, and to one or more additional datacenters
Have stateless app servers colocated with Cassandra in each DC handling all local traffic
Run spark on top of Cassandra to do analytics, or to do the etl to a dedicated analytics system
Optionally have a single "master" DC, with replicas of all data from all locations, that doesn't serve end user traffic, but is to allow efficient cross region analytics.
Profit (optional step)
And yes, the company I work for (Datastax) has a product and services to help make it simple.
A typical developer just wants to code against an api, and shouldn't have to care about the infrastructure. As cloud providers (both public and private) move up the stack from providing just virtualized machines (ec2) to higher level services (dynamodb) to more complete frameworks (lambda), the developer cares less and less about what runs underneath that.
Devops does indeed sow the seeds of its own destruction. :)
fn foo() -> Result<(),Error> {
// Create an event loop
let mut event_loop = try!(EventLoop::<(), u64>::new());
let sender = event_loop.channel();
for i in 0.. 5 {
try!(sender.send(i));
}
// Start it
try!(event_loop.run(&mut BearHandler(0));
}Rust has a myriad of ways to handle errors, and unwrap is the most blunt of those instruments as it explicitly converts handleable errors into panics.
Alternatives such as try!, unwrap_or(), and many others, should be your preferred options. I try to only use unwrap() in throwaway code and usually only in main functions.
The one thing rust doesn't let you do (at least without warnings), is to have unhandled errors.
Being forced to explicitly handle error conditions is a huge net win for any production code.
The limiting factor used to be the speed of a horse, though now it is some approximation of the speed of light.
2) Scale out. Spark can easily handle hundreds of nodes in a single cluster. Aggregate RAM across all of them can be used.
3) Cache intermediate data sets and/or hot data sets, as opposed to the entire data set.
http://www.datastax.com/company/careers
(Most of the engineering jobs represent multiple openings)