Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / C++ Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
 Re: Пятничная база данных  [new]
Dima T
Member

Откуда:
Сообщений: 14743
CEMb
Да, я бы почитал.

Почитай лучше эту книжку https://www.sql.ru/forum/1304163/literatura-i-dokumentaciya-po-sqlite-na-russkom-yazyke
10 фев 20, 07:26    [22076497]     Ответить | Цитировать Сообщить модератору
 Re: Пятничная база данных  [new]
Dima T
Member

Откуда:
Сообщений: 14743
ёёёёё
Почему именно FB, не Sqlite? Прежде всего потому что FB embedded разрешает параллельную/одновременную запись из разных потоков/процессов, ну и полноценная субд с транзакциями, развитым языком и т.д., в отличии от.

Одновременно писать не разрешает, т.к. в SQLite блокировка сразу всей БД происходит. Но оно и не надо особо, т.к. SQLite это локальная БД на стороне клиента, т.е. к ней обычно подключен один клиент.
Читать с разных потоков разрешает во время записи.
10 фев 20, 07:43    [22076498]     Ответить | Цитировать Сообщить модератору
 Re: Пятничная база данных  [new]
ёёёёё
Member

Откуда:
Сообщений: 2017
Dima T
Одновременно писать не разрешает, т.к. в SQLite блокировка сразу всей БД происходит.

И я об этом.
Dima T
Но оно и не надо особо, т.к.

Когда как.
Dima T
т.к. SQLite это локальная БД на стороне клиента, т.е. к ней обычно подключен один клиент.

О чем и речь. А с FB Embedded можно хоть так, хоть сяк: и локально, и без инсталляции, и одновременная запись.
А файл базы "потом" можно на "взрослый" сервер без доработок перенести, изменив лишь строку подключения на стороне клиента.
10 фев 20, 16:27    [22076943]     Ответить | Цитировать Сообщить модератору
 Re: Пятничная база данных  [new]
YUBA
Member

Откуда:
Сообщений: 788
Dima T
Одновременно писать не разрешает, т.к. в SQLite блокировка сразу всей БД происходит. Но оно и не надо особо, т.к. SQLite это локальная БД на стороне клиента, т.е. к ней обычно подключен один клиент.
Читать с разных потоков разрешает во время записи.
Я пишу из разных потоков разные таблицы. Эксцессов не заметил.
Что написано в документации сходу не скажу. Разбирался с этим давно.
10 фев 20, 16:49    [22076963]     Ответить | Цитировать Сообщить модератору
 Re: Пятничная база данных  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4785
ёёёёё
И я об этом
автор
SQLite поддерживает три различных режима потоков:

Однониточный . В этом режиме все мьютексы отключены, и SQLite небезопасно использовать более чем в одном потоке одновременно.

Многопоточный . В этом режиме SQLite может безопасно использоваться несколькими потоками при условии, что ни одно соединение с базой данных не используется одновременно в двух или более потоках.

Сериализированные . В сериализованном режиме SQLite может безопасно использоваться несколькими потоками без ограничений.
10 фев 20, 16:59    [22076971]     Ответить | Цитировать Сообщить модератору
 Re: Пятничная база данных  [new]
ёёёёё
Member

Откуда:
Сообщений: 2017
PetroNotC Sharp,

продолжай держать руку на пульсе.
10 фев 20, 17:03    [22076976]     Ответить | Цитировать Сообщить модератору
 Re: Пятничная база данных  [new]
Dima T
Member

Откуда:
Сообщений: 14743
YUBA
Dima T
Одновременно писать не разрешает, т.к. в SQLite блокировка сразу всей БД происходит. Но оно и не надо особо, т.к. SQLite это локальная БД на стороне клиента, т.е. к ней обычно подключен один клиент.
Читать с разных потоков разрешает во время записи.
Я пишу из разных потоков разные таблицы. Эксцессов не заметил.
Что написано в документации сходу не скажу. Разбирался с этим давно.

И не заметишь, ну подождал немного один поток пока другой пишет, это не криминал.
10 фев 20, 17:19    [22076982]     Ответить | Цитировать Сообщить модератору
 Re: Пятничная база данных  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4785
Dima T,
Обычно каждому потоку свой коннект.
Либо из пула берут по очереди.
10 фев 20, 17:21    [22076984]     Ответить | Цитировать Сообщить модератору
 Re: Пятничная база данных  [new]
Dima T
Member

Откуда:
Сообщений: 14743
ёёёёё
О чем и речь. А с FB Embedded можно хоть так, хоть сяк: и локально, и без инсталляции, и одновременная запись.
А файл базы "потом" можно на "взрослый" сервер без доработок перенести, изменив лишь строку подключения на стороне клиента.

Не готов спорить. C SQLite я только баловался и помогал tchingiz с переводом этой книги. С FB Embedded и с FB вообще ни разу не сталкивался. Поэтому мне сложно сказать почему SQLite популярен несмотря на то что есть FB Embedded, наверно есть причины.
10 фев 20, 17:30    [22076995]     Ответить | Цитировать Сообщить модератору
 Re: Пятничная база данных  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4785
ёёёёё
PetroNotC Sharp,

продолжай держать руку на пульсе.
не получится топить одну бд за счет другой, приводя детские аргументы.
10 фев 20, 17:32    [22076997]     Ответить | Цитировать Сообщить модератору
 Re: Пятничная база данных  [new]
YUBA
Member

Откуда:
Сообщений: 788
PetroNotC Sharp
Dima T,
Обычно каждому потоку свой коннект.
Либо из пула берут по очереди.
Работаю из разных потоков с одним коннектом. Все тихо. Если бы что было не так, то это должно было быть видно, и должно было быть сплошь и рядом. Повторюсь - пишу из разных потоков в разные таблицы. Давно.
10 фев 20, 17:33    [22077001]     Ответить | Цитировать Сообщить модератору
 Re: Пятничная база данных  [new]
Dima T
Member

Откуда:
Сообщений: 14743
PetroNotC Sharp
Dima T,
Обычно каждому потоку свой коннект.
Либо из пула берут по очереди.

Речь была совсем про другое, про одновременную запись с разных потоков. FB Embedded может писать одновременно в разные места БД, SQLite не может, т.к. у первой постраничная блокировка, у второй блокируется сразу вся БД.
10 фев 20, 17:34    [22077003]     Ответить | Цитировать Сообщить модератору
 Re: Пятничная база данных  [new]
ёёёёё
Member

Откуда:
Сообщений: 2017
Dima T
Поэтому мне сложно сказать почему SQLite популярен несмотря на то что есть FB Embedded, наверно есть причины.

FB есть только для Win, Mac и Linux*; для андроида только экспериментальные сборки.
А SQLite работает абсолютно везде, очень простая, у нее крошечная библиотека для поддержки.
И - транзакции/ХП/триггеры нужны не всем, кому-то даже и мешают. :)
10 фев 20, 17:37    [22077008]     Ответить | Цитировать Сообщить модератору
 Re: Пятничная база данных  [new]
ёёёёё
Member

Откуда:
Сообщений: 2017
Dima T
PetroNotC Sharp
Dima T,
Обычно каждому потоку свой коннект.
Либо из пула берут по очереди.

Речь была совсем про другое, про одновременную запись с разных потоков. FB Embedded может писать одновременно в разные места БД, SQLite не может, т.к. у первой постраничная блокировка, у второй блокируется сразу вся БД.

Да.
10 фев 20, 17:37    [22077010]     Ответить | Цитировать Сообщить модератору
 Re: Пятничная база данных  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4785
YUBA
PetroNotC Sharp
Dima T,
Обычно каждому потоку свой коннект.
Либо из пула берут по очереди.
Работаю из разных потоков с одним коннектом. Все тихо. Если бы что было не так, то это должно было быть видно, и должно было быть сплошь и рядом. Повторюсь - пишу из разных потоков в разные таблицы. Давно.

Не будет изолированности транзакций.
Откатывать как будем?
Кроме того, драйвера не thread safe
10 фев 20, 17:38    [22077012]     Ответить | Цитировать Сообщить модератору
 Re: Пятничная база данных  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4785
Dima T
Речь была совсем про другое, про одновременную запись с разных потоков.
Выше ответил.
10 фев 20, 17:39    [22077014]     Ответить | Цитировать Сообщить модератору
 Re: Пятничная база данных  [new]
YUBA
Member

Откуда:
Сообщений: 788
PetroNotC Sharp

Не будет изолированности транзакций.
Откатывать как будем?
Кроме того, драйвера не thread safe
Когда делал, смотрел доки SQLite. Не нашел противопоказаний.
Повторно уже не хочется разбираться. Задача уже давно решена.
10 фев 20, 17:45    [22077022]     Ответить | Цитировать Сообщить модератору
 Re: Пятничная база данных  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4785
YUBA
Давно
то есть ты взял коннект. Отдал в 100 потоков и они пошли писать параллельно?
А смысл какой брать один коннект?
У бд ПАРАЛЛЕЛИЗМ в соединениях.
10 фев 20, 17:46    [22077024]     Ответить | Цитировать Сообщить модератору
 Re: Пятничная база данных  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4785
YUBA
PetroNotC Sharp

Не будет изолированности транзакций.
Откатывать как будем?
Кроме того, драйвера не thread safe
Когда делал, смотрел доки SQLite. Не нашел противопоказаний.
Повторно уже не хочется разбираться. Задача уже давно решена.
да ради бога. Я не спорю.
Зачем.
Может ты сам разруливал руками и параллельного доступа не было. В очередь потоки строил.
Удачи!
10 фев 20, 17:47    [22077026]     Ответить | Цитировать Сообщить модератору
 Re: Пятничная база данных  [new]
YUBA
Member

Откуда:
Сообщений: 788
PetroNotC Sharp
то есть ты взял коннект. Отдал в 100 потоков и они пошли писать параллельно?
А смысл какой брать один коннект?
У бд ПАРАЛЛЕЛИЗМ в соединениях.
Ну, не 100, а только 5-6.
А смысл брать много коннектов? Одна DLL, в ней один коннект на все операции с БД. В старых версиях SQLite это было невозможно, в новых ограничения сняты, насколько я понимаю.
10 фев 20, 17:52    [22077032]     Ответить | Цитировать Сообщить модератору
 Re: Пятничная база данных  [new]
Dima T
Member

Откуда:
Сообщений: 14743
PetroNotC Sharp
YUBA
Давно
то есть ты взял коннект. Отдал в 100 потоков и они пошли писать параллельно?
А смысл какой брать один коннект?
У бд ПАРАЛЛЕЛИЗМ в соединениях.

SQLite особенный, и соединения особенные, ты же уже ответил 22076971, по дефолту соединения Сериализированные.
10 фев 20, 17:53    [22077034]     Ответить | Цитировать Сообщить модератору
 Re: Пятничная база данных  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4785
Dima T,
Понятно. Там в этом режиме мьютексы внутри все разруливают.
Да, встроенный режим это особенная эксплуатация. Согласен.
10 фев 20, 18:01    [22077041]     Ответить | Цитировать Сообщить модератору
 Re: Пятничная база данных  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4785
YUBA
А смысл брать много коннектов?
бывает нужно для этого
https://ru.m.wikipedia.org/wiki/ACID
10 фев 20, 18:03    [22077044]     Ответить | Цитировать Сообщить модератору
 Re: Пятничная база данных  [new]
YUBA
Member

Откуда:
Сообщений: 788
PetroNotC Sharp
бывает нужно для этого
https://ru.m.wikipedia.org/wiki/ACID
Почему это не может выполняться с одним коннектом. Тем более, что БД не препятствует такой работе.
10 фев 20, 18:08    [22077054]     Ответить | Цитировать Сообщить модератору
 Re: Пятничная база данных  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4785
YUBA,
Потому что буквально все эти фичи и свойства привязаны к одному коннекту.
Транзакция изолирована между двумя коннектами. Пока нет коммита в 1-ой, вторая не видит их на select.
10 фев 20, 18:35    [22077081]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
Все форумы / C++ Ответить