Amazon DynamoDB, a high-performance, scalable NoSQL database for Internet applications

Source: Internet
Author: User
Tags dynamodb amazon dynamodb

Dynamodb is a fully managed NoSQL database service. Customers can easily use Dynamodb's services. Enjoy high performance, massive scalability and persistent data protection at the same time.

The Dynamodb database was published by Amazon on January 18, 2012.

It incorporates Amazon's many years of experience in large, non-relational databases and cloud computing. In fact as early as 2007 years. Amazon has published a paper before. The design concepts and implementation techniques used by Amazondynamo are discussed in depth, and the question of how to provide high-reliability data protection at the same time of large scale expansion is discussed.

The initial dynamo design was based on a series of core principles. To build a high-reliability, high-expansion system in real-today distributed systems.

Today's Amazon DynamoDB continues to build on these design principles. But at the same time, Amazon has accumulated valuable experience in non-relational databases and cloud computing over the years, such as Amazon SimpleDB and AmazonS3 services. Customers can use the fully managed database service in a very easy way.

Amazondynamodb is a high-performance, extensible NoSQL database. Users, traffic and data for today's Internet applications are growing. How the database expands very well. Meeting the demand for capacity and performance for Internet applications is a headache for a very large number of customers. Dynamodb is a great way to overcome this problem. Use Dynamodb. Developers can start with a relatively small scale, adding the performance of a Dynamodb table when the app attracts a lot of other users.

The tables in Dynamodb do not have any capacity restrictions whatsoever. Through the distributed technology. Dynamodb distributes the user's data and traffic requests to a table on a sufficient number of servers to meet the performance requirements of concurrent requests. At the same time, when faced with requests of any size, Dynamodb is able to provide a high-performance, low-latency user experience that can be predicted.

Our customers in the country, Papaya Mobile, is the use of DYNAMODB database services, in RTB real-time bidding in the field of online mobile marketing success. Appflood is a mobile real-time bidding advertising platform for Papaya Mobile. As the core component of Appflood, the performance of database is very important to determine the real-time bidding ability of the platform.

Many factors, such as network communication delay, database data read latency, and the delay of the pricing algorithm, can cause the bidding process to time out. Dynamodb, which provides a stable high-performance, low-latency response, is a great way to help papaya move to build a successful RTB platform.

DYNAMODB provides users with values such as the following:

    • Easy to use. Dynamodb helps users handle all database management tasks, from hardware resource configuration, installation configuration, and distributed cluster construction. and routine maintenance of the system. Developers can liberate themselves from tedious database management work.

      As a fully managed database, you don't need expert skills to manage DYNAMODB installations-your developers are completely independent. When you visit Dynamodb, you can get through the simple way of API. Now with just 13 APIs, you can manage the tables on the DYNAMODB database and query the retrieval operations. Access to and implementation of a single project item item in bulk.

    • can be extended. Amazon Dynamodb's design does not have any capacity limitations whatsoever. The ability to distribute data from a single table across multiple servers in several availability zones. To meet the requirements of capacity and throughput.

    • Performance. In the case of high concurrent requests. Dynamodb can still guarantee a very low latency.

      Because all of the data is stored on a solid-state disk. So we can guarantee the continuous high performance.

      An application that executes on a EC2 in the same region is typically able to experience a single-digit millisecond response time on the server side when visiting Dynamodb's data objects. More importantly, the performance of Dynamodb's tables can be predicted. Even in the case of data growth. Due to the characteristics of DYNAMODB distributed. Can still maintain a stable low-latency response. DYNAMODB enables you to partition your data between a large number of resources in the background and partition it again when needed, allowing for very high IO performance in large-scale access scenarios.

    • Durable and highly available. AMAZONDYNAMODB own initiative to replicate data in at least 3 data centers. Each write operation. A write success acknowledgement is not returned until at least two nodes have been written.

      Whenever a node or disk is damaged. Data will be replicated again and again in a timely manner.

      This ensures that DYNAMODB will still be able to provide services when complex failures occur, and you have no need to worry about data loss due to physical failures.

In addition to the advantages described above, DYNAMODB has many different places as a fully managed database service on the cloud. In particular it provides pre-configured throughput targets.

Once everyone was using the database. Want to get exactly the performance metrics you expect, including response time and throughput. is a very complicated thing. You need to configure different hardware resources. Contains the CPU. Memory, storage capacity, performance, and so on, and expect such specific hardware resources to support your database's performance needs very well. But actually. The database performance you want is response time, and the amount of support transactions per second does not have an accurate correlation between them and hardware resources.

Very often, database performance capacity planning is like a research project. Full of uncertainty. Dynamodb is a great way to conquer this problem.

Users can configure the throughput targets that the app needs to support when they start creating a table for Dynamodb. You can specify the number of read and write requests per second that the table supports separately. After the target has been set. Dynamodb will reserve the necessary machine resources for you to ensure that the application is able to enjoy a low latency, single-digit millisecond response, only if the given number of concurrent visits is below.

More importantly, the provisioned performance capacity targets are not immutable.

Assuming your database has a significant increase in the number of visits, you can increase the capacity of your Dynamodb table at any time to support many other requests for access. Correspondingly, let's say your app no longer requires the previously provisioned concurrent access capacity. You also have the flexibility to reduce provisioned capacity metrics. To help you reduce costs.

Using DYNAMODB gives developers the flexibility to develop applications. Dynamodb is free of mode. This way, users are not limited to a particular data model. In a traditional SQL database, the schema of the table is defined when it is created.

You cannot change or add a new column to a table that has already been created. Amazon Dynamodb does not have a fixed pattern so that developers can add new properties to the table at any time. A flexible data model makes it easier for developers to perform high-speed iterative updates of agile development and applications.

Of course, as with any distributed system, the use of DYNAMODB also requires attention to consistency. Dynamodb gives developers the option of consistency, giving developers the freedom to choose a consistent model that suits their application.

When reading data, developers can choose to use strong consistency, or finally consistent way to read the data.

The assumption is finally consistent, meaning that after the application has just submitted a write operation, assuming that it reads immediately, it may not be able to read the latest data, but finally you will read the consistent data.

Finally, a consistent model ensures service availability and improves performance to the greatest extent possible. A typical scenario is a shopping cart that you use when you shop online. Or the site's comment information, and so on. These scenarios have no very stringent requirements for consistency.

Assuming that you choose to read the data in a strongly consistent manner, you might sacrifice some degree of performance and service availability. The advantage is the ability to access the latest data in any situation. Software development is also relatively simple.

A typical use case is a scenario that has to be more consistent. For example, the scene of submitting an order when shopping online.

Strong consistency is required to ensure that the same product is not sold to two different customers at the same time.

The cost of using DYNAMODB is to be able to predict. Dynamodb's pricing model is easy. Based on the monthly storage capacity per GB. and monthly provisioned read and write throughput capacity units are billed. The capacity is easier to understand. Throughput capacity unit is a more important, and everyone is also more unfamiliar with the concept. Each read capacity unit (or write capacity unit) supports 1 reads (or writes) of 1 items per second (item). Each read operation has a maximum size of 4KB and a maximum 1KB size per write operation.

Extra performance throughput capacity is required for items that are out of size (item).

For example, you have configured 1000 read throughput capacity units, and 1000 write performance throughput capacity units.

In this case your table will be able to support 1000 read operations per second, and 1000 write operations. Assuming that it is finally consistent to read, your table will be able to support 2000 read operations per second.

Dynamodb also provides additional features to further improve the performance of application access, and Dynamodb is able to create and maintain indexes on primary key attributes. The application submits the primary key that needs to be queried to the database. The corresponding data set can be obtained very quickly. In addition to this, Amazon Dynamodb supports the creation of global and local level two indexes. Using a Level Two index enables applications to query for properties other than the primary key. can also achieve very good performance. The customer is able to create one or more level two indexes on a table, and then perform queries on the index.

Amazon Dynamodb enables users to store and retrieve arbitrarily sized data in a simple and cost-effective manner. The same time provides high concurrency low latency response. For throughput assurance and a few milliseconds of low latency response, Dynamodb makes it ideal for Internet-based applications like gaming, advertising, mobile, and more.

Let's say you want to know more specific information. Access to the Dynamodb page.




Amazon DynamoDB, a high-performance, scalable NoSQL database for Internet applications

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.