Барьеры памяти в пространстве пользователя? (Linux, x86-64)

Вот другая хорошая статья о дубликаты удаления .

Это обсуждает почему его твердое: " SQL основан на алгебре отношений, и дубликаты не могут произойти в алгебре отношений, потому что дубликаты не позволяются в наборе. "

временное решение для таблицы и два mysql примера.

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

17
задан Marc Mutz - mmutz 26 July 2009 в 20:32
поделиться

5 ответов

Posix определяет ряд функций , действующих как барьеры памяти. Не допускается одновременный доступ к ячейкам памяти; чтобы предотвратить это, используйте синхронизацию - и эта синхронизация также будет работать как барьер.

6
ответ дан 30 November 2019 в 13:34
поделиться

You are looking for the full memory barrier atomic builtins of gcc.

Please note the detail on the reference i gave here says,

The [following] builtins are intended to be compatible with those described in the Intel Itanium Processor-specific Application Binary Interface, section 7.4. As such, they depart from the normal GCC practice of using the “__builtin_” prefix, and further that they are overloaded such that they work on multiple types.

5
ответ дан 30 November 2019 в 13:34
поделиться

Заголовки include / arch / qatomic _ *. H недавнего дистрибутива Qt включают (LGPL) код для множества архитектур и всевозможных барьеров памяти (приобретение, выпуск, оба).

0
ответ дан 30 November 2019 в 13:34
поделиться

Linux x64 означает, что вы можете использовать инструкции Intel по защите памяти. Вы можете заключить их в макросы, аналогичные тем, которые содержатся в заголовках Linux, если эти макросы не подходят или недоступны для вашего кода

2
ответ дан 30 November 2019 в 13:34
поделиться

__ sync_synchronize () в GCC 4.4+

Информационный документ Intel Memory Ordering, раздел из тома 3A Intel 64 и IA-32 руководство http://developer.intel.com/Assets/PDF/manual/253668.pdf

2
ответ дан 30 November 2019 в 13:34
поделиться