📜 ⬆️ ⬇️

theses to the report "practical use of noSQL"

Prepared theses for DevConf


One of the most common architectural solutions for high-load WEB applications involves horizontal scaling, or it is also called
arding Sharding, as a rule, is carried out according to user_id user_id With this architecture, when passing through the User authorization procedure, it is necessary to check all DBs (shards) to find the User data. And it is extremely not effective. Accordingly, the question arises about the “central information repository”, which can be a quick key / value database. Further, the report will consider in more detail the usage patterns, advantages and disadvantages, the memcachedb exchange protocol.

Sometimes a project grows and in our cluster several projects appear, each with its own database, with different domain names, for example: myproject.ru, myproject.ua, myproject.me, myproject.tv. And we want to combine them logically and make a single authorization. The single authorization scheme is similar to the sharding scheme, you need a single data warehouse for user authorization. It is proposed to use radish as such storage. Further, the report will consider the sso scheme with a single data store on radish, radish protocol, its capabilities, PHP clients will be mentioned and what problems may arise.
Next, we will consider the use of radish as a reference book using the example of the auto-completion script (radish lists).
')
All high-load systems are built in such a way that the content is given as quickly as possible. For this reason, most tasks prepare data in a bad ground (in the background). Queuing is used to transfer information from the front-end to badground tasks. Effectively use queues with special servers. One of the most productive servers is memcacheq. Next is a scheme for converting photo / video content using memcacheq.

Queue servers are efficiently used in distributed systems, which today represent many large WEB projects. If you need a distributed queue server, or you need some logic when processing messages, then it is suggested to use RabbitMQ, which exchanges via AMQP (Advansed Message Query Protocol). Next, there will be a small digest of the AMQP protocol, practical schemes for using RabbitMQ are described: chat, friends feed, broadcast, news subscription. The strengths and weaknesses of RabbitMQ. Overview of PHP clients.
The noSQL family has object or document databases. They contain data objects. One such database is MongoDB. Objects in the database are stored in BSON format - this is binary JSON. This type of database is characterized by high data insertion / extraction rates. Object databases are not inferior in functionality to RMDB. This report will describe the experience of using MongoDB when building chains of friends (online search for crossing circles of friends). An example of a chain of friends: Vasya Pupki - Igor Shapkin - Musya Ibragimov - Igor Cherubimov. PHP & MongoDB overview.

if there is time, I will tell you about the experience of using native-XML DB Sedna in the tradebox.ru project.

I am pleased to take into account all your wishes when preparing for the report.

Source: https://habr.com/ru/post/88705/


All Articles