Moving from Cassandra tables to Search with DataStax: Part 2

Hello again and welcome to part 2 of my 3 part series on moving from Cassandra tables to using DataStax Enterprise Search. If you haven’t read part 1 yet go take a look as it contains the backstory for this series.

In part 1 we looked at the types of searches we perform in KillrVideo, scratched the surface on how those searches were implemented, and then I asked a set of questions that lead us into why we might use DSE Search. Here in part 2, I’ll discuss why we moved to using DSE Search, detail what the transition encompassed, and explain considerations I took into account when making the switch.

One thing I’d like to point out before we get started is the Cassandra only approach that we replaced with DSE Search is perfectly valid. At times I make the case for why the Search approach is better IMO for our particular situation, but it is not broken or anything along those lines and it follows established denormalized query-first design patterns.

So, we decided to switch from using only Cassandra tables for our searches to using DSE Search. That part is obvious enough, but some of you might be curious as to why we made this move.

Read More

Moving from Cassandra tables to Search with DataStax: Part 1

Hi there and welcome to part 1 of a three part series on upgrading our KillrVideo java reference application from Cassandra based tabular searches to using DSE Search.

Here in part 1, we’ll take a look at the “before” picture and how we were previously performing searches. I’ll give some examples of the types of searches and how those were implemented with Cassandra tables. We’ll also talk a little about the “why” of moving to DSE Search.

In part 2, I’ll explain the transition to DSE Search and what considerations I had to take into account along with a before and after code comparison.

Finally, in part 3, we’ll take a look at our results along with some of the more advanced types of searches we can now perform.

Ok, let’s do this

First things first…assumptions!
If it isn’t obvious, we are using the Java based KillrVideo application for reference. If you aren’t familiar with KillrVideo go take a look here to get up to speed. In short, this is a real, open source, micro-service style application that we build and maintain to present examples and help folks understand the DataStax tech stack. It’s also a nice way that I personally get some code time against the stack in a real application as compared to punching out demo apps.

We are using DataStax Enterprise from drivers to cluster. All of the capabilities we’re talking about here are assumed to be within that ecosystem.

Read More

Ok, yea, so maybe it's been a while since I posted

So…I’ve been busy. Quite busy since the last time I posted. Let’s see, I got married, added 2 greyhounds to the family, repaired things from Hurricane Irma, been digging into all things DataStax, and I have a child on the way (due March 15th). On the DataStax and KillrVideo front I added both a graph based recommendation engine with DSE Graph and recently DSE Search capability for all video searches in the Java version. We also have SparkSQL fun coming up here soon as well. All of the application code is available for folks to really do whatever they want with it. Feel free to leave comments, issues, or make pull requests if you have something fun to add. My main goal is for KillrVideo to be useful to folks trying to figure this stuff out.

Once Spark gets into the mix KillrVideo will cover the 4 horsemen of DataStax Enterprise, namely,
Cassandra, Graph, Search, and Analytics.

Read More

Don't block your Async calls

Or rather I should be saying that to myself. So, TIL (today I learned) something simple yet profound while working with asynchronous programming and the DSE java driver. Ensure that you are properly iterating through your results when making an async call. You cannot simply iterate all of your rows using a for loop or something along the lines. Ok, well, technically you can, but if you have more rows than your fetch size the DSE java driver will throw a big fat error your way letting you know you are blocking within an async call. I should point that I am still somewhat new to working with asynchronous calls (yes, someone finally pulled up the rock I was under) so for you veterans this may be knowledge already gained from async NOOB 101. By the way, here is the error the driver threw at me (thank you for doing so DSE driver peeps).

Read More

Mixed Workload DSE Cluster with Raspberry PI's

Alrighty, as I mentioned in my previous post I have a mixed-workload cluster (Cassandra, DSE search, DSE graph) using a combination of 4 Raspberry PI’s and my laptop. I had multiple things in mind when I started into this.

  1. Low cost for learning

  2. Something I can break and not cry about

  3. How low can one really go when setting up a cluster?

  4. Get some DSE OpsCenter knowledge

  5. These are Raspberry PI’s, they are just damn cool, so why not setup a cluster?!

Read More

I'm Sure You Weren't Looking

Hi there and welcome to my blog. As the title suggests I am pretty sure you had no idea this blog or page even existed. This is most likely due to the fact that I had not published anything until….just now.

Wow, you are like….


Seriously though, thanks for taking a look and make sure to come back and check out my other posts as I muse on things ranging from mishaps while up on silks to technical discussions on distributed database clusters.

In my next post, I’m going to bring you through my experience setting up a Raspberry PI mixed-worlkload cluster using Cassandra.

See ya :)