April 21st, 2014

By 

Infor
 

“Ultimately it was clear Cassandra was the right choice, given its proven scalability, its explicit design for the multi-datacenter use case, and its developer-friendly CQL model.” 

- Darrell Burgan, Chief Architect at  PeopleAnswers

Darrell Burgan Chief Architect at PeopleAnswers

 

Infor

Infor creates beautiful ERP software that businesses of all kinds use to run their business processes. We are the third largest ERP software company in the world. Infor has a very broad range of applications in its portfolio that target all kinds of business horizontals and verticals. If you have a business need, it is likely Infor has an application that is well suited to meet it.

One of Infor’s products is PeopleAnswers, which is a science-based talent management platform that companies use to help them improve the quality of their hiring processes, both in terms of reducing costs, as well as in terms of improving the performance of the people who are selected.

My role is as chief architect of the PeopleAnswers product. All my answers on this page are thus primarily for the PeopleAnswers product, although Cassandra’s role within Infor is likely to grow.

 

PeopleAnswers

Imagine a big corporation with tens of thousands of employees, in which hiring is going on all the time, both due to growth and due to employee turnover. For an organization like this, the hiring process can be a major cost. Further, organizations are keenly focused on ensuring they retain the right people, to maximize the performance of the company. For jobs where there are tens of thousands of active applicants at any time, and where the number of applicants might exceed openings ten to one, administering the hiring process can be difficult. Our product makes managing the hiring process easy.

The hiring process is also typically very subjective. How does a company know it is hiring the right people? Our software gives the hiring manager a rational way of determining which candidates are most likely to be the best performing candidates for any particular job. We employ a scientific employee assessment that measures a candidate’s “behavioral DNA” against the highest and lowest performers in each job. This provides a predictor of a candidate’s future performance, and gives hiring managers a solid basis for figuring out which candidates to consider first.

 

A need to scale

Put simply, we need a database that is designed to work globally, across data centers, and provide the kind of global scale that our application demands. Relational databases are great and will always serve the need within the data center, but they do not scale well to this level, which naturally led us to the NoSQL world. We evaluated quite a few NoSQL products, like MongoDB, HBase, Couchbase, and several others.

 

Cassandra for a global company

Ultimately it was clear Cassandra was the right choice, given its proven scalability, its explicit design for the multi-data-center use case, and its developer-friendly CQL model. Cassandra is important to Infor because Infor is a global company. We have data centers and customers around the world, who access our cloud-based products 24 hours a day, every day of the year. If our systems are unavailable, their business stops operating.

We need a database product that is capable of scaling to this level, that can handle the global distributed database scenario, and that never goes down. There are very few products at this level of any kind, and in our view Cassandra is the leader among them.

Deployment

We’re currently using Cassandra 1.2 and have been using it for nearly a year in production. We plan to upgrade to Cassandra 2.x in the next few months. Cassandra serves as the basis of our persistence tier for that data which must span multiple data centers.

The PeopleAnswers Cassandra cluster is small in absolute terms but growing rapidly. Our current plans have us placing as many as eight nodes per virtual data center, clustered across as many data centers as needed.

 

Getting started

My advice to people new to Cassandra is to take an incremental approach. Cassandra is really easy to get up and running, but it has deep configurability, and the sheer number of configuration options can be bewildering at first. Pick a small use case and use it in a production setting. Then as you grow comfortable with the differences between Cassandra and the relational technology you might be used to, grow your usage of Cassandra to match.

The other advice I’d give is to have developers think at the CQL level, and let your Cassandra DBAs be the experts about the low-level structure. CQL is a really powerful tool, one that no other NoSQL database matches. Just like with relational databases, developers can (and should) think about the data from the perspective of the problem they are trying to solve, and can consult with DBAs to optimize table and query design to take advantage of Cassandra’s unique capabilities.

 

Joining the community

The community has been stellar. It is very active and enthusiastic, and DataStax is doing a great job of encouraging it to grow. We do our part by hosting the local meetups for Cassandra users!