{"id":84755,"date":"2020-06-10T13:43:01","date_gmt":"2020-06-10T11:43:01","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/in-memory-arhitektura-dlya-veb-servisov-osnovy-tehnologii-i-princzipy"},"modified":"2020-06-10T13:43:01","modified_gmt":"2020-06-10T11:43:01","slug":"in-memory-arhitektura-dlya-veb-servisov-osnovy-tehnologii-i-princzipy","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/in-memory-arhitektura-dlya-veb-servisov-osnovy-tehnologii-i-princzipy","title":{"rendered":"In-memory architecture for web services: fundamentals of technology and principles","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>In-Memory is a set of data storage concepts where data is kept in the application's RAM, while the disk is used for backup. In traditional approaches, data is stored on disk with memory serving as cache. For example, a web application with a backend for data processing requests data from storage: it retrieves, transforms, and transmits large amounts of data over the network. In In-Memory computing, computations are sent to the data\u2014located in storage\u2014where they are processed, reducing network load.<\/p>\n<p><center><div class=\"youtube-placeholder\" data-id=\"NRMFcnROTA0\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/NRMFcnROTA0\/hqdefault.jpg\" alt=\"Play video\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center>Thanks to its architecture, In-Memory significantly accelerates data access speed, sometimes by orders of magnitude. For example, bank analysts want to view a report on issued loans in daily dynamics over the past year in an analytical application. This process on a traditional DBMS would take minutes, whereas with In-Memory it appears almost instantly. This is because the approach allows for caching much more information, which is stored in RAM 'at hand.' The application doesn't need to request data from the hard drive, which is limited by the speed of the network and disk.<\/p>\n<p>What other possibilities are available with In-Memory and what this approach entails will be discussed by <b>Vladimir Pligin<\/b> \u2014 an engineer at GridGain. This overview material will be useful for backend web application developers who have not worked with In-Memory and wish to try it, or are curious about modern trends in software development and architectural design.<\/p>\n<p><b>Note<\/b>. The article is based on a transcript of Vladimir's presentation at the #GetIT Conf conference. Before the introduction of self-isolation, we regularly held meetups and conferences for developers in Moscow and St. Petersburg, discussing trends, relevant development issues, problems, and their solutions. Now that conferences cannot be held, it's the perfect time to share valuable materials from the past.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Who uses In-Memory and how<\/h2>\n<p>\nIn-Memory is most commonly used where fast user interaction or processing large amounts of data is required.<\/p>\n<ul>\n<li><b>Banks<\/b> use In-Memory, for example, to reduce latency for customers using applications or for client analysis before granting a loan.\n<\/li>\n<li><b>Fintech<\/b> uses In-Memory to enhance the performance of services and applications for banks that outsource data processing and analysis.\u00a0\n<\/li>\n<li><b>Insurance companies<\/b>: for risk calculation, for example, by analyzing client data over several years.\n<\/li>\n<li><b>Logistics companies<\/b>. They process large amounts of data, for instance, to calculate optimal routes for freight and passenger transportation with thousands of parameters, tracking the status of shipments.\n<\/li>\n<li><b>Retail<\/b>. In-Memory solutions help to serve customers faster and process large volumes of information: shipments, invoices, transactions, availability of thousands of products in warehouses, and preparing analytical reports.\n<\/li>\n<li>In <b>IoT<\/b> In-Memory replaces traditional databases.\n<\/li>\n<li><b>Pharmaceutical<\/b> companies use In-Memory, for example, to iterate through combinations of drug compositions.\u00a0\n<\/li>\n<\/ul>\n<p>\nI will share several examples of how our clients use In-Memory solutions and how you can implement them in your organization.<\/p>\n<h3>In-Memory as a primary storage<\/h3>\n<p>\nOne of our clients is a major supplier of medical scientific equipment from the USA. They use an In-Memory solution as their primary data storage. All data is stored on disk, while a subset of actively used data is kept in RAM. Access methods to the storage are standard \u2014 GDBC (Generic Database Connector) and SQL query language.<\/p>\n<p><img decoding=\"async\" alt=\"In-memory architecture for web services: fundamentals of technology and principles\" src=\"\/wp-content\/uploads\/2020\/06\/b6dbb963d2157a7588199fe85ab78e11.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAll together this is referred to as In-Memory Database (IMDB) or Memory-Centric Storage. This class of solutions has many names, and these are not the only ones.\u00a0<\/p>\n<p>IMDB features:<\/p>\n<ul>\n<li>The data stored in In-Memory and accessible via SQL are the same as in other approaches. They are synchronized, differing only in the way they are presented and how to access them. There is transactional consistency among the data.\n<\/li>\n<\/ul>\n<p><\/p>\n<ul>\n<li>IMDB is faster than relational databases because retrieving information from RAM is quicker than from disk.\u00a0\n<\/li>\n<li>The internal optimization algorithms have fewer instructions.\n<\/li>\n<li>IMDBs are suitable for managing data, events, and transactions in applications.\n<\/li>\n<\/ul>\n<p>\nIMDB partially supports ACID: atomicity, consistency, and isolation. However, they do not support 'durability' \u2014 when power is lost, all data is lost. To mitigate this issue, snapshots can be used \u2014 a 'snapshot' of the database, similar to a database backup to a hard drive, or logging transactions to recover data after a reboot.<\/p>\n<h3>To create fault-tolerant applications<\/h3>\n<p>\nLet\u2019s consider the classic architecture of a fault-tolerant web application. It works like this: a web load balancer distributes all requests among the servers. This system is robust because the servers duplicate each other and provide backup during incidents.<\/p>\n<p><img decoding=\"async\" alt=\"In-memory architecture for web services: fundamentals of technology and principles\" src=\"\/wp-content\/uploads\/2020\/06\/86d363d25cf2c0ac3c5811f3458b2133.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nThe load balancer directs all requests from a single session strictly to one server. This is the sticky session mechanism: each session is bound to <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/en\/server\/dts-shicago\/\"   title=\"server\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"2876\">server<\/a>, where it is stored and processed locally.\u00a0<\/p>\n<p>What happens when one of the <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/en\/server\/\"   title=\"servers\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"1498\">servers<\/a>?<\/p>\n<p><img decoding=\"async\" alt=\"In-memory architecture for web services: fundamentals of technology and principles\" src=\"\/wp-content\/uploads\/2020\/06\/414457e02812e8c087a1f2a24d8f5902.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>The service remains unaffected because the architecture is duplicated. However, we lose a subset of sessions from the failed server<\/b>. Along with that, users linked to these sessions are also lost. For example, a client places an order and suddenly gets thrown out of their account. They will be dissatisfied when they log in again and find that they have to redo everything.<\/p>\n<p>The web application must support a large number of users without \u2018lagging\u2019 so they can work comfortably. However, in case of a failure, with each subsequent request, the time spent communicating with the session storage will increase. This raises the average latency for other users. But they do not want to wait longer than they are accustomed to.<\/p>\n<p>This problem can be solved, as with another client of ours\u2014a large PaaS provider from the USA. They use In-Memory to cluster web sessions. For this, they store them not locally, but centrally\u2014in an In-Memory cluster. In this case, sessions are accessible much faster because they are already in RAM.<\/p>\n<p><img decoding=\"async\" alt=\"In-memory architecture for web services: fundamentals of technology and principles\" src=\"\/wp-content\/uploads\/2020\/06\/9569a62570288e1e9ec8a9af01fb42dc.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nWhen a server crashes, the load balancer redirects requests from the failed server to other servers, just as in the classic architecture. But there\u2019s an important difference: <b>sessions are stored in the In-Memory cluster<\/b> and the servers have access to the sessions of the failed server.<\/p>\n<p>This architecture increases the fault tolerance of the entire system. Moreover, it is even possible to completely abandon the sticky session mechanism.<\/p>\n<h3>Hybrid transactional-analytical processing (HTAP)<\/h3>\n<p>\nTypically, transactional and analytical systems are kept separate. When they are separated, the main database is under load. To process data analytically, the data is copied into a replica to prevent analytical processing from interfering with transactional processes. However, the copying occurs with a delay\u2014replication cannot be done without lag. If we were to do this synchronously, it would also slow down the main database without yielding any benefits.<\/p>\n<p>In HTAP, everything works differently\u2014 the same data store is used for transactional loads from applications and for analytical queries that may take a long time to execute. When data resides in memory, analytical queries are executed faster, and the database server is less burdened (on average).<\/p>\n<p><img decoding=\"async\" alt=\"In-memory architecture for web services: fundamentals of technology and principles\" src=\"\/wp-content\/uploads\/2020\/06\/0ae5ca63b8bca13eeb169cbfb01ab699.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nThe hybrid approach 'breaks down the wall' between transaction processing and analytics. When we perform analytics on the same storage, analytical queries are run on data from memory. They are much more accurate, interpretable, and relevant.<\/p>\n<h2>Integration of In-Memory Solutions<\/h2>\n<p>\nA relatively simple way is to\u00a0<b>develop everything from scratch.<\/b>We keep data on disk, while hot data is stored in memory. This helps to withstand server restarts or outages.<\/p>\n<p>There are two main scenarios when data is stored on disk. In the first, we want to withstand crashes or scheduled restarts of the cluster or parts\u2014we want to use it just like a simple database. In the second scenario, when there is too much data, a portion of it resides in memory.<\/p>\n<p>If it is not possible to build everything from scratch, it is possible to integrate In-Memory into the already <b>existing architecture.<\/b>But not all In-Memory solutions are suitable for this. There are three mandatory conditions. An In-Memory solution must support:<\/p>\n<ul>\n<li>a standard way to connect to the database that will be underneath it (for example, MySQL);\n<\/li>\n<li>a standard query language, so that logic for interacting with the storage does not need to be rewritten and modified;\n<\/li>\n<li>transactionality\u2014to maintain the semantics of interaction.\n<\/li>\n<\/ul>\n<p>\nIf all three conditions are met, then integration is possible. We place the In-Memory Data Grid between the application and the database. Now, write queries will be delegated to the lower-level database, and read queries will go to the database if the data is not in the cache.<\/p>\n<p><img decoding=\"async\" alt=\"In-memory architecture for web services: fundamentals of technology and principles\" src=\"\/wp-content\/uploads\/2020\/06\/98edd440297e3b28aeae3326dc7fe3ef.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<blockquote><p>If fast data access and processing are important to you, for instance for business analytics, you might consider implementing In-Memory. You can use both methods when designing a new architecture.<\/p><\/blockquote>\n<p>Source: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/505792\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>In-Memory \u2014\u00a0\u043d\u0430\u0431\u043e\u0440 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0439 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0433\u0434\u0430 \u043e\u043d\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044e\u0442\u0441\u044f \u0432 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0430 \u0434\u0438\u0441\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0431\u044d\u043a\u0430\u043f\u0430. \u0412 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u043e\u0434\u0445\u043e\u0434\u0430\u0445 \u0434\u0430\u043d\u043d\u044b\u0435 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u043d\u0430 \u0434\u0438\u0441\u043a\u0435, \u0430 \u043f\u0430\u043c\u044f\u0442\u044c \u2014 \u0432 \u043a\u044d\u0448\u0435. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0441 \u0431\u044d\u043a\u0435\u043d\u0434\u043e\u043c \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442 \u0438\u0445 \u0432 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435: \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442, \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442, \u0430 \u043f\u043e \u0441\u0435\u0442\u0438 \u043f\u0435\u0440\u0435\u0433\u043e\u043d\u044f\u0435\u0442\u0441\u044f \u043c\u043d\u043e\u0433\u043e \u0434\u0430\u043d\u043d\u044b\u0445. \u0412 In-Memory \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043a \u0434\u0430\u043d\u043d\u044b\u043c \u2014\u00a0\u0432 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":84756,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-84755","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"In-Memory \u2014 \u043d\u0430\u0431\u043e\u0440 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0439 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0433\u0434\u0430 \u043e\u043d\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044e\u0442\u0441\u044f \u0432 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0430 \u0434\u0438\u0441\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0431\u044d\u043a\u0430\u043f\u0430. \u0412 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u043e\u0434\u0445\u043e\u0434\u0430\u0445 \u0434\u0430\u043d\u043d\u044b\u0435 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u043d\u0430 \u0434\u0438\u0441\u043a\u0435, \u0430 \u043f\u0430\u043c\u044f\u0442\u044c \u2014 \u0432 \u043a\u044d\u0448\u0435.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/in-memory-arhitektura-dlya-veb-servisov-osnovy-tehnologii-i-princzipy\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47In-memory \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u0434\u043b\u044f \u0432\u0435\u0431-\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432: \u043e\u0441\u043d\u043e\u0432\u044b \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 \u0438 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"In-Memory \u2014 \u043d\u0430\u0431\u043e\u0440 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0439 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0433\u0434\u0430 \u043e\u043d\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044e\u0442\u0441\u044f \u0432 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0430 \u0434\u0438\u0441\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0431\u044d\u043a\u0430\u043f\u0430. \u0412 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u043e\u0434\u0445\u043e\u0434\u0430\u0445 \u0434\u0430\u043d\u043d\u044b\u0435 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u043d\u0430 \u0434\u0438\u0441\u043a\u0435, \u0430 \u043f\u0430\u043c\u044f\u0442\u044c \u2014 \u0432 \u043a\u044d\u0448\u0435.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/in-memory-arhitektura-dlya-veb-servisov-osnovy-tehnologii-i-princzipy\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-06-10T11:43:01+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-06-10T11:43:01+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47In-memory architecture for web services: technology fundamentals and principles | ProHoster","description":"In-Memory is a set of data storage concepts where data is stored in the application's RAM, while the disk is used for backup. In traditional approaches, data is stored on disk, with memory used for caching.","canonical_url":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/in-memory-arhitektura-dlya-veb-servisov-osnovy-tehnologii-i-princzipy","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47In-memory \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u0434\u043b\u044f \u0432\u0435\u0431-\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432: \u043e\u0441\u043d\u043e\u0432\u044b \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 \u0438 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b | ProHoster","og:description":"In-Memory \u2014 \u043d\u0430\u0431\u043e\u0440 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0439 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0433\u0434\u0430 \u043e\u043d\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044e\u0442\u0441\u044f \u0432 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0430 \u0434\u0438\u0441\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0431\u044d\u043a\u0430\u043f\u0430. \u0412 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u043e\u0434\u0445\u043e\u0434\u0430\u0445 \u0434\u0430\u043d\u043d\u044b\u0435 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u043d\u0430 \u0434\u0438\u0441\u043a\u0435, \u0430 \u043f\u0430\u043c\u044f\u0442\u044c \u2014 \u0432 \u043a\u044d\u0448\u0435.","og:url":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/in-memory-arhitektura-dlya-veb-servisov-osnovy-tehnologii-i-princzipy","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-06-10T11:43:01+00:00","article:modified_time":"2020-06-10T11:43:01+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"84755","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 14:51:43","updated":"2026-02-09 21:41:53","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/84755","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=84755"}],"version-history":[{"count":2,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/84755\/revisions"}],"predecessor-version":[{"id":160156,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/84755\/revisions\/160156"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media\/84756"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=84755"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=84755"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=84755"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}