Реализация из публикации на такое не рассчитана, при m меньше 16, ошибка от 40% и выше. Тут лучше эксепшен выкидывать, но код для поиграться сделан, поэтому тихий фейл.
Вторые два без коррекций, ведут себя совсем плохо, параметры надо более точно подбирать, чтобы добиться приемлемых результатов, HyperLogLog в этом плане более всеяден и выдаёт меньшую ошибку.
В первой «бумаге» описывается именно HyperLogLog, во второй просто LogLog и SuperLogLog. У них разные стандартные ошибки, т.к. алгоритмы немного разные. Вторые два без коррекций ведут себя совсем плохо, параметры надо более точно подбирать, чтобы добиться приемлемых результатов, SuperLogLog в этом плане более всеяден и выдаёт меньшую ошибку.
По-большому счёту, все три алгоритма заточены на подсчёт большого количества элементов. При небольшом, получается что массив M населён мало, т.е. если m не сильно меньше N, то начинает расти ошибка, а m как раз таки зависит от желаемой точности. В HyperLogLog эта ситуация немного подправляется корректировкой, так же как и перенаселение массива M, в (Super)LogLog оставляется как есть.
Все коэффициенты и поправки взяты из первой публикации про HyperLogLog.
Скорее всего «знания» ещё по этому множеству не устаканились, там небольшими инкрементальными порциями апдейты идут при каждом запросе, чтобы не нагружать сервер сильно.
Я от них просто без ума, немного жертвуя точностью можно получить огромный выигрыш в производительности и/или ресурсах. Хотя, для повседневных задач они порой как из пушки по воробьям.
На счёт запрета порнографии и в целом всякого разврата по моральным соображениям — где-то читал, что такое пуританство возникло из-за того, что мореплавание открыло границы между ранее изолировочными континентами, в следствии чего в Европу хлынули новые экзотические венерические заболевания. Иммунитета у европейцев к ним не было, поэтому мораль резко изменилась.
Аналогична, тоже FreeBSD поставил. Когда рейд софтовый настраивал одной буквой в конфиге ошибся, сервер после ребута не поднялся, оперативно дали доступ к KVM через Java-апплет, денег не взяли, хотя услуга вроде платная. Короче, хорошо работают немцы.
Цены низкие, имхо, из-за того, что железо недорогое, setup fee где-то половина-треть от его стоимости. Чтобы окупить железо и начать приносить им прибыль, тебе надо за это железо платить всего 4-6 месяцев. Если сбежишь раньше — не беда, следующий обладатель железа опять заплатит setup fee, что на самом деле им ещё выгодней. Ну это моё имхо.
Вторые два без коррекций, ведут себя совсем плохо, параметры надо более точно подбирать, чтобы добиться приемлемых результатов, HyperLogLog в этом плане более всеяден и выдаёт меньшую ошибку.
По-большому счёту, все три алгоритма заточены на подсчёт большого количества элементов. При небольшом, получается что массив M населён мало, т.е. если m не сильно меньше N, то начинает расти ошибка, а m как раз таки зависит от желаемой точности. В HyperLogLog эта ситуация немного подправляется корректировкой, так же как и перенаселение массива M, в (Super)LogLog оставляется как есть.
Все коэффициенты и поправки взяты из первой публикации про HyperLogLog.
Цены низкие, имхо, из-за того, что железо недорогое, setup fee где-то половина-треть от его стоимости. Чтобы окупить железо и начать приносить им прибыль, тебе надо за это железо платить всего 4-6 месяцев. Если сбежишь раньше — не беда, следующий обладатель железа опять заплатит setup fee, что на самом деле им ещё выгодней. Ну это моё имхо.