Shatiy avatar

Все у пам'ять

Теги: it-posts  ідея 

Як казав один персонаж: "Мама любить швидкісь".

З ростом об'ємів оперативної пам'яті і зменшенням її ціни виглядає перспективним взагалі відмовитися від зовнішніх накопичувачів при виконанні програми. І використовувати зовнішні накопичувачі, як і було задумано на початку розвитку комп'ютерів, тільки для зберігання даних при вимиканні і завантаження даних в ОП при вмиканні комп'ютера.

Це дасть максимальну швидкість виконання.

Для прикладу: 1С-база на моєму підприємстві має розмір біля 10 Гб. Враховуючи, що розмір ОЗУ сервера 128 Гб, нема ніяких проблем розмістити цю базу в ОЗУ і на порядок зменшити затримкм, які викликаються дисковими операціями і запитами до БД.

Вже зараз можна створити віртуальний диск в ОЗУ, перенести туди базу і отрмати збільшення швидкості. Однак тут є свої особливості і підводні камені.

По перше. Потрібно вирішити проблему надійності. Потрібно подбати про своєчасне збереження даних на випадок раптової поломки чи вимкнення обладнання.

Один з підходів до цього - постійне журналювання операцій на диск.

Враховуючи, що постійний запис журнала - це послідовний запис на диск, що (на відміну від довільного запису/читання, яке характерне для роботи з базами даних) є доволі швидкою операцією, то журналювання майже не уповільнює роботу бази даних. Цей підхід можна розвивати і вдосконалювати.

Також можна спробувати використвувати технологію миттєвих знімків, але не для дисків, а для ОЗУ, які потім збергати на зовнішні накопичувачі.

Але використання віртуального диска в ОЗУ тягне за собою використання всієї дискової інфраструктури операційної системи - драйверів, файлової системи і т.д. Це цілий шар програмного забезпечення, який додає складності. Крім того у цій системі можливі зовнішні переривання. Це збільшує вірогідність помилок і вносить свої затримки.

Тому для отримання максимального прискорення було б добре змінити архітектуру програм з урахуванням великого швидкого ОЗУ і повільних зовнішніх накопичувачів, доступ до яких повинен бути обмежений. Можливо, можна було б відмовтися також і від використання SQL (який втрачає ефективність при складних запросах) на користь прямих запросів до структур даних.

А що ж робити з тими мільйонами програм, які вже написані?

Для наявних програм можна уявити програмну прослойку, яка повністю ізолює програму від зовнішніх накопичувачів і переносе всі дії з даними в ОЗУ. Це може бути щось типу віртуальної машини чи контейнера, куди встановлюється програма.









Усі теги:
 commons  
 ідея  
 думка  
 сюжет  
 it-posts  
 humors  
 ru  
Зроблено Сергієм Шатнім у 2024 році з використанням Eleventy.