Wenn du schon eine Weile mit Java arbeitest, bist du sicher auf den Begriff Serialisierung gestoßen. Aber was bedeutet das eigentlich? Und warum sollte man es brauchen?
Wenn du schon eine Weile mit Java arbeitest, bist du sicher auf den Begriff Serialisierung gestoßen. Aber was bedeutet das eigentlich? Und warum sollte man es brauchen?
Гарантии видимости в распределённых хранилищах
Здравствуйте, меня зовут Дмитрий Карловский и я.. стараюсь сложные вещи рассказывать простым языком , а простые вещи — эзоповым. И часто оказывается так, что в процессе упрощения и структурирования, на самом видном месте обнаруживаются скелеты древних динозавров, присыпанные мутными формулировками так, что долгие годы их никто не замечает . Что ж, если вы хотите окончательно разобраться в уровнях изоляции транзакций и гарантиях порядка операций , до давайте копать вместе. Выпускайте эскалатор!
https://habr.com/ru/articles/881204/
#Monotonic #Causal #Sequential #Linearizable #Read_Uncommitted #Read_Committed #Repeatable_Read #Serializable #High_Availability #CRDT
Кастомная сериализация структур в UE
Допустим, вы создали свою USTRUCT в C++ и хотите её сериализовать. Обычно, достаточно просто пометить нужные поля как SaveGame . Но вот проблема, для этого эти поля сами должны поддерживать сериализацию. К сожалению одна из наших переменных не поддерживает сериализацию. В моем случае, это структура FNonSerializableStruct . Из-за этого сериализуется только вторая структура, хоть мы и пометили SaveGame обе.
https://habr.com/ru/articles/865170/
#usrtuct #struct #serialize #serializable #структура #сериализация #unreal_engine #ue #структуры #анрил
Стоит ли бояться serializable-транзакций больше, чем труднонаходимых багов?
В базах данных транзакции обладают свойствами ACID , где «I» означает изоляцию транзакций при одновременном (concurrent) выполнении. Наличие (serializable) изоляции гарантирует, что результат транзакций, выполненных параллельно, будет таким же, как если бы они были выполнены в некотором последовательном порядке. Сериализация выполнения транзакций не бесплатна с точки зрения производительности. Многие СУБД поддерживают более слабые уровни изоляции, оставляя за разработчиком выбор подходящего. В монолитных СУБД более слабый уровень изоляции часто используется по умолчанию. Так, в PostgreSQL и MySQL это «read committed». В распределённых СУБД чаще по умолчанию более строгие уровни: «repeatable read» в YugabyteDB и TiDB , «serializable» в CockroachDB и YDB . Слабые уровни изоляции могут быть причиной очень труднонаходимых багов. Причём эти баги могут вызвать уязвимости в безопасности. Из-за подобных багов уже были украдены миллионы долларов, в частности с биткоин-бирж. Мы расскажем о подобных случаях более детально в следующих разделах.
https://habr.com/ru/companies/ydb/articles/825768/
#ACID #serializable #bugs #ydb #postgres #postgresql #mysql #oracle #isolation #concurrency