
Славик
19.01.2017
11:19:46
12/60 = 1/5
x * 1/5 = x / 5
round(float64(int * float)) => int / int

Maxim
19.01.2017
11:21:54
блин, думаю что не так... не учел ноль как число

Славик
19.01.2017
11:23:18
но и на примере, который тебя устраивает, уже другое условие что ли
ты хотел 23 -> 25, а на деле тебя уже устраивает 23 -> 20

Google

Славик
19.01.2017
11:23:39
господа, подскажите, вот есть у меня 12 чисел с шагом 5 (5, 10, 15 ... 60), как можно любое другое число (0..60) соотнести с этой группой из 12? типа 23->25, 41->45, 0->5

Maxim
19.01.2017
11:26:22
ну да, ты прав

Антон
19.01.2017
11:26:41
потому что надо юзать https://golang.org/pkg/math/#Ceil а не round

Maxim
19.01.2017
11:31:34
ага, Ceil не round. вариант Славика именно то, что я просил собственно
всем спасибо!

Denis
19.01.2017
15:09:41
http://specto.io/blog/replacing-redis-with-boltdb
Заменили редиску на болт, получили + к перфомансу и ноль ошибок

Maxim
19.01.2017
15:11:12
Чутка трогал (как раз для своей файлопомойки), насчёт скорости - довольно заметны различия по сравнению с другими БД, это да.

Quet
19.01.2017
15:21:30
болт неплохая штука где надо тупой embedded kvs
и объемы данных небольшие
и нагрузка read-heavy

Google

Subbotin
19.01.2017
15:34:05
лучше скажите как сделать такую задачу: есть ~40 гиговая база которая у меня не влезает в память и добыть где=то сервер с 48 гигами не вариант. база представляет собой кей-валуе где и ключ и значение лонг лонг инт. ключи весьма разряженные и случайно/равномерно распределены по диапазону. по ней надо очень быстро бегать и проверять есть ли значение и чему оно равно. доля попаданий около 1%. 99 - мисы. как лучше организовать такую штуку?
памяти могу выкроить гигов 20
инсерты не нужны. только геты

Quet
19.01.2017
15:38:20
добыть сервер с 48 гигами или больше, память стоит копейки

Subbotin
19.01.2017
15:38:39
мне не комерческий проект
джаст фо фан
32 гиговый уже есть и мигрировать из-за этого не хочется. а платить за два чё-то не охота

Quet
19.01.2017
15:39:19
если не коммерческий то видимо и нагрузки там не будет
бери любую kv которая умеет в диск и храни там
вон койнить leveldb или подобное

Subbotin
19.01.2017
15:39:51

Kirill
19.01.2017
15:39:51

Denis
19.01.2017
15:39:52
Вот да , какие требования к респонсу?

Kirill
19.01.2017
15:40:18

Subbotin
19.01.2017
15:40:30

Quet
19.01.2017
15:40:54

Denis
19.01.2017
15:41:17

Quet
19.01.2017
15:41:25
но реально, под последний некоммерческий брали машину с 256 памяти, оно реально стоит копейки сейчас

Subbotin
19.01.2017
15:41:48
ну там не совсем подсчёт но грубо говоря можно считать что это расчёты

Kirill
19.01.2017
15:44:17

Quet
19.01.2017
15:44:46
чо кстати у тебя по запросам — много запросов приходит на которые оказывается что нет значения в базе?

Google

Roman
19.01.2017
15:48:12

Kirill
19.01.2017
15:49:01

Subbotin
19.01.2017
15:49:26

Quet
19.01.2017
15:49:37
а, ну любая kv и блум перед ней
40 евро в месяц это даром же )

Subbotin
19.01.2017
15:49:51
что такое блум?

Quet
19.01.2017
15:50:04
https://en.wikipedia.org/wiki/Bloom_filter

Roman
19.01.2017
15:50:16

Kirill
19.01.2017
15:50:40

Subbotin
19.01.2017
15:50:45
я могу найти применения 40 евро. да и я планирую за пару месяцев "обсчитать" так что ещё плата за деплоймент удвоит месячную цену

Daniel
19.01.2017
15:51:08

Quet
19.01.2017
15:51:22

Daniel
19.01.2017
15:51:40

Roman
19.01.2017
15:51:40
Так судя по задаче - самое оно

Subbotin
19.01.2017
15:51:41

Quet
19.01.2017
15:51:55
возьми две )

Daniel
19.01.2017
15:52:00
а где сказано, что нужно 64?

Roman
19.01.2017
15:52:25
чем вам блум не угодил?

Subbotin
19.01.2017
15:52:32
в самом начале сказано что база - 40 гигов

Quet
19.01.2017
15:52:42

Google

Daniel
19.01.2017
15:55:36
база 40
а индекс?

Subbotin
19.01.2017
15:57:08
а я индекс пока не строил. очевидно размер индекса зависит от алгоритма его построения. по сути я и спрашиваю счас как правильно сделать индекс.

Daniel
19.01.2017
15:57:45
погоди
а что тогда значат слова "база 40 гигов"?

Subbotin
19.01.2017
15:58:13
лежит у меня пока огромный бинарь где каждые 16 байт это пара ключ:значение

Daniel
19.01.2017
15:58:40
ах вот оно что
2.5 миллиарда строк?

Quet
19.01.2017
15:59:30
можно наверное даже полный закат солнца руками сделать
отсортировать бинарь, положить рядом индекс (сделать по аналогии с постгресовым BRIN)

Admin
ERROR: S client not available

Daniel
19.01.2017
15:59:32
рилли?

Subbotin
19.01.2017
15:59:56

Daniel
19.01.2017
16:00:04
но в базе-то будут
еще раз - я правильно посчитал?

Subbotin
19.01.2017
16:00:34
да я сам не считал но порядок да - такой

Quet
19.01.2017
16:00:48
да, 2.5 миллиарда

Daniel
19.01.2017
16:00:50
но в 16 байт не влезет столько никак
там дубликаты
много дубликатов

Subbotin
19.01.2017
16:02:02
прости что?

Google

Subbotin
19.01.2017
16:02:03
>>> 2**(8*8)
18446744073709551616

Quet
19.01.2017
16:02:23

Daniel
19.01.2017
16:02:28
коллеги

Quet
19.01.2017
16:02:33
8 байт ключ, 8 байт значение

Daniel
19.01.2017
16:02:54
упс, извините, был напуган
перепутал байты с битами
так вот

Quet
19.01.2017
16:03:30
а что за данные-то?

Daniel
19.01.2017
16:03:52
два с половиной миллиарда строк в любой базе это существенно больше, чем 64G на индекс

Quet
19.01.2017
16:04:07

Daniel
19.01.2017
16:04:15
любой

Quet
19.01.2017
16:04:40
ну не, вон выше пример был с BRIN индексом постгреса

Daniel
19.01.2017
16:04:43
индексы - они быстрые, а не компактные

Quet
19.01.2017
16:04:48
он будет сильно меньше 64г

Daniel
19.01.2017
16:05:04
но он будет не индекс
в смысле - он будет очень тормозить

Quet
19.01.2017
16:06:00
почему?

Daniel
19.01.2017
16:06:19
потому, что в нем будет много проверок

Quet
19.01.2017
16:07:36
ну как много. от размера блока зависит

Daniel
19.01.2017
16:08:34
или много памяти на индекс, или тормоза
as simple as that
у нас есть требования по скорости выборки?