Notice: file_put_contents(): Write of 2671 bytes failed with errno=28 No space left on device in /var/www/group-telegram/post.php on line 50

Warning: file_put_contents(): Only 8192 of 10863 bytes written, possibly out of free disk space in /var/www/group-telegram/post.php on line 50
Гепардово гнездо | Telegram Webview: gepardchan/95 -
Telegram Group & Telegram Channel
ClickHouse и баги в Poco

В мире C++ есть такая известная библиотека, как Poco. По сути, это универсальный фреймворк для Web-приложений на C++, который содержит кучу всего: JSON, парсинг конфигов, HTTP клиент и сервер, работу с БД и много чего еще. Библиотека довольно старая, написана в объектно-ориентированном стиле. Ее код довольно простой и содержит всякой сложной шаблонной магии, в которой можно закопаться [передаю привет Boost.Asio :)] И HTTP-сервер в ней написан просто, без корутин и прочей асинхронности: когда серверу приходит соединение, то с начала его жизни и до конца оно обрабатывается потоком из тредпула, причем при ожидании данных от клиента поток блокируется.

Удивительно, но это одна из немногих широко известных и при этом простых реализаций HTTP-сервера на C++ :) А еще эту библиотеку использует ClickHouse (правда, у них есть свой форк Poco, но об этом попозже)

Я недавно выяснил, что под большой нагрузкой Poco начинает сильно тормозить через некоторое время. Оказалось, что там есть баг: из-за гонки счетчик числа активных потоков внутри библиотеки сбивается, из-за чего она начинает думать, что запущено много потоков, а на самом деле активен только один. А поскольку у сервера есть лимит на число потоков, то этот один поток в итоге вынужден обрабатывать все запросы, хотя в настройках указано, что потоков должно быть больше.

Решил посмотреть, как с этим багом живет ClickHouse. А оказалось, что они пропатчили этот баг в своем форке и никому об этом не сказали :) Поэтому я решил довести этот фикс до upstream'а.

Обидно, что ClickHouse держит патчи в своем форке и не пытается их законтрибутить :( Но буквально недавно разработчики ClickHouse пошли еще дальше и влили свой форк Poco в основной репозиторий ClickHouse, поформатировав при этом код 🐳 При этом в качестве одной из причин назвали «upstream development does not look very active these days», хотя, судя по репозиторию Poco, недавние PRы все еще вливаются. Таким образом, дальнейший перенос патчей будет еще более затруднительным :(



group-telegram.com/gepardchan/95
Create:
Last Update:

ClickHouse и баги в Poco

В мире C++ есть такая известная библиотека, как Poco. По сути, это универсальный фреймворк для Web-приложений на C++, который содержит кучу всего: JSON, парсинг конфигов, HTTP клиент и сервер, работу с БД и много чего еще. Библиотека довольно старая, написана в объектно-ориентированном стиле. Ее код довольно простой и содержит всякой сложной шаблонной магии, в которой можно закопаться [передаю привет Boost.Asio :)] И HTTP-сервер в ней написан просто, без корутин и прочей асинхронности: когда серверу приходит соединение, то с начала его жизни и до конца оно обрабатывается потоком из тредпула, причем при ожидании данных от клиента поток блокируется.

Удивительно, но это одна из немногих широко известных и при этом простых реализаций HTTP-сервера на C++ :) А еще эту библиотеку использует ClickHouse (правда, у них есть свой форк Poco, но об этом попозже)

Я недавно выяснил, что под большой нагрузкой Poco начинает сильно тормозить через некоторое время. Оказалось, что там есть баг: из-за гонки счетчик числа активных потоков внутри библиотеки сбивается, из-за чего она начинает думать, что запущено много потоков, а на самом деле активен только один. А поскольку у сервера есть лимит на число потоков, то этот один поток в итоге вынужден обрабатывать все запросы, хотя в настройках указано, что потоков должно быть больше.

Решил посмотреть, как с этим багом живет ClickHouse. А оказалось, что они пропатчили этот баг в своем форке и никому об этом не сказали :) Поэтому я решил довести этот фикс до upstream'а.

Обидно, что ClickHouse держит патчи в своем форке и не пытается их законтрибутить :( Но буквально недавно разработчики ClickHouse пошли еще дальше и влили свой форк Poco в основной репозиторий ClickHouse, поформатировав при этом код 🐳 При этом в качестве одной из причин назвали «upstream development does not look very active these days», хотя, судя по репозиторию Poco, недавние PRы все еще вливаются. Таким образом, дальнейший перенос патчей будет еще более затруднительным :(

BY Гепардово гнездо


Warning: Undefined variable $i in /var/www/group-telegram/post.php on line 260

Share with your friend now:
group-telegram.com/gepardchan/95

View MORE
Open in Telegram


Telegram | DID YOU KNOW?

Date: |

"Markets were cheering this economic recovery and return to strong economic growth, but the cheers will turn to tears if the inflation outbreak pushes businesses and consumers to the brink of recession," he added. In 2014, Pavel Durov fled the country after allies of the Kremlin took control of the social networking site most know just as VK. Russia's intelligence agency had asked Durov to turn over the data of anti-Kremlin protesters. Durov refused to do so. Oh no. There’s a certain degree of myth-making around what exactly went on, so take everything that follows lightly. Telegram was originally launched as a side project by the Durov brothers, with Nikolai handling the coding and Pavel as CEO, while both were at VK. The company maintains that it cannot act against individual or group chats, which are “private amongst their participants,” but it will respond to requests in relation to sticker sets, channels and bots which are publicly available. During the invasion of Ukraine, Pavel Durov has wrestled with this issue a lot more prominently than he has before. Channels like Donbass Insider and Bellum Acta, as reported by Foreign Policy, started pumping out pro-Russian propaganda as the invasion began. So much so that the Ukrainian National Security and Defense Council issued a statement labeling which accounts are Russian-backed. Ukrainian officials, in potential violation of the Geneva Convention, have shared imagery of dead and captured Russian soldiers on the platform. Overall, extreme levels of fear in the market seems to have morphed into something more resembling concern. For example, the Cboe Volatility Index fell from its 2022 peak of 36, which it hit Monday, to around 30 on Friday, a sign of easing tensions. Meanwhile, while the price of WTI crude oil slipped from Sunday’s multiyear high $130 of barrel to $109 a pop. Markets have been expecting heavy restrictions on Russian oil, some of which the U.S. has already imposed, and that would reduce the global supply and bring about even more burdensome inflation.
from tw


Telegram Гепардово гнездо
FROM American