Возможно, стоит пояснить разницу между синхронизацией из thread/process-safe и синхронизацией с помощью Lock🤔
Наша задача — заставить разные процессы и потоки обращаться к базе данных (или любым другим ресурсам) последовательно. Чтобы не случилось так называемого race condition, то есть состояние гонки. Это когда разные потоки или процессы пытаются одновременно что-то сделать с одним и тем же ресурсом.
В этом случае нам нужна какая-то логика ограничения. Пока один процесс не завершил своё действие, другие не могут получить доступ к ресурсу.
Так вот, thread-safe и process-safe означает что отдельно взятые операции записи в БД гарантированно будут последовательны. Запросы из разных процессов или потоков выстроятся в очередь и не будут мешать друг другу. Лучше всего когда этот блок реализован на уровне БД в виде атомарных операций или ещё как-то.
Но зачем нам тогда еще дополнительный Lock?
Этот способ синхронизации используется когда процесс никак не укладывается в одно действие и должен сделать множество операций прежде чем дать доступ следующему. В этом случае процесс ставит некий глобальный Lock на ресурс и никто другой, даже получив законное право на доступ, не может ничего сделать. Все ждут пока этот Lock не будет снят.
Это решается на уровне приложения и правильность реализации полностью в вашей ответственности. Например, если забыли разблокировать или сделали перекрёстный Lock (Deadlock как на картинке), то всё зависнет в бесконечном ожидании.
#basic
LDS PREPAREDNESS MANUAL
From Chat
It's from LDS, which is whatever, but its one of the most comprehensive pepper manuals I've ever seen
#Prepping#Prepper
https://permacomputing.net/
数字领域的朴门实践正在芬兰萌芽!
New to permacomputing?
Permacomputing is a more sustainable approach to computer and network technology inspired by permaculture. Permacomputing is both a concept and a community of practice oriented around issues of resilience and regenerativity in digital technology.
In a time where computing epitomizes industrial waste, permacomputing encourages a more sustainable approach, maximizing hardware lifespans, minimizing energy use and focussing on the use of already available computational resources. We do this because humans are part of nature and technology is an extension of humans, and we acknowledge that technology has been used to harm nature. We want to find out how we can practice good relations with the Earth by learning from ecological systems to leverage and re-center existing technologies and practices. We are also interested in investigating what a permacomputing way of life could be, and what sort of transformative computational culture and aesthetics it could bring forward.
If you want to know more, please start reading about what is permacomputing in essence, and then dive into its principles.
Wiki
Started in May 2022, the permacomputing wiki is where we maintain a set of principles, collectively document practical perspectives and interpretations of these principles, and offer more speculative reflections on permacomputing.
The wiki is still at a very early stage of development, we are frequently working on it.
This main page of the wiki is an index to the various topics covered. See "about" for a more detailed discussion about the wiki itself.
#致呼吸不畅的数字生活#DIY#prepper