abstracts of the report “practical use of noSQL”

    Prepared abstracts for DevConf

    One of the most common architectural solutions for WEB applications, designed for high loads, involves horizontal scaling or is also called sh
    arding. Sharding, as a rule, is carried out by the user number user_id. With this architecture, when going through the User authorization procedure, it is necessary to scan all databases (shards) to find the User data. And this is extremely inefficient. Accordingly, the question arises of a “central repository of information”, which can be a fast key / value database. Further in the report, usage patterns, advantages and disadvantages, and the memcachedb exchange protocol will be examined in more detail.

    Sometimes a project grows and several projects appear in our cluster, 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 the radish, the radish protocol, its capabilities, clients on PHP will be mentioned and what problems may arise.
    Next, we will consider the use of radish as a reference using an example of an auto-completion script (radish lists).

    All highly loaded systems are built in such a way that the content is delivered as quickly as possible. Therefore, most tasks prepare data in the bad background (in the background). Queues are used to transfer information from the front-end to bed-tasks. Use queues efficiently with dedicated servers. One of the most productive servers is memcacheq. The following is a diagram of the conversion of photo / video content using memcacheq.

    Queue servers are effectively used in distributed systems, which today represent many large WEB projects. If you need a distributed queue server, or if you need some logic when processing messages, it is proposed to use RabbitMQ, which exchanges using the AMQP (Advansed Message Query Protocol) protocol. Then there will be a short excursion on the AMQP protocol, practical schemes for using RabbitMQ are described: chat, friends' feed, broadcast, newsletter subscription. The strengths and weaknesses of RabbitMQ are described. 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 rates of data insertion / extraction. Functional databases are not inferior in functionality to RMDB. This report will describe the experience of using MongoDB in building friends chains (online search for intersecting friends). Example of a chain of friends: Vasya Pupki - Igor Shapkin - Musya Ibragimov - Igor Cheruvimov. PHP & MongoDB overview.

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

    With pleasure I will consider all your wishes in preparation for the report.

    Also popular now: