Search
Write a publication
Pull to refresh
3
0
Send message

Если не секрет, какая была очень плохая реклама?

Очень любопытный проект, спасибо. Не хотите пошарить плату, чтобы желающие могли повторять?

Всё верно, эффективность HOT Update сопоставима или даже превосходит INSERT. Про fillfactor очень важное замечание, однако на активно работающих системах это не нужно: необходимое пустое место на страницах появляется само.

Скрытый пример с fillfactor
bench=# select pg_stat_statements_reset();
   pg_stat_statements_reset    
-------------------------------
 2025-07-15 23:21:17.508392+03
(1 row)

bench=# create unlogged table tst1 (id bigint, v uuid) with(fillfactor=100);
CREATE TABLE
bench=# create unlogged table tst2 (id bigint, v uuid) with(fillfactor=50);
CREATE TABLE
bench=# insert into tst1(id, v) select id, md5('' || id)::uuid from generate_series(1, 1000000, 1) as id;
INSERT 0 1000000
bench=# insert into tst2(id, v) select id, md5('' || id)::uuid from generate_series(1, 1000000, 1) as id;
INSERT 0 1000000
bench=# create unique index uni_tst1_id on tst1 using btree(id);
CREATE INDEX
bench=# create unique index uni_tst2_id on tst2 using btree(id);
CREATE INDEX
bench=# vacuum tst1;
VACUUM
bench=# vacuum tst2;
VACUUM
bench=# update tst1 set v = md5('' || v)::uuid where id %2 = 0;
UPDATE 500000
bench=# update tst2 set v = md5('' || v)::uuid where id %2 = 0;
UPDATE 500000
bench=# select query, shared_blks_hit + shared_blks_read as shared_blks from pg_stat_statements order by 2 desc;
                                         query                                                 | calls | shared_blks | shared_blks_dirtied 
-----------------------------------------------------------------------------------------------+-------+-------------+---------------------
 update tst1 set v = md5($1 || v)::uuid where id %$2 = $3                                      |     1 |  3532711    |               14976
 update tst2 set v = md5($1 || v)::uuid where id %$2 = $3                                      |     1 |  1025642    |                7870
 insert into tst2(id, v) select id, md5($1 || id)::uuid from generate_series($2, $3, $4) as id |     1 |  1025635    |               12825
 insert into tst1(id, v) select id, md5($1 || id)::uuid from generate_series($2, $3, $4) as id |     1 |  1012735    |                6370
 create unique index uni_tst2_id on tst2 using btree(id)                                       |     1 |    12928    |                3271
 create unique index uni_tst1_id on tst1 using btree(id)                                       |     1 |     6477    |                2313
 create unlogged table tst2 (id bigint, v uuid) with(fillfactor=50)                            |     1 |       92    |                   3
 create unlogged table tst1 (id bigint, v uuid) with(fillfactor=100)                           |     1 |       90    |                   0
 vacuum tst2                                                                                   |     1 |       58    |                   0
 vacuum tst1                                                                                   |     1 |       56    |                   0
 select pg_stat_statements_reset()                                                             |     1 |        0    |                   0
(11 rows)

Если снести div верхнего и правого меню, то нагрузка на cpu спадает с 20% до 1.5% в firefox и с 40% до чуть меньше 5% в chrome. При частичном сносе div - частичный эффект.

Спасибо за статью. Позвольте пояснить про HOT Update

Реализация МVСС в PostgreSQL вообще не подразумевает обновления записи, при необходимости обновления выполняются удаление-вставка.

...

PostgreSQL должно произойти перестроение всех индексов, независимо от того, обновляет ли UPDATE-запрос поля, по которым построены эти индексы или нет.

Если по обновляемым столбцам индексов нет, то срабатывает Heap Only Tuple Update, когда новая версия Heap записывается на той же странице, что и старая. Это позволяет не обновлять индексы (они ссылаются после UPDATE на те же самые страницы, что и до UPDATE).

Почему не сработало в Вашем тесте. В реальных системах обновление идёт отдельных строк, а в приведённом тесте - таблицы целиком. Поэтому на страницах не оказалось свободного места для размешения новых версих строк в HOT Update.

Кто-то уже нашёл за 1700 руб - поделитесь пожалуйста? За 1700 удалось встретить только на чипе Conexant fusion 878a с мостом PCIe-PCI, а она плохо подходит для оцифровки из-за неотключаемого смещения уровня под уровень чёрного и выключения АЦП во время обратного хода развёртки.

Исчерпывающий ответ есть этой статье.

Подробные ответы есть в статьях Егора Рогова, напр 1 и 4

Моя любимая тема.

Линеаризация ВАХ...Далее элементарная сокращение при R3 = R4

Тут (и далее) не учтено, что R2 фактически соединяется параллельно R4 (если считать V2 идеальным источником с нулевым внутренним сопротивлением)

В практических схемах R4 в схеме на ставят (равен бесконечности), а добиваются R3 = R2. Тогда на затворе будет напряжение Vgs = (Vds + V2) / 2

И ток стока становится линейным:

Ids(Vds)=2Idss/Vp^2*[Vds*((Vds + V2) / 2-Vp)-Vds^2/2] = 2Idss/Vp^2*[Vds*(V2 / 2-Vp)]

Статья понравилась, для новичков самое то. Подскажите, что это за макетная плата и как можно скомпилировать и зашить код из примера?

Про логику на транзисторах есть один момент, что потенциал от входа к выходу будет снижаться в показанных элементах И и ИЛИ, поэтому для поддержания работы нужны будут усилители напряжения (напр, пара инверторов). В приведённом инверторе также будет сильное ослабление напряжения на входе.

Несколько раз делал подключение к таких джойстиков к Gameport/MIDI, для этого правда резал дорожки на плате. Из пары кнопок влево-вправо (и вверх-вниз) собирал простейшие усилители на одном транзисторе для аналоговых входов X и Y.

Довольно часто наблюдал, что потолок (не утеплённый) на балконе обмерзает до сталактитов, если всю зиму держать дверь приоткрытой.

Подскажите, у вас не было проблем с протечками со стороны фасада?

Предположительно совсеим неяркий, всего в полтора раза ярче, чем упомянутый ал102. Но заказал несколько с буквой А (0.3 мкд) для проверки. Хотя были ещё и 0.6 мкд с буквой Б, их уже и вовсе не найти в продаже.

Существовали также светодиоды с антистоксовым люминофором - они понижали длину волны ИК-излучения до видимого зелёного, хотя падение напряжения было очень невелико (значительно меньше, чем у красных светодиодов) - достаточно напряжения одной полуразряженной пальчиковой батарейки, чтобы он начал уверенно светиться. Нынче редкость, АЛ360.

Что поразительно, почти 100% телефонного спама приходит из номерной ёмкости МТТ (она похожа на мобильные номера, см. план нумерации)

У них даже услуга есть - Автообзвон роботом

Ёмкостям пришлось несколько недель наращивать изоляцию — тренировать

Есть опасение, что без оговорки о недопустимости кто-то попробует отформовать плёночный, бумажный, керамический или другой с твёрдым диэлектриком. Последствия в лучшем случае - порча деталей в момент формовки, в худшем - спонтанный отказ.

Спасибо. Было бы интересно прочитать статью про требования.

Тут автор опровергает это мнение.

Спасибо за статью.

Ваша роль в компании - это бизнес- или системный аналитик? Принят ли у вас продуктовый подход? СТ - это системный требования? В каком формате они поступают в разработку и кто их там приземляет на уровень технического дизайна?

Большое спасибо за находку и за тестирование.

Параметры впечатляют, особенно выскоий R9.

Подскажите, это эта лента?

Information

Rating
5,866-th
Registered
Activity