Pull to refresh
91
0

Пользователь

Send message

величина её наверняка будет ничтожной для ощутимого эффекта

Если взять палатку 6x6x5 то, при разности температур в 60 C [-40, +20] разница в плотностях воздуха будет где-то 1.53 - 1.2 ~= 0.33 кг/м^3. Что даст "тягу" в 0.33 * 180 ~= 60 кгс.

Плотность ткани Оксфорд 240 den - 115гр/м2. Что дает массу верха (6x5x4 + 6x6)*0.115 ~= 18 кг.

Ну т.е. + 40 кгс.

Как минимум иметь независимость в ключевых отрослях: банкинг, атомная промышленность, военка.

Зачем же нужна эта независимость?

Да QIP был хорош...Ностальгия.

Cypress и подобные инструменты не предоставляют встроенных средств для адекватного мокирования серверных данных.

А как же...

// any request to "/search/*" endpoint will
// automatically receive an array with two book objects
cy.intercept('/search/*', [{ item: 'Book 1' }, { item: 'Book 2' }]).as(
  'getSearch'
)

cy.get('[data-testid="autocomplete"]').type('Book')

// this yields us the interception cycle object
// which includes fields for the request and response
cy.wait('@getSearch').its('request.url').should('include', '/search?query=Book')

cy.get('[data-testid="results"]')
  .should('contain', 'Book 1')
  .and('contain', 'Book 2')

Результаты этих тестов нужно было где-то хранить. Для такой задачи решили использовать Allure.

В cypress хранение "из коробки", при этом можно повторно "проигрывать" тесты, Test Replay

Но, благодаря этому не происходит просадок во время роста большой мапы.

А если все ядра уже заняты полезной вычислительной работой, разве асинхронная обработка не повлияет на производительность?

Пожалуй. Это стоило бы осветить в статье, КМК.

Для уменьшения негативного эффекта достаточно просто поменять местами поля в структуре: так, чтобы маленькие однобайтовые поля были в начале, а большой, четырехбайтный int — в самом конце:

Лучше делать наборот - маленькие в конце, иначе может случиться padding:

Data alignment is the aligning of elements according to their natural alignment. To ensure natural alignment, it may be necessary to insert some padding between structure elements or after the last element of a structure. For example, on a 32-bit machine, a data structure containing a 16-bit value followed by a 32-bit value could have 16 bits of padding between the 16-bit value and the 32-bit value to align the 32-bit value on a 32-bit boundary. Alternatively, one can pack the structure, omitting the padding, which may lead to slower access, but uses three quarters as much memory.

Формулу возведения в степень вы, я полагаю, взяли из схемы Бернулли

Будем так говорить, я её на листочке вывел по ходу дела, собственно, весь вывод повторён в моём комментарии.

Например, после прочтения слова FUCK, следующим словом для проверки будет UCK* - т.е. 100% не FUCK. Вероятность следующего события зависит от предыдущего события.

Да, так и есть??

Но это даже не важно, потому что вы, скорее всего, имели ввиду умножение на 17, а не возведение в 17-ю степень

Нет, именно возведение в степень. Вероятность выбросить решку пять раз подряд 1/2^5. Вероятность появления орла в серии = 1 - 1/2^5 = 0.96875.

это же подтверждает ваш ответ, не совпадающий с тем, что дала бы формула

Тут ситуация обоюдоострая, возможно, таки, неверна формула. "Нетрудно понять..." - это сильное утверждение, но необязательно верное. Хотелось бы разобраться.

вы складываете вероятности событий, которые пересекаются

Но я не складываю вероятности.

вы складываете вероятности событий, которые пересекаются.

Тогда бы получилось "больше". А у меня - "меньше".

А в чём проблема, интересно, вот такого варианта.

  • В строке из 20 символов - 17 попыток набрать группу из 4 символов

  • В каждой попытке вероятность получить группу 1 / 26 ^ 4, не получить (1 - 1 / 26 ^ 4)

  • Не получить в 17 попытках: (1 - 1 / 26 ^ 4) ^ 17

  • Получить хотя бы в одной попытке = 1 - не получить ни в одной = 1 - (1 - 1 / 26 ^ 4) ^ 17 = 0.00003720042

Вольфрам даёт 0.0000372004271441587940142843061796238205490663502391574596846357

В облаке, что ли? Можете схемку набросать, допустим, тут https://mermaid.live?

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

А где предполагается хранить local-first базы для случая avito?

RPO в худшем случае: 160 Мб.

Можно подробнее, в каких ситуациях могут быть потеряны данные в такой архитектуре?

Схема выглядит приблизительно как в разделе "Архитектура ПО"

Подскажите, какое ПО используется для создания схем такого типа?

Ну т.е. клиент всегда пишет в одну базу, "Clients only talk to the same servers, instead of switching to new ones".

Как только он переключится возможна потеря уровня Read-Your-Writes.

У клиента для этого еще одна база должна быть и именно в нее он и должен всегда писать First.

Интересно, как при свободной смене сервера обеспечить Read-Your-Writes? Пишем в x=x+1 (=9+1=10 ) в SRV1, репликация асиннхронная(?), после записи SRV1 выпадает из сети, репликация не завершена. Идем на SRV2 и там читаем x==9.

Как избежать такой ситуации?

У Вас все-таки такая архитектура:

Каждый пир пишет синхронно в локальную базу, и отложенно происходит синхронизация с другими пирами.

Это случай "Clients only talk to the same servers, instead of switching to new ones". В таком сценарии обеспечиваются уровни изоляции и согласованности, обозначенные синим и желтым цветами.

Конкретно с определением Snapshot дело обстоит так - можно обеспечить все требования кроме First-committer-wins. Это требование, в случае использования CRDTs, является излишним (так как нацелено на Lost Update, каковой невозможен с такими типами) тем не менее, оно есть в приводимых формулировках.

Можно как-то по другому назвать, например, Snapshot-CRDTs.

1
23 ...

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity