There is no room for error in the selection of key applications.

You may encounter situations where you need to choose the right open source database. But this is a daunting task for both the open source veteran and the novice.

In the past few years, more and more enterprises have adopted open source technologies. In the face of this trend, many open source application companies are promising to provide solutions for all kinds of problems and loads. But these promises should be taken with a grain of salt. Open source applications are important and difficult choices, especially for critical applications such as databases.

With my experience as an IT specialist at Percona and other companies, I am fortunate to be able to guide others to make the right decision about open source technology choices because there are so many important factors to consider. I hope this article will share some tips on this topic.

Have a clear goal

This one seems simple, but after talking to a lot of people about MySQL, MongoDB, and PostgreSQL, I think it’s the most important one.

In the face of the complex open source database, we need to clarify our goals. Whether the database is used as a standardized database backend for development or as a replacement for an existing database in legacy code, this is a clear goal.

Once the goal is set, focus on negotiating more details with the open source software providers.

Know your workload

Although open source database technology is becoming more and more versatile, none of these new features are universally applicable. For example, MongoDB added transaction support, MySQL added JSON storage function and so on. The current trend for open source databases is to constantly add new features, but many people make the mistake of not choosing the best tool to do their job — whether it’s an arrogant developer or a narrow-minded executive — and end up losing business. Most deadly of all, in the early stages of a business, it is often possible to get things done with the wrong tool, but as the business grows, it quickly reaches a bottleneck, and while more appropriate tools can be replaced, the cost becomes high.

For example, if you need a data analysis warehouse, a relational database might not be the right choice; If your application for dealing with transactions requires strict data integrity and consistency, forget NoSQL.

Don’t reinvent the wheel

In the past few decades, open source database technology has grown rapidly. Open source databases have gone from being new, to being questioned, to being accepted, and have now become the database of many enterprise production environments. Enterprises no longer need to worry about the risks of choosing open source database technology, because open source databases often have active communities that can provide support and third-party tools in the open source database space to a growing number of startups, mid-sized companies, and even fortune 500 companies.

Battery Ventures, a technology-focused investment firm, recently launched a BOSS Index that tracks the most popular open source projects. It provides a detailed look at some of the most widely adopted open source projects and active open source projects. Unsurprisingly, database technology dominates the list, accounting for half of the top 10. The BOSS index is a good starting point for anyone new to the open source database space. Of course, providers of open source technology also provide solutions to many of the most common and typical problems.

I think what you’re trying to do has probably already been solved. Even if these pioneers’ solutions don’t necessarily fit your needs exactly, you can take their successes and failures and adapt them to your own needs.

If you adopt a cutting edge technology, this is your chance to explore. If your workload fits the new open source database technology, feel free to give it a go. Being the first to eat always brings unexpected challenges and rewards.

Start simple

How many nines does your database actually need to be available? For many companies, “achieving high availability” is just a vague goal. Of course, the most common answer is “it’s a critical application, and we can’t afford any amount of downtime.”

The more complex the database environment, the more difficult and costly it is to manage. In theory you can always make your database more available, but at the cost of much more administrative difficulty and reduced performance. So start simple and expand as you need to.

For example, http://Booking.com is a popular travel booking website. Less well known is that it uses MySQL as a database backend. http://Booking.com Senior Systems architect Nicolai Plum gave a talk about his company’s experience with MySQL databases. One of the key points is that the database can be configured to be very simple at the beginning and gradually become more complex. For early database requirements, a simple master-slave architecture was sufficient, but as workloads and data volumes grew, databases introduced load balancing, multiple read copies, and Hadoop for analysis. Still, the early architecture was very simple.




When in doubt, call an expert

If you are still unsure whether the database is the right choice, discuss it on forums, websites, or with your software provider. It’s interesting to explore whether open source databases meet your needs, because you’ll always find technologies you never knew existed. And the open source community is the place to share that information.

There is one important thing to note when you approach open source software and software providers. Many companies have open core business models that encourage the adoption of their database software. You can take only some of their advice and guidance, and then use your own ability to research and explore alternatives.

conclusion

Choosing the right open source database is an important process. Too often, people put the cart before the horse by making decisions before they really understand the requirements.


via: https://opensource.com/article/18/10/tips-choosing-right-open-source-database

By Barrett Chambers, lujun9972

This article is originally compiled by LCTT and released in Linux China