Details
Title | Разработка локального легковесного хранилища на базе LSM-деревьев для автономных Java-проектов: выпускная квалификационная работа бакалавра: направление 09.03.03 «Прикладная информатика» ; образовательная программа 09.03.03_03 «Интеллектуальные инфокоммуникационные технологии» |
---|---|
Creators | Виниченко Даниил Николаевич |
Scientific adviser | Андрианова Екатерина Евгеньевна |
Organization | Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и кибербезопасности |
Imprint | Санкт-Петербург, 2025 |
Collection | Выпускные квалификационные работы ; Общая коллекция |
Subjects | nosql ; базы данных ; lsm-деревья ; автономные встроенные хранилища ; apache casandra ; rocksdb ; badgerdb ; java ; автономные устройства ; sstable ; data bases ; lsm-trees ; local integrated storages ; autonomous devices |
Document type | Bachelor graduation qualification work |
File type | |
Language | Russian |
Level of education | Bachelor |
Speciality code (FGOS) | 09.03.03 |
Speciality group (FGOS) | 090000 - Информатика и вычислительная техника |
DOI | 10.18720/SPBPU/3/2025/vr/vr25-1505 |
Rights | Доступ по паролю из сети Интернет (чтение, печать, копирование) |
Additionally | New arrival |
Record key | ru\spstu\vkr\35713 |
Record create date | 7/30/2025 |
Allowed Actions
–
Action 'Read' will be available if you login or access site from another network
Action 'Download' will be available if you login or access site from another network
Group | Anonymous |
---|---|
Network | Internet |
В этой работе исследуются современные подходы к организации эффективных локальных NoSQL-хранилищ на основе LSM-деревьев, с фокусом на Apache Cassandra и RocksDB. Объектом исследования выступают алгоритмы MemTable→SSTable и методы компактации. Цель работы – провести обзор существующих архитектур, выявить их преимущества и ограничения, а затем создать Java-библиотеку без внешних зависимостей, оптимизированную для встраиваемых систем и IoT-устройств. Методология включает теоретический анализ LSM-деревьев, сравнительный обзор стратегий записи и компактации, проектирование и реализацию прототипа на Java 8 с CRC-контрольной суммой и Bloom-фильтрами, а также комплексное тестирование: юнит-тесты и нагрузочные стенды на Java, Go+BadgerDB и C++17+RocksDB, в том числе в Docker-контейнере с лимитами 0,5 CPU и 512 MB RAM. По результатам нагрузочных тестов разработка продемонстрировала среднюю задержку записи до 12 µs и чтения до 4 µs при footprint менее 20 MB, а все проверки CRC и консистентности прошли на 100%. Полученный прототип готов к практическому применению в автономных системах с ограниченными ресурсами, таких как IoT-датчики и встроенные контроллеры.
This work investigates modern approaches to building efficient local NoSQL storages based on LSM-trees, focusing on Apache Cassandra and RocksDB. The subject of research is the MemTable→SSTable algorithm and compaction methods. The objective is to review existing architectures, identify their strengths and limitations, and then implement a minimal Java 8 library without external dependencies optimized for embedded systems and IoT devices. The methodology includes theoretical analysis of LSM-trees, comparative study of write and compaction strategies, design and implementation of a Java prototype with CRC validation and Bloom filters, and comprehensive testing: unit tests and load benchmarks on Java, Go+BadgerDB, and C++17+RocksDB, including in a Docker container constrained to 0.5 CPU and 512 MB RAM. Load testing results show write latencies up to 12 µs and read latencies up to 4 µs with a memory footprint under 20 MB, and 100% success in CRC and consistency checks. The prototype is ready for practical use in resource-constrained autonomous systems such as IoT sensors and embedded controllers, with potential for further optimization via sparse indexing and GC tuning.
Network | User group | Action |
---|---|---|
ILC SPbPU Local Network | All |
|
Internet | Authorized users SPbPU |
|
Internet | Anonymous |
|
- Разработка локального легковесного хранилища на базе LSM-деревьев для автономных Java-проектов
- ВВЕДЕНИЕ
- 1. Анализ предметной области
- 2. Проектирование прототипа хранилища
- 3. Практическая реализация решения
- 4. Тестирование и апробация реализованного решения
- ЗАКЛЮЧЕНИЕ
- СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
- Приложение 1 Код приложения
Access count: 0
Last 30 days: 0