Abstract
The goal of this work is to research and program implementation of methods and data structures for building a database of a recommendation system in order to compare the efficiency of their use in terms of time and memory costs. The presence of a large number of different methods of database implementation necessitates a comparative analysis and selection of the optimal method and data structure for storing information in recommendation systems. A research on various data structures that can be used to create a recommendation system database, in particular, the linked list, unrolled linked list, hash table, B-tree, B+-tree, and binary decision diagram were examined was conducted. A series of experiments on a software simulation model of a recommendation system with a different number of agents, items and sessions was also carried out. The following research results were obtained. According to the results of the experiments, the unrolled linked list showed the best time and memory effectiveness. The B+-tree structure showed results close to a hash table. The access time to an individual element is stable in both cases, but the B+-tree has certain advantages – the elements are kept sorted, and when resizing, there is no need to expand the memory area. The worst results were shown by the data structure of the binary decision diagram, both in terms of time consumption and memory consumption. Profiling showed that 75% of the test run time for the option with an unrolled list was taken by generating random data for software simulation of agents and items of the recommendation system, therefore, the data warehouse itself has high performance indicators. Profiling of the variant with an inverted list showed that access to random blocks takes longer due to the inability to cache them, therefore, under real load conditions, the time for inserting new data will be longer, and the relative efficiency of using the inverted list will increase. For the most efficient use of memory, the block size of the linked list should be adapted so that the blocks are as full as possible. Small blocks reduce memory waste, but increase the time to traverse all the elements of the list and increase memory overhead.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
More From: Central Ukrainian Scientific Bulletin. Technical Sciences
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.