Size: a a a

2020 October 19

NR

Nemat Rakhmatov in Tarantool
источник

SK

Sergey Kuzmin in Tarantool
Dmitry Sharonov
чисто ради интереса, а как вы намерили 200к в постгресе, можно код посмотреть?
правильно, не 200к, а под 100к. Забыл, что я в две порции закидывал, правда там три столбца вместо двух, итого ну пусть будет 150к/с

t = time()

buffer0 = StringIO()
buffer0.write('\n'.join((f'{ts}\t{qts_lst[i]}\t{values[i]}' for i, ts in enumerate(timestamps))))

print(time() - t) #60c

t = time()

buffer0.seek(0)
with closing(psycopg2.connect(**params)) as conn:
   with conn.cursor() as cursor:
       cursor.copy_from(buffer0, tablename, columns=('ts','qts', 'value'))
       conn.commit()
       
print(time() - t) #340c
# итого 37760000/(60+340) = 94400.0
источник

SK

Sergey Kuzmin in Tarantool
ну да. Три столбаца, два индекса были 100к/с, а два столбца один индекс смело 160к/с заливал.
источник

DS

Dmitry Sharonov in Tarantool
допустим. а в тнт пихали тоже одним коммитом?
источник

SK

Sergey Kuzmin in Tarantool
Dmitry Sharonov
допустим. а в тнт пихали тоже одним коммитом?
вот такой хранимкой пробую писать
function insert_many_pairs(ts_list, val_list)
for i, ts in ipairs(ts_list) do
   t = box.tuple.new({ts, val_list[i]})
   box.space.test_scores:insert(t)
end
end
источник

SK

Sergey Kuzmin in Tarantool
пробовал лить чанками по 10, 100, 1000, 10000 и 100000
источник

SK

Sergey Kuzmin in Tarantool
10 - 17тыс/с
100 - 31 тыс/с
1000 - 34.4 тыс/с
10000 -  34.4 тыс/с
100000 - 34.4 тыс/с
источник

MP

Mike Po in Tarantool
Sergey Kuzmin
вот такой хранимкой пробую писать
function insert_many_pairs(ts_list, val_list)
for i, ts in ipairs(ts_list) do
   t = box.tuple.new({ts, val_list[i]})
   box.space.test_scores:insert(t)
end
end
это провал )
оберните цикл в box.begin()/box.commit()
источник

SK

Sergey Kuzmin in Tarantool
Mike Po
это провал )
оберните цикл в box.begin()/box.commit()
ааааа)
источник

SK

Sergey Kuzmin in Tarantool
Mike Po
это провал )
оберните цикл в box.begin()/box.commit()
👍 благодарю
источник

DS

Dmitry Sharonov in Tarantool
и если сравнивать в лоб - то надо и в тнт прям одной пачкой умять
источник

DS

Dmitry Sharonov in Tarantool
мегабайт 200, выходит?
источник

SK

Sergey Kuzmin in Tarantool
Dmitry Sharonov
мегабайт 200, выходит?
ну мегабайт двадцать, если миллион записей. Там полезной нагрузки 16 байт на запись, плюс всякие байтики меседжпаков, наверное + заголовок самого тарантульного месседжа
источник

DS

Dmitry Sharonov in Tarantool
Sergey Kuzmin
правильно, не 200к, а под 100к. Забыл, что я в две порции закидывал, правда там три столбца вместо двух, итого ну пусть будет 150к/с

t = time()

buffer0 = StringIO()
buffer0.write('\n'.join((f'{ts}\t{qts_lst[i]}\t{values[i]}' for i, ts in enumerate(timestamps))))

print(time() - t) #60c

t = time()

buffer0.seek(0)
with closing(psycopg2.connect(**params)) as conn:
   with conn.cursor() as cursor:
       cursor.copy_from(buffer0, tablename, columns=('ts','qts', 'value'))
       conn.commit()
       
print(time() - t) #340c
# итого 37760000/(60+340) = 94400.0
ну тут про 40млн записей написано
источник

SK

Sergey Kuzmin in Tarantool
Dmitry Sharonov
ну тут про 40млн записей написано
ну я так много в мемтх стараюсь не писать, он ругается, бенчмаркать и миллиона хватит)
источник

SK

Sergey Kuzmin in Tarantool
Mike Po
это провал )
оберните цикл в box.begin()/box.commit()
ААААААА! Но как? почему коммит так всё ускорил!
Миллиона записей за 5.8 секунд! Это победа!
источник

SK

Sergey Kuzmin in Tarantool
источник

MP

Mike Po in Tarantool
Sergey Kuzmin
ААААААА! Но как? почему коммит так всё ускорил!
Миллиона записей за 5.8 секунд! Это победа!
потому что вы на диск записали один раз, а не миллион
источник

SK

Sergey Kuzmin in Tarantool
Mike Po
потому что вы на диск записали один раз, а не миллион
источник

SK

Sergey Kuzmin in Tarantool
172 к/с, ееее
источник