Serverless alternative to traditional databases

A modern distributed DBMS must be able to support various types of workload, satisfying the needs of completely different users. Yandex Database allows not only storing petabytes of data, supporting the processing of millions of requests per second, but also provides a serverless computing mode. This platform makes it possible to serve projects with different types of workload: key-value, traditional web applications based on a relational database, as well as document databases.





Serverless computing is currently used in various fields - from creating chat bots and IoT applications to independent APIs for accessing services over HTTP. Platforms for deploying serverless computing are available both from most cloud providers (Yandex Cloud Functions, Amazon Web Services Lambda, Google Functions) and the Open Source community.





The transition from "hardware" servers to virtualization and containerization at one time led to the emergence of a culture of DevOps, the birth of Infrastructure as Code approaches, providing an opportunity to devote more time to business tasks, rather than infrastructure maintenance. In addition, a rather high "tax" on infrastructure was reduced, which users had to pay unwittingly.





Moving to the era of  serverless computing — , , , , . -. . , , , , , «-» . , , . , , .





, , . , S3, , . take or pay: ( ), , . , ? ?





Yandex Database

:





  • – , .





  • , 2020 5 , 60% .





  • ,   .





  • IoT- .





  • ,   – , .





2008 - «» : , , . , . , , .





, , — (), . , , . .





2011 , KiWi , . KiWi — «-» , . . KiWi . . : TTL (Time To Live), . , 600 . : Cassandra .





. , (eventual consistency). , , KiWi : , .





, KiWi, — , , . .   , , .





, , , «-». :





  • — ;





  • serializable ;





  • ACID- , , ;





  • ;





  • ;





  • (multitenancy);





  • — .





. , : , , . , , — . , , , , , , . . . Yandex Database (YDB), .





YDB

YDB : . — , , , . — . (primary key), . , .





Yandex Database — ( «-»), .





YQL API, YDB OLTP- , SQL- (join). «-» YDB (Document API) Amazon DynamoDB API — , AWS SDK AWS CLI.





, , , JSON- . Yandex Database JsonAPI, JSON — JsonDocument, JsonPath . JsonAPI, .





YDB

YDB – , . . . , , – . , , .





— , «-» , . , , , .





— , , , , . Yandex Database . — , «» . YDB — -, , «» , , .





Yandex Database .





(Distributed storage), , () (snapshots). Distributed storage — «» (Binary Large Object — ), , , .





Network Interconnect — , . Yandex Database TCP. , .





Yandex Database , ACID , ( ), .





, , (2PC), , Yandex Database (deterministic transactions). serializable Calvin: , , , . , . , , , .





Yandex Database YQL (Yandex Query Language) — SQL : list, tuple, struct, dict. SQL.





Query Processor — YQL-. YQL (DAG) . , . .





— gRPC proxy. gRPC ( , Google). YDB API , SDK Yandex Database.





YDB

, , , . . Yandex Database — 1–2 .     — . , — . 100 , , . , , . , , . .





Yandex Database , «», , , -.





(request unit) — . , , . YDB Free Tier: request units , . , , .





. - , (Object Storage), . , , - .





, YDB

Auto.ru « ». . , . Yandex.Cloud — Yandex Cloud Functions , . «» , , . Yandex Database . 100 . . Auto.ru - , .





, Auto.ru, Yandex Database «», «.», «.», «.», «.», «.», «.», «.», «.» .





, .





Yandex Database . , , : -; -, SQL; ; JSON API .





More details can be found in the Yandex Serverless Ecosystem and Yandex Database Chat communities on Telegram. 





We are planning a series of articles about the internal structure of Yandex Database, write in the comments which topics are the most interesting.








All Articles