Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 17 18 19 20 21 [22] 23 24 25 26 .. 54   вперед  Ctrl
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
jan2ary
Member

Откуда: Киев
Сообщений: 1780
pkarklin
Любая, которая использует scatter/gather I/O. MS SQL и Oracle точно.
Действительно оракл так делает? Можно пруф? Ну или хотя бы как увидеть такое поведение на тесте?
16 окт 13, 16:25    [14981305]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
Melkomyagkii_newbi
Member

Откуда: из прошлого
Сообщений: 2112
Dimitry Sibiryakov
Сергей Арсеньев
большой объем оперативки надо было сохранить в датафайл

Эва... А как же "данные из транзакции могут вообще не попасть на диск. ПРофит!(быстрый
коммит)"?.. Или имеется в виду "коммит-то быстрый, а потом чекпоинт на всю оставшуюся
жизнь"?..


имеется ввиду, что после коммита данные могут быть доступны из памяти. там же они могут обновляться, удаляться и т.д. А в вашем случае коммита бы не было. И все бы ждали как му**ки когда он пройдет. То что админам там понадобилось мне неведомо, если они поступили как описано, то их надо было, мягко говоря, наказать ))
16 окт 13, 16:48    [14981554]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
iv_an_ru
Member

Откуда: Новосибирск
Сообщений: 20368
jan2ary
iv_an_ru
Хорошая СУБД спланирует запись изменившихся страниц так, чтобы головы жёстких дисков бегали как можно меньше...
А можно пример такой СУБД?
Я полагал, что любая хорошая. Собственно, это единственная причина, по которой СУБД вообще возится с планированием записи, а не отдаёт всё на усмотрение операционке и её дисковому кэшу. В отличие от операционки, СУБД знает не только содержимое очереди на запись, но и то, на сколько это "не срочно", а заодно знает и то, что она собирается при случае прочитать в будущем. То есть вполне может быть, что при записи страниц 10005 и 10025 мимоходом будут прочитаны 10010, 10015, 10020, 10030, 10035 потому, что планировщику показалось, что довольно много предыдущих страниц из того же екстента были прочитаны в возрастающем порядке, и раз уж голова страйпа номер 5 забрёл в ту область, то стоит нахаляву прочитать чуток вперёд.
16 окт 13, 16:57    [14981632]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
jan2ary
Действительно оракл так делает? Можно пруф? Ну или хотя бы как увидеть такое поведение на тесте?


http://docs.oracle.com/cd/B19306_01/server.102/b14220/process.htm

Раздел Database Writer Process (DBWn)

...
In all cases, DBWn performs batched (multiblock) writes to improve efficiency. The number of blocks written in a multiblock write varies by operating system.
16 окт 13, 17:01    [14981663]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54772

Melkomyagkii_newbi
в вашем случае коммита бы не было. И все бы ждали как му**ки
когда он пройдет.

Кто эти "все"? Коммит вообще-то делает всего один коннект...

Posted via ActualForum NNTP Server 1.5

16 окт 13, 17:02    [14981671]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
Yo.!
Guest
Dimitry Sibiryakov
Кто эти "все"? Коммит вообще-то делает всего один коннект...


например все те, кто ждут залоченные записи той транзакции, что сейчас занимается расскладыванием блоков по датафайлам. а оракл за это время пару тысяч транзакций обработает.
16 окт 13, 17:09    [14981717]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
Melkomyagkii_newbi
Member

Откуда: из прошлого
Сообщений: 2112
Dimitry Sibiryakov
Melkomyagkii_newbi
в вашем случае коммита бы не было. И все бы ждали как му**ки
когда он пройдет.

Кто эти "все"? Коммит вообще-то делает всего один коннект...


А остальные читают и редактируют незакомиченные данные?
16 окт 13, 17:10    [14981731]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54772

Melkomyagkii_newbi
А остальные читают и редактируют незакомиченные данные?

Здесь вам не MS, версионность рулит. И (вот ведь чудо) никакие записи при этом не блокируются.

Posted via ActualForum NNTP Server 1.5

16 окт 13, 17:14    [14981779]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Dimitry Sibiryakov
Здесь вам не MS, версионность рулит.


Дима, Дима...
16 окт 13, 17:20    [14981833]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
jan2ary
Member

Откуда: Киев
Сообщений: 1780
pkarklin,

И что, DBWR действительно упорядочивает очередь грязных блоков в порядке их расположения на дисках?
Два вопроса:
1. Зачем ему это, если там, скорее всего, хранилище с кешем, а то и SSD?
2. Откуда ему знать, какой там цилиндр/сектор/блок в геометрии диска соответствует блоку?
16 окт 13, 17:21    [14981836]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
iv_an_ru
Member

Откуда: Новосибирск
Сообщений: 20368
Dimitry Sibiryakov
Melkomyagkii_newbi
А остальные читают и редактируют незакомиченные данные?

Здесь вам не MS, версионность рулит. И (вот ведь чудо) никакие записи при этом не блокируются.
Разницы-то. Никакая версионность вам не поможет быстро дважды прибавить единичку к одному и тому же счётчику в двух разных транзакциях, если первая транзакция будет коммититься до морковкиного заговенья до окончания неспешной рандомной записи страницы с данными.
16 окт 13, 17:24    [14981857]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
jan2ary
1. Зачем ему это, если там, скорее всего, хранилище с кешем, а то и SSD?
2. Откуда ему знать, какой там цилиндр/сектор/блок в геометрии диска соответствует блоку?


Пойдите от противного. Почему даже хранилища с кэшем, и даже с SSD тестируют и на последовательные, и на рандомные чтение\запись с разными размерами блоков и они (результаты тестов) отличаются.
16 окт 13, 17:28    [14981870]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
iv_an_ru
Member

Откуда: Новосибирск
Сообщений: 20368
jan2ary
И что, DBWR действительно упорядочивает очередь грязных блоков в порядке их расположения на дисках?
Два вопроса:
1. Зачем ему это, если там, скорее всего, хранилище с кешем, а то и SSD?
Даже если с кэшем, лишние трансферы данных ещё никогда ничего не ускоряли.
jan2ary
2. Откуда ему знать, какой там цилиндр/сектор/блок в геометрии диска соответствует блоку?
На самом деле это никому не интересно. Вероятность нарваться на фрагментацию очень мала, поэтому достаточно смотреть на близость позиций в файле, с номерами секторов пусть греет голову операционка, а с физикой --- проц в полке или диске. Единственное, что надо подсказать СУБД --- какие файлы находятся на одном отдельно буферизуемом операционкой устройстве ввода-вывода, какие на втором и т.п.
16 окт 13, 17:32    [14981894]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54772

iv_an_ru
Никакая версионность вам не поможет быстро дважды прибавить единичку к
одному и тому же счётчику в двух разных транзакциях, если первая транзакция будет
коммититься до окончания неспешной рандомной записи страницы с данными.

Ась? Какая такая рандомная запись одной страницы?

Posted via ActualForum NNTP Server 1.5

16 окт 13, 17:37    [14981927]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
iv_an_ru
Member

Откуда: Новосибирск
Сообщений: 20368
Dimitry Sibiryakov
iv_an_ru
Никакая версионность вам не поможет быстро дважды прибавить единичку к
одному и тому же счётчику в двух разных транзакциях, если первая транзакция будет
коммититься до окончания неспешной рандомной записи страницы с данными.

Ась? Какая такая рандомная запись одной страницы?
Ну раз у вас лога нет, то той страницы, на которой значение строки со счётчиком, и, которую надо записать, чтобы сказать "коммит закончен".
16 окт 13, 17:44    [14981979]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
Melkomyagkii_newbi
Member

Откуда: из прошлого
Сообщений: 2112
iv_an_ru
Dimitry Sibiryakov
пропущено...

Ась? Какая такая рандомная запись одной страницы?
Ну раз у вас лога нет, то той страницы, на которой значение строки со счётчиком, и, которую надо записать, чтобы сказать "коммит закончен".


Зачем с темы съезжаешь?
тут дело в том, что например в оракле(а он версионник испокон веков) нельзя апдейтить строки которые вставили, но не закомитили. В ваших версионниках можно?)



ЗЫ Дима, признайся, ты тролль или специально обучался тупости?
16 окт 13, 17:59    [14982093]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54772

iv_an_ru
той страницы, на которой значение строки со счётчиком, и, которую надо
записать, чтобы сказать "коммит закончен".

А раз система высоконагруженная, то каковы шансы, что эти две страницы будут на одном и
том же приводе, то бишь будут писаться одним и тем же блоком головок?

Posted via ActualForum NNTP Server 1.5

16 окт 13, 17:59    [14982094]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
jan2ary
Member

Откуда: Киев
Сообщений: 1780
pkarklin
Пойдите от противного. Почему даже хранилища с кэшем, и даже с SSD тестируют и на последовательные, и на рандомные чтение\запись с разными размерами блоков и они (результаты тестов) отличаются.
Потому что разные варианты характерны для разных частных случаев. Заливка данных insert append, запись потоком redo - многоблочная последовательная запись. Чекпоинт - запись мелкими порциями вразброс. Аналитика - чтение большого количества данных большими порциями.

iv_an_ru
На самом деле это никому не интересно. Вероятность нарваться на фрагментацию очень мала, поэтому достаточно смотреть на близость позиций в файле, с номерами секторов пусть греет голову операционка, а с физикой --- проц в полке или диске. Единственное, что надо подсказать СУБД --- какие файлы находятся на одном отдельно буферизуемом операционкой устройстве ввода-вывода, какие на втором и т.п.
Поэтому оракл собирает данные в единую операцию ввода-вывода, если возможно. Потому что прочитать/записать за один раз 64 блока подряд быстрее, чем сделать то же самое 64 раза по одному блоку. Да, и за счет того, что они, скорее всего, рядом на диске, тоже, но не только поэтому.
Давайте еще вспомним, что ввод-вывод предпочитается асинхронный. Становится еще интереснее!
16 окт 13, 18:12    [14982157]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
jan2ary
Чекпоинт - запись мелкими порциями вразброс.


Отнюдь! Для MS SQL:

When the buffer manager writes a page, it searches for adjacent dirty pages that can be included in a single gather-write operation. Adjacent pages have consecutive page IDs and are from the same file; the pages do not have to be contiguous in memory. The search continues both forward and backward until one of the following events occurs:
  • A clean page is found.
  • 32 pages have been found.
  • A dirty page is found whose log sequence number (LSN) has not yet been flushed in the log.
  • A page is found that cannot be immediately latched.
    In this way, the entire set of pages can be written to disk with a single gather-write operation.

    И делается это не только процессом Checkpoint, но и процессами Lazy writing и Eager writing.

    jan2ary
    Аналитика - чтение большого количества данных большими порциями.


    Большими порциями данные могут читаться не только для аналитики:

    The Database Engine supports a performance optimization mechanism called read-ahead. Read-ahead anticipates the data and index pages needed to fulfill a query execution plan and brings the pages into the buffer cache before they are actually used by the query. This allows computation and I/O to overlap, taking full advantage of both the CPU and the disk.

    The read-ahead mechanism allows the Database Engine to read up to 64 contiguous pages (512KB) from one file. The read is performed as a single scatter-gather read to the appropriate number of (probably non-contiguous) buffers in the buffer cache. If any of the pages in the range are already present in the buffer cache, the corresponding page from the read will be discarded when the read completes. The range of pages may also be "trimmed" from either end if the corresponding pages are already present in the cache.
  • 16 окт 13, 18:26    [14982213]     Ответить | Цитировать Сообщить модератору
     Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
    iv_an_ru
    Member

    Откуда: Новосибирск
    Сообщений: 20368
    Dimitry Sibiryakov
    iv_an_ru
    той страницы, на которой значение строки со счётчиком, и, которую надо
    записать, чтобы сказать "коммит закончен".

    А раз система высоконагруженная, то каковы шансы, что эти две страницы будут на одном и
    том же приводе, то бишь будут писаться одним и тем же блоком головок?
    Если это счётчик ТТН, оформленных складом, то вероятность может быть близка к 100% :)
    16 окт 13, 18:40    [14982255]     Ответить | Цитировать Сообщить модератору
     Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
    Dimitry Sibiryakov
    Member

    Откуда:
    Сообщений: 54772

    iv_an_ru
    Если это счётчик ТТН, оформленных складом, то вероятность может быть близка
    к 100% :)

    Суровые у вас там в Сибири склады, оформляющие тысячи ТТН в секунду...

    Posted via ActualForum NNTP Server 1.5

    16 окт 13, 18:42    [14982262]     Ответить | Цитировать Сообщить модератору
     Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
    jan2ary
    Member

    Откуда: Киев
    Сообщений: 1780
    pkarklin,

    Я приводил типовые примеры.
    Ок, в MS SQL не силен, не могу ничего ответить. Тем более по поводу Lazy writing и Eager writing. Вот только именно то, что это делается для оптимизации цикла записи данных головками дисков - все еще не доказано. То, что from the same file - а потому что системный вызов "записать" требует одного дескриптора файла в качестве аргумента :)
    По поводу read-ahead - есть аналог и в оракле, и таки да. Тем не менее, многоблочные чтения более характерны для хранилищ и аналитики.
    16 окт 13, 18:55    [14982323]     Ответить | Цитировать Сообщить модератору
     Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
    iv_an_ru
    Member

    Откуда: Новосибирск
    Сообщений: 20368
    Dimitry Sibiryakov
    iv_an_ru
    Если это счётчик ТТН, оформленных складом, то вероятность может быть близка
    к 100% :)

    Суровые у вас там в Сибири склады, оформляющие тысячи ТТН в секунду...
    А вы не обращали внимание, на каких масштабах и каких скоростях нынче меряют TPC-C? 100000 заказов в секунду на складе в 48 миллиардов товарных позиций и 14.4 миллиарда различных покупателей. Любой московский интернет магазин обзавидуется :)
    16 окт 13, 18:58    [14982334]     Ответить | Цитировать Сообщить модератору
     Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
    Sergei.Agalakov
    Member

    Откуда:
    Сообщений: 575
    База данных в общем случае не может знать расположение блоков на диске и пытатьсячто-то там упорядочивать. Из моей недавней практики:
    Оракл на Линуксе, хранение в файлах на ext3, используется менеджер томов LVM, удаленное iSCSI хранилище на NetApp с его собственной файловой системой и менеджером томов... Не говоря уж о перемаппировании секторов прямо на жестком диске.
    Каие там положения головок жестких дисков!
    Что-то близкое к реальной геометрии дисков может знать хороший RAID контроллер с кэшем, а операционка будет видеть только то, что он ей покажет.
    Многоблочные операции ввода-вывода делаются базой для оптимизации работы с операционной системой, которой проще выполнить однй операцию на 1МБ, чем 256 операций по 4КБ. Эта одна операция ОС отнюдь не гарантирует одной операции записи на жестком диске, и головки могут передвигаться десятки раз.
    16 окт 13, 20:20    [14982543]     Ответить | Цитировать Сообщить модератору
     Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
    pkarklin
    Member

    Откуда: Москва (Муром)
    Сообщений: 74930
    jan2ary,

    автор
    Вот только именно то, что это делается для оптимизации цикла записи данных головками дисков - все еще не доказано.


    Я понимаю, к чему Вы клоните. Сказанное мной здесь Зачем выбирать другие СУБД, если существует MS SQLServer? Вы поняли буквально, хотя это была аллегория. Да, это моя вина.
    16 окт 13, 20:32    [14982574]     Ответить | Цитировать Сообщить модератору
    Топик располагается на нескольких страницах: Ctrl  назад   1 .. 17 18 19 20 21 [22] 23 24 25 26 .. 54   вперед  Ctrl
    Все форумы / Сравнение СУБД Ответить