Состоялся (https://github.com/memcached/memcached/releases/tag/1.5.15) релиз системы кеширования данных в оперативной памяти Memcached 1.5.15 (http://memcached.org/), оперирующей данными в формате ключ/значение и отличающейся простотой использования. Memcached обычно применяется как легковесное решение для ускорения работы высоконагруженных сайтов путём кэширование доступа к СУБД и промежуточным данным. Код поставляется (https://github.com/memcached/memcached) под лицензией BSD.
В новой версии реализована экспериментальная поддержка аутентификации для протокола ASCII. Аутентификация включается при помощи опции "-Y [authfile]" с указанием в файле authfile до восьми пар "логин:пароль". В отличие от ранее реализованной для бинарного протокола аутентификации на базе SASL реализация для ASCII существенно проще, не требует внешних зависимостей и собирается по умолчанию. При включении аутентификации через опцию "-Y" автоматически отключается бинарный протокол и работа через UDP. Разграничения доступа в привязке к логинам пока не поддерживаются.В новом выпуске также ускорена работа операций incr/decr за счёт замены snprintf. Обеспечена совместимость бинарного протокола с функциональностью idle-timeout. Удалён код для поддержки режима "-o inline_ascii_response", который был отключен начиная с выпуска 1.5.0. Данный режим потребляет на 10-20 байт больше на запись для ускорения обработки запросов в режиме ASCII и потерял смысл после перехода с использования snprintf на быструю реализацию itoa.
URL: https://github.com/memcached/memcached/releases/tag/1.5.15
Новость: https://www.opennet.me/opennews/art.shtml?num=50715
>протокола ASCIIЗа такое именование нужно бить: неужели непонятно насколько нелепо использовать для названия нового велосипеда уже устоявшуюся и повсеместно известную аббревиатуру?
в чем новизна велосипеда, если этими буквами обозначена текстовая версия протокола? Есть еще binary.но вообще - берегите исходники версии 1.2 - современные, чую, скоро мордокнига доломает окончательно.
Нафига этой поделке аутентификация вообще, учитывая что она by design локальна, в ней масса хаков для уменьшения rtt, которые любой вариант защщщиты сводит к нулю, и не должна находиться далеко от сервера, который ее пользует, спросите у них.
> она by design локальнаТак ведь облака же! Когда пых крутится (физически) в датацентре в Филадельфии, мускул - в Неваде, а мемкэш - в Нидерландах, как же без аутентификации?
расстояние от Филадельфии до Нидерландов примерно 6000 километров по прямой, т.е. на отправку запроса и получение ответа уйдет не меньше 0,04 сек., это если скорость света в вакууме взять
если учесть что связь не в вакууме и другие накладные расходы (не буду расчеты приводить, не поймешь) то будет больше 0,1 с, т.е. уже не важно в памяти эта информация, на диске (или с флэшки смартфона читается)старайся молчать, умнее будешь казаться
да ну, все правильно - то есть вот так они и проектируют, ага.получился аж rtt 200, проще и надежнее было slave mysql'я поднять локальный? Да кого это колебет, немодно-немолодежно.
Вообще-то, речь именно об этом - платой за гибкость облачных решений является рост накладных расходов, причём возможность как-то их контролировать у подписчика облачного сервиса очень ограничена. Он видит два контейнера, а где они реально выполняются, какие дополнительные задержки возникают при обмене трафиком между ними - об этом думать не модно, а задавать вопросы об этом столь же неприлично, как и ставить sshd в контейнер.
но сову-то зачем тягать на глобус?впрочем, да, думать немодно, как на локалхосте был мемкэш, так в облака его и перенесем, бережно сохранив udp-binding к 0.0.0.0
Общемировой тренд патамушта.
Вы облака-то в живую видели или только в презентациях?
>этими буквами обозначена текстовая версия протоколаЭто вообще не оправдывает словосочетание "ASCII протокол". Ну вот совсем.
Так исторически сложилось. Когда добавили binary, старое надо было как-то назвать, ну вот и назвали.
> вот и назвали.Я возражаю не против факта называния, а против самого названия.
Надо было лет этак 12 раньше возражать. :-)Сейчас уже все привыкли.
Аутентификация нужна хотя бы чтобы js-fullstack-smoothie-react-typescript-vscode разработчики, выполняющие роль девопсов работающих админами, выставив в паблик порт такой базы получили хоть какую-то защиту.
Ну и для обпаков, фаерволы в которых настраивать никто не умеет, понятие локалки отсутствует как класс, а кидать VPN между инстансами - рокетсаенс, учитывая описанное выше
Она по дефолту выключена, так что смузихлебам не поможет.
в следующей версии поменяют дефолт, не накаркай.
udp уже победили, даже на секунду не задумавшись, зачем этот udp вообще-то придумали.
Да пусть делают, что хотят. Все равно последняя нормальная ветка - 1.2. В фейсбуке все сделали через одно место с самого началаю
> Да пусть делают, что хотят. Все равно последняя нормальная ветка - 1.2.ну вот и будем для каждого локалхоста собирать из исходников - получится быстрее чем разбираться, почему опять ничего не работает и где какой ключ надо чтоб вернуть как было.
> В фейсбуке все сделали через одно место с самого начала
угу, в тот момент когда придумали.
Зачем для каждого? Я один раз пакет собрал и отлично. Ну раз в пару лет пересоберу под новый LTS, несложно.
В нормальных облаках есть VPC с изолированной сетью, централизованным файрволлом, при желании - приватными IP-адресами (хотя это и не нужно при наличии файрволла) и подключением через предоставленный VPN. А наружу выставляются только нужные сервисы через лоадбалансеры.
чего ж тут нормального? Нормальные облака они не про то чтоб просто выкинуть серверную инфраструктуру, они еще и для того чтоб не думать головой на тему сколько у нас хостов, инстансов и подов.
А ты предлагаешь вручную ип адреса выделять - каменный век, девляпсы так не работают.
Никто и не выделяет "ip-адреса", заводится сеть и фаервол настраивается для сети, а не для каждого выделенного ip.
Так и делаю до сих пор. Беру 1.2, собираю под современный дистр, запускаю N штук memcached-1.2, прибитых к ядрам, на разных портах, в приложении делаю consistent hashing pool. Работает намного лучше, чем фейсбуковские "улучшения" с одним локом на все.
щас погоди еще к ping прикрутят тлс и аутентификацию
Особо сказочные вроде меня пускают посторонних пользователей на локальный сервер. Именно ради этого пришлось переводить все коннекты с мемкэшем на протокол binary, в котором аутентификация есть
Бить нужно переводчика. "ASCII protocol" - это не "протокол ASCII" (как будто он так называется), а "ASCII-протокол" (т.е. текстовый, не бинарный). То же самое, как, например, "text file" - это "текстовый файл", а не "файл text".
Ну ты же говоришь: "какое прекрасное голубое небо". А не "Как прекрасно O2 излучает на длинне 500 нм"?
Бинарный/текстовый протокол - устоявшаяся в среде разработчиков ПО терминогология.ASCII эдесь вообще не лезет - это же один из видов преобразования чиселок в символы понятные человеку. Ты же сам привел пример: никто не говорит "ascii файл". Что бы ты подумал о человеке который так говорит? Примерно, то же самое если человек говорит "компьютер" показывая на монитор.
> Ты же сам привел пример: никто не говорит "ascii файл". Что бы ты подумал о человеке который
> так говорит?Что человек имеет в виду текстовый файл в кодировке ASCII?
Но это я -- в моей вселенной это вполне устоявшееся обозначение:
universe/84701 https://www.census.gov/econ/www/instrasci.html
universe/84701 https://help.ceda.ac.uk/article/4429-ascii-formats
universe/84701 https://earthdata.nasa.gov/about/esdis-project/eso/standards...
> The ASCII File Format Guidelines--
> Примерно, то же самое если человек говорит "компьютер" показывая на монитор.Хорошо вам там! А у нас тут был Apple c их линейкой Макинтошей и вплоть до iMac:
universe/84701 https://en.wikipedia.org/wiki/File:Macintosh_128k_transparen...
universe/84701 https://en.wikipedia.org/wiki/IMac_(Intel-based)
Так что при слишком поспешном наклеивании ярлыка можно и обжечься :(
> Что бы ты подумал о человеке который так говорит?что у него где-то рядом лежат файлы в EBCDIC
но вот когда говорят об ascii-_протоколе_ - я вздыбливаю шерсть на загривке, потому что это может быть признаком действительно ascii - с использованием 8ого бита для порчи данных или внезапно-разрыва-соединений и необходимостью череззадничного кодирования восьмибитных символов внутри данных.
Ну да, тяжелое наследие Фидо и sprint network.
Где эти п-сы, авторы софта, видали семибитные каналы (еще и создающие ненулевой 8й бит при чтении) и существовали ли такие вообще хотя бы в теории - так и осталось для меня загадкой. Пятибитные видел, восьмибитные видел, семибитные - не брал.
Только п-ский софт, портящий восьмой бит без всякого смысла и цели, причем написанный для 16битных компьютеров с 8bit char.
Ещё одну подпорочку под костылём прилепили.
Питайтесь redis-кой, вкуснее сабжа imho
омномоном? Кушай, не подавись.
> омномоном? Кушай, не подавись.А если без фраейрства и по теме, есть что сказать, чем memcache лучше redis ?
если по назначению использовать - то быстрее (но прежде чем бороться за миллисекунды - надо быть совершенно уверенным, что перестановкой пары полей в запросе не получится сэкономить минуту), не требует долбанутых настроек сервера (опять же, если по назначению, а не пытаться запихнуть туда терабайт данных одним куском), всегда предсказуем (редис уже нет), апи прост как палка (поскольку "по назначению" скорее всего означает вовсе не пых в качестве клиента).А в остальных случаях - можно и редис. Правда, автор кукухой уехал, на почве приснившихся ему сверхдоходов от облачных решений, поэтому немного ссыкотно.
Ну и ha вызывает, конечно, рвотные позывы, когда разбираешься, как он устроен.
Тем, что все операции - O(1). Если функциональности мемкеша достаточно, сложно придумать более эффективное и предсказуемое по CPU решение.
хрен с ним с cpu, его не жалко, но оно быстрое и предсказуемое по времени ответа - причем заранее понятно, как будет расти, и что делать - до того, как начнутся проблемы.
А с редисом время реакции вообще невозможно оказалось предсказать - разработчикам, похоже, просто не нужно было.
В мемкеше все данные хранятся в блоках, кратных степени двойки. Потому realloc-ов просто нет по определению.В редисе же реаллокация может случиться в любой момент.
Кстати, немного обидно за автора архитектуры и первых версий memcached (Анатолий Воробей, lj-user avva) - его почти никто не помнит, а Фицпатрика вот все помнят, хотя он сделал только первоначальный прототип на Перле и поставил Анатолию таск "сделать хорошо на сях".
> Кстати, немного обидно за автора архитектуры и первых версий memcached (Анатолий Воробей,
> lj-user avva) - его почти никто не помнит, а Фицпатрика вот
> все помнят, хотя он сделал только первоначальный прототип на Перле и
> поставил Анатолию таск "сделать хорошо на сях".все норм, его тоже никто не помнит, кроме пары олдфагов, да и то не как автора идеи, а как автора мертвого журнала.
Ха, да, наверное, щас многие думают, что memcached это фейсбук, хаха.Хотя Цукерберг изначально всю архитектуру (шардинг/партиционирование/кэширование/очереди) с ЖЖ и слизал, благо был опенсорс - изучай сколько хочешь.
> Ха, да, наверное, щас многие думают, что memcached это фейсбук, хаха.теперь это так и есть, и примерно такое же ненужно.
> с ЖЖ и слизал, благо был опенсорс - изучай сколько хочешь.
и это тоже оказалось крайне удачным везением - поскольку в тот момент, когда серверы мертвого журнала провели между собой референдум о присоединении к ФСБ, те кто не хотел сидеть за лайки и подставлять других - смогли просто свалить в DW, предоставив мертвым хоронить своих мертвецов.
Вопрос новичка в никсах - на VPSке OpenVZ заблокирована команда swapon.
Можно ли что-то сабжем сделать? Или бесполезно?
ну правильно, они хотят, чтобы вы купили тариф с большим объёмом памяти ))
Можно задать сабжу лимит потребляемой памяти, при запуске, аргументом. Если ФБ это не выпилил.
UserSpace zswap через LD_PRELOAD
Хм, да, такое сработает.Но я поражаюсь,на что только люди не пойдут, чтобы сэкономить два чатла. KVM-виртуалок за копейки сейчас как грязи.