RU2656721C1 - Способ организации хранения частично совпадающих больших объектов - Google Patents

Способ организации хранения частично совпадающих больших объектов Download PDF

Info

Publication number
RU2656721C1
RU2656721C1 RU2016146593A RU2016146593A RU2656721C1 RU 2656721 C1 RU2656721 C1 RU 2656721C1 RU 2016146593 A RU2016146593 A RU 2016146593A RU 2016146593 A RU2016146593 A RU 2016146593A RU 2656721 C1 RU2656721 C1 RU 2656721C1
Authority
RU
Russia
Prior art keywords
fragments
large object
database
matching
fragment
Prior art date
Application number
RU2016146593A
Other languages
English (en)
Inventor
Никита Сергеевич Печенкин
Андрей Александрович Коротченко
Андрей Александрович Медведев
Original Assignee
Общество с ограниченной ответственностью "Научно-технический центр РЕЛЭКС" (ООО "НТЦ РЕЛЭКС")
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Общество с ограниченной ответственностью "Научно-технический центр РЕЛЭКС" (ООО "НТЦ РЕЛЭКС") filed Critical Общество с ограниченной ответственностью "Научно-технический центр РЕЛЭКС" (ООО "НТЦ РЕЛЭКС")
Priority to RU2016146593A priority Critical patent/RU2656721C1/ru
Application granted granted Critical
Publication of RU2656721C1 publication Critical patent/RU2656721C1/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2219Large Object storage; Management thereof

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Изобретение относится к вычислительной технике. Технический результат заключается в повышении производительности системы управления базами данных. Способ организации хранения частично совпадающих больших объектов (LOB), в котором получают по меньшей мере один большой объект для осуществления его модификации или добавления в базу данных на запоминающее устройство; выполняют поиск совпадающих фрагментов полученного большого объекта с хранящимися в базе данных фрагментами больших объектов, причем находящиеся в базе данных большие объекты разбиты на фрагменты, где каждый фрагмент имеет уникальный идентификатор; в случае нахождения совпадающих фрагментов, разбивают полученный большой объект на совпадающие в базе данных фрагменты и на уникальные фрагменты таким образом, что уникальным фрагментом считается каждый непрерывный участок большого объекта, оставшийся после нахождения совпадающих фрагментов; получают идентификаторы совпадающих фрагментов больших объектов из запоминающего устройства; присваивают каждому уникальному фрагменту полученного большого объекта идентификатор и сохраняют в запоминающее устройство; сохраняют в базу данных большой объект как упорядоченную последовательность идентификаторов фрагментов, из которых он состоит. 9 з.п. ф-лы, 6 ил.

Description

ОБЛАСТЬ ТЕХНИКИ
[1] Данное техническое решение относится к области вычислительной техники, в частности к способу организации хранения частично совпадающих больших объектов (LOB).
УРОВЕНЬ ТЕХНИКИ
[2] Из уровня техники известен патент на изобретение US 6738790 В1 «Approach for accessing large objects», патентообладатель: Oracle International Corporation, дата публикации: 18.05.2004. В данном патенте описывается способ и система для доступа к большим объектам, который находится в ячейке таблицы. В указанном решении перед модификацией фрагмента LOB, его сначала копируют, а потом над копией осуществляют модификацию. Указанное изобретение отличается от заявляемого решения тем, что в нем не реализован поиск частично повторяемых фрагментов среди хранящихся в ЗУ фрагментов других объектов.
[3] Также известно решение US 6144970A «Technique for inplace reorganization of a LOB table space». В данном патенте описывается способ и устройство реорганизации больших объектов. Один или несколько фрагментов в таблице выделяются для идентифицированных больших объектов. Сама суть патента несколько другая, чем в данном техническом решении: в таблице для идентифицированных больших объектов выделяется пространство для фрагментов, в которых далее размещаются большие объекты посредством деления на фрагменты.
[4] Указанные выше технические решения обеспечивают хранение данных в LOB объектах (или их аналогах), но не учитывают возможные совпадения в разных экземплярах объектов, что может привести к нерациональному использованию оперативной памяти, пространства на ЗУ, скорости чтения, скорости групповых модификаций для объектов, содержащих большое количество идентичных фрагментов.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[5] Данное техническое решение направлено на устранение недостатков, присущих существующим решениям хранения связанных данных.
[6] Технической задачей или проблемой, поставленной в данном решении, является обеспечение учета возможных совпадений при хранении данных в LOB объектах.
[7] Технический результат, проявляющийся при решении вышеуказанной задачи, заключается в повышении производительности системы управления базами данных.
[8] Также дополнительным техническим результатом является повышение скорости групповых модификаций для объектов, содержащих большое количество идентичных объектов.
[9] Дополнительно при решении вышеуказанной задачи рационально используется оперативная память в техническом решении.
[10] Вышеуказанный технический результат достигается посредством осуществления способа организации хранения частично совпадающих больших объектов (LOB), в котором получают по меньшей мере один большой объект (LOB) для осуществления его модификации или добавления в базу данных на запоминающее устройство; выполняют поиск совпадающих фрагментов полученного большого объекта с хранящимися в базе данных фрагментами больших объектов, причем находящиеся в базе данных большие объекты разбиты на фрагменты, где каждый фрагмент имеет уникальный идентификатор; в случае нахождения совпадающих фрагментов, разбивают полученный большой объект на совпадающие в базе данных фрагменты и на уникальные фрагменты; получают идентификаторы совпадающих фрагментов больших объектов из запоминающего устройства; присваивают каждому уникальному фрагменту полученного большого объекта идентификатор и сохраняют в запоминающее устройство; сохраняют в базу данных большой объект как упорядоченную последовательность идентификаторов фрагментов, из которых он состоит.
[11] В некоторых вариантах осуществления технического решения большой объект является двоичным (BLOB) или символьным (CLOB), или национальным символьным (NCLOB).
[12] В некоторых вариантах осуществления технического решения большой объект является внутренним или внешним.
[13] В некоторых вариантах осуществления технического решения осуществляют поиск совпадающих объектов посредством алгоритма Кнута-Морриса-Пратта или алгоритма шингла или Frequent Subsequence Mining (FSM) или алгоритма CloSpan или перцептивной хеш-функции.
[14] В некоторых вариантах осуществления технического решения выполняют предварительную обработку полученного большого объекта посредством разбиения большого объекта на фрагменты.
[15] В некоторых вариантах осуществления технического решения при разбиении полученного большого объекта на совпадающие в базе данных фрагменты и на уникальные фрагменты, фрагменты имеют не нулевую длину.
[16] В некоторых вариантах осуществления технического решения идентификатор фрагмента большого объекта является целочисленным значением.
[17] В некоторых вариантах осуществления технического решения присваивают каждому уникальному фрагменту полученного большого объекта идентификатор инкрементно.
[18] В некоторых вариантах осуществления технического решения после поиска повторяемых, а также после сохранения уникальных фрагментов, каждый большой объект представляют как последовательность идентификаторов фрагментов.
[19] В некоторых вариантах осуществления технического решения последовательность фрагментов хранится в теле записи.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[20] Признаки и преимущества настоящего изобретения станут очевидными из приведенного ниже подробного описания изобретения и прилагаемых чертежей, на которых:
[21] На Фиг. 1 изображены состояния системы хранения больших объектов до (101) и после (101`) добавления нового объекта LOB2 (108), частично совпадающего с другим объектом LОВ1(102). Отображены изменения в ЗУ (103,103`) после добавления нового фрагмента (107).
[22] На Фиг. 2 изображена последовательность взаимодействия и жизненный цикл исполнения последовательных запросов на извлечение LOB1 (201) и LOB2 (205), на которой отображен (208, 206) возврат повторяемых фрагментов, прочтенных ранее (212, 204) без повторного обращения к ЗУ (260).
[23] На Фиг. 3 изображены состояния системы хранения больших объектов до (301) и после (301`) изменения объекта LOB2 (308, 308`). Отображены изменения в ЗУ (303, 303`) после добавления нового фрагмента (309).
[24] На Фиг. 4 изображены состояния системы хранения больших объектов до (401) и после (4001`) группового изменения частично совпадающих объектов LOB1 (402, 402`) и LOB2 (408, 408`) посредством изменения повторяемого фрагмента (408,408`).
[25] На Фиг. 5 приведена блок-схема, иллюстрирующая способ осуществления для записи нового объекта.
[26] На Фиг. 6 показан вариант осуществления формата порции фрагмента большого объекта, на которые он разбивается.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
[27] Ниже будут описаны понятия и определения, необходимые для подробного раскрытия осуществляемого изобретения.
[28] Запись - набор значений различных типов, предназначенный к хранению в ЗУ.
[29] Группа - совокупность записей, которая рассматривается как самостоятельная единица в операциях чтения/записи, предполагающая физически объединенное хранение в ЗУ.
[30] LOB, LOB-тип - в PL/SQL, SQL1999 - тип данных, используемый для хранения больших объектов (Large OBject). При выборе значения любого LOB-типа посредством оператора SELECT возвращается указатель, а не само значение; кроме того, типы LOB могут быть и внешними. Внешний LOB хранит большой объект (или его часть) в отдельном файле, внутренний - в файлах базы данных.
[31] Большой объект, Large OBject, LOB - объект, предназначенный для эффективного хранения и доступа к двоичным данным произвольной структуры и размера.
[32] Частично совпадающие большие объекты - два или более больших объекта, имеющих хотя бы один общий фрагмент в их представлении в ЗУ.
[33] Запоминающее устройство, ЗУ - устройство, предназначенное для записи и хранения данных.
[34] Фрагмент большого объекта - непрерывный участок представления большого объекта на запоминающем устройстве.
[35] Повторяющийся фрагмент - фрагмент, который входит в состав более чем одного объекта или имеет повторения в составе одного объекта.
[36] Уникальный фрагмент - фрагмент, который входит в состав только одного объекта и не имеет повторений в составе одного объекта.
[37] База данных, database - представленная в объективной форме совокупность самостоятельных материалов (статей, расчетов, нормативных актов, судебных решений и иных подобных материалов), систематизированных таким образом, чтобы эти материалы могли быть найдены и обработаны с помощью электронной вычислительной машины (ЭВМ).
[38] Система управления базами данных, Database Management System, СУБД, DBMS - совокупность программных и лингвистических средств общего или специального назначения, обеспечивающих управление созданием и использованием баз данных.
[39] Система Хранения Данных (СХД) - это комплексное программно-аппаратное решение по организации надежного хранения информационных ресурсов и предоставления гарантированного доступа к ним.
[40] Префикс функция - это такая функция от строки, которая для каждого элемента строки с номером i показывает наибольшую длину собственного суффикса подстроки с 0 до i элемента включительно, совпадающий с ее префиксом. Префикс - это подстрока, начинающаяся с начала строки.
[41] Согласно Фиг. 1, способ организации хранения частично совпадающих больших объектов (LOB) осуществляется следующим образом.
[42] Шаг 101: получают по меньшей мере один большой объект (LOB) (108, 308) для осуществления его модификации (Фиг. 3) или добавления (Фиг. 1) в базу данных на запоминающее устройство (103, 303);
[43] Под модификацией большого объекта предполагается любое изменение в объекте, приводящее к изменению набора двоичных данных, представляющих его и хранящихся в ЗУ.
[44] Шаг 102: выполняют поиск (502) совпадающих фрагментов полученного большого объекта с хранящимися в базе данных фрагментами больших объектов (304, 305, 306, 307, 104, 105, 106), причем находящиеся в базе данных большие объекты разбиты на фрагменты, где каждый фрагмент имеет уникальный идентификатор;
[45] В некоторых вариантах осуществления могут использоваться несколько способов осуществления поиска совпадающих объектов, например, алгоритм Кнута-Морриса-Пратта, алгоритмов шинглов, Frequent Subsequence Mining (FSM), CloSpan (алгоритм поиска закрытых последовательных шаблонов), алгоритм кластеризации дубликатов (для поиска повторяемых фрагментов изображений), перцептивная хеш-функция (для поиска повторяемых фрагментов объекта произвольной структуры), или их комбинация, не ограничиваясь.
[46] Рассмотрим в качестве примера осуществления использование алгоритма Кнута-Морриса-Пратта. Пусть входной LOB (обозначим как haystack) содержит упорядоченную последовательность байт длиной n байт. Необходимо определить, входит ли уже сохраненный фрагмент (обозначим как needle) длиной m байт в него. В случае использования алгоритма Кнута-Морриса-Пратта для всех фрагментов, которые уже были сохранены в БД, хранятся предварительно вычисленные значения префикс функции (их размер будет совпадать с размером фрагмента). Префикс функция фрагмента π(S,i) - это длина наибольшего префикса фрагмента S[1..i], который не совпадает с этим фрагментом и одновременно является его суффиксом. Проще говоря, это длина наиболее длинного начала фрагмента, являющегося также и его концом. Фрагмент «перемещается» по данным LOB слева направо с целью обнаружения совпадения. С помощью префикс функции избегаются заведомо бесполезные сдвиги. Результатом применения алгоритма Кнута-Морриса-Пратта является смещение фрагмента во входном LOB (если фрагмент найден) или информация о том, что фрагмента не найдено. Если фрагмент не найден, то переходят к следующему хранящемуся объекту и пытаются найти его. Если фрагмент найден, то в последующих поисках этот найденный участок во входящем LOB более не учитывается.
[47] В некоторых вариантах осуществления выполняют предварительную обработку полученного большого объекта, например, разбиение объекта на фрагменты, которое определяется потребностями алгоритма поиска совпадающих объектов.
[48] В некоторых вариантах для поиска повторяемых фрагментов в объектах, порождаемых из существующих в базе, возможно использование описания изменений. Допустим, что в СУБД хранятся следующие фрагменты:
Figure 00000001
Figure 00000002
[49] из которых состоит следующий большой объект:
Figure 00000003
[50] Тогда условная команда INSERT REPLACE (LOB1, 'Test', 'desk'), которая явно указывает, что новый объект (LOB2) получен из содержимого объекта LOB1 путем замены слова «Test» на слово «desk», приводит к тому, что поиск повторяемых объектов не нужен, поскольку пользователь явно указал их - это все части строки, совпадающие с исходной строкой. Необходим только поиск возможного повторения для фрагмента «desk». Выполнение команды приведет тогда к хранению следующих фрагментов в СУБД:
Figure 00000004
[51] А большие объекты будут представлены как:
Figure 00000005
[52] Шаг 103: в случае нахождения совпадающих фрагментов, разбивают (Фиг, 5) полученный большой объект на совпадающие в базе данных фрагменты и на уникальные фрагменты.
[53] Результаты поиска используют для разбиения большого объекта на повторяющиеся и уникальные фрагменты.
[54] Пусть в результате поиска обнаружили, что входной LOB (длиной n байт) содержит два уже хранимых в базе данных фрагмента: needleA с позиции а1 до а2 и needleB с позиции b1 и b2. При этом, как было сказано ранее - фрагменты не должны пересекаться, т.е.
0≤a1<a2≤n и 0≤b1<b2≤n
[55] Пусть в примерном варианте осуществления needleA будет расположен «левее» needleB, тогда
0≤a1<a2≤b1<b2≤n
[56] Таким образом LOB [0, n] может быть разбит на следующие фрагменты:
[0,а1) [а1,а2] (а2,b1) [b1,b2] (b2,n]
[57] Пусть все эти фрагменты имеют не нулевую длину (фрагменты нулевой длины просто далее не учитываются в работе). Тогда имеем следующие уникальные фрагменты:
[0,а1), (а2,b1), (b2,n]
[58] и следующие повторяющиеся:
[а1,а2] (needleA), [b1,b2] (needleB)
[59] Результатом поиска повторяемых фрагментов является множество непрерывных участков в наборе двоичных данных, которые встречаются как минимум в одном из уже хранимых объектов.
[60] Каждый повторяющийся фрагмент уже хранится в базе данных и, соответственно, может быть идентифицирован уникальным идентификатором.
[61] Каждый непрерывный участок представления большого объекта, не являющийся повторяемым, считается уникальным.
[62] Например, пусть добавляемый большой объект содержит строку «abcdefghicde», в результате поиска найден только один повторяемый фрагмент [cde], тогда оставшиеся непрерывные фрагменты являются уникальными.
Figure 00000006
[63] Шаг 104: получают (504) идентификаторы совпадающих фрагментов больших объектов из запоминающего устройства;
[64] Поскольку повторяемые фрагменты по определению уже содержатся в базе данных, то имеется возможность получить их идентификатор. Тип идентификатора не является ограничивающим и может быть, например, целочисленным числом.
[65] Каждый фрагмент может храниться в одной или более страницах размером, например 4096 байт. Поскольку размер страницы меньше размера возможного размера всего фрагмента, то фрагмент разделен на порции, каждая помещается в страницу. Каждая порция имеет формат, показанный на Фиг. 6, где TYPE (601) - тип, записи (в нашем случае - фрагмент). R0 (602) - зарезервировано, не используется. LENGTH (603) - размер порции в байтах. EXTRHDR (604) - расширенный заголовок, включает помимо всего прочего и идентификатор фрагмента, NEXT_PAGE_FRAGMENT (605) - номер страницы следующей порции, NEXT_FILE_FRAGMENT (606) - номер файла со страницей NEXT_PAGE_FRAGMENT, NEXT_SLOT_FRAGMENT (607) - номер слота на странице в котором расположена следующая порция, BODY (608) - непосредственно запись.
[66] Например, добавляемый большой объект содержит строку «abcdefghicde», и в результате поиска найден только один повторяемый фрагмент [cde] с идентификатором 22:
Figure 00000007
[67] Шаг 105: присваивают (505) каждому уникальному фрагменту полученного большого объекта идентификатор и сохраняют в запоминающее устройство;
[68] Поскольку уникальные фрагменты объекта полученного большого объекта по определению не содержатся в базе данных, то имеется необходимость их сохранить, назначив им уникальный идентификатор. Тип идентификатора не является ограничивающим и, например, может быть целочисленным числом. В некоторых вариантах осуществления идентификатор назначается инкрементно, и основным условием является, чтобы он был уникальным.
[69] Например, добавляемый большой объект содержит строку «abcdefghicde», и в результате поиска найден только один повторяемый фрагмент [cde] с идентификатором 22, и выделено два уникальных фрагмента: [ab], [fghi], которым при сохранении назначены уникальные идентификаторы 23 и 24 соответственно:
Figure 00000008
[70] Шаг 106: сохраняют (508) в базу данных большой объект как упорядоченную последовательность идентификаторов фрагментов, из которых он состоит.
[71] В результате поиска повторяемых, а также после сохранения уникальных фрагментов, каждый большой объект может быть представлен как последовательность идентификаторов фрагментов.
[72] Пусть добавляемый большой объект содержит строку «abcdefghicde», и в результате поиска найден один повторяемый фрагмент [cde] с идентификатором 22, и выделено два уникальных фрагмента: [ab], [fghi], которые были сохранены как фрагменты с идентификаторами 23 и 24 соответственно. Тогда исходный большой объект может быть представлен как последовательность следующих идентификаторов: [23][22][24][22]. Именно эта последовательность и сохраняется в базе данных как LOB объект.
[73] Последовательность фрагментов может храниться непосредственно в теле записи. Каждый идентификатор имеет фиксированный размер, и в теле записи фиксируется в префиксе количество фрагментов, а затем идут их значения. Например:
[LEN:3][ID=511][ID=551][ID=552]
[74] или
[LEN:5][ID=112][ID=122][ID=222][ID=875][ID=555]
[75] В некоторых вариантах осуществления, размер поля LEN и каждого поля ID - 4 байта и для хранения LOB-a из n фрагментов нужно (n+1)*4 байт.
[76] В некоторых вариантах осуществления изменяют повторяющийся фрагмент (406) для групповой модификации частично совпадающих объектов одной операцией (Фиг. 4).
[77] Поскольку большой объект представлен последовательностью идентификаторов фрагментов, из которых он состоит, то изменение любого фрагмента без изменения его идентификатора приводит к модификации содержимого всех объектов, в состав которых он входит.
[78] Например, база данных содержит следующие фрагменты:
Figure 00000009
[79] И следующие LOB объекты из них состоящие:
Figure 00000010
[80] Пусть одной операцией содержимое фрагмента с идентификатором 1 было заменено на «XX», тогда содержимое больших объектов будет изменено следующим образом:
Figure 00000011
Figure 00000012
[81] Поскольку большой объект представлен последовательностью идентификаторов фрагментов, из которых он состоит, то нет необходимости в повторном чтении фрагмента, ранее уже почтенного с ЗУ. (Фиг. 2)
[82] Например, два каких-либо объекта LOB1 и LOB2 содержат общий повторяемый фрагмент [CD].
[83] Тогда, в ходе чтения содержимого объекта LOB1 (201) будет прочтен (212) и фрагмент [CD], который может остаться в оперативном ЗУ.
[84] Тогда, в ходе чтения LOB2 (205) можно избежать (208) обращения к ЗУ (260) для получения фрагмента [CD], поскольку он уже прочтен ранее (212) и уже содержится в оперативном ЗУ (250).

Claims (16)

1. Способ организации хранения частично совпадающих больших объектов (LOB), включающий следующие шаги:
- получают по меньшей мере один большой объект (LOB) для осуществления его модификации или добавления в базу данных на запоминающее устройство;
- выполняют поиск совпадающих фрагментов полученного большого объекта с хранящимися в базе данных фрагментами больших объектов, причем находящиеся в базе данных большие объекты разбиты на фрагменты, где каждый фрагмент имеет уникальный идентификатор;
- в случае нахождения совпадающих фрагментов, разбивают полученный большой объект на совпадающие в базе данных фрагменты и на уникальные фрагменты таким образом, что уникальным фрагментом считается каждый непрерывный участок большого объекта, оставшийся после нахождения совпадающих фрагментов;
- получают идентификаторы совпадающих фрагментов больших объектов из запоминающего устройства;
- присваивают каждому уникальному фрагменту полученного большого объекта идентификатор и сохраняют в запоминающее устройство;
- сохраняют в базу данных большой объект как упорядоченную последовательность идентификаторов фрагментов, из которых он состоит.
2. Способ по п. 1, характеризующийся тем, что большой объект является двоичным (BLOB) или символьным (CLOB), или национальным символьным (NCLOB).
3. Способ по п. 1, характеризующийся тем, что большой объект является внутренним или внешним.
4. Способ по п. 1, характеризующийся тем, что осуществляют поиск совпадающих объектов посредством алгоритма Кнута-Морриса-Пратта или алгоритма шингла, или Frequent Subsequence Mining (FSM), или алгоритма CloSpan, или перцептивной хеш-функции.
5. Способ по п. 1, характеризующийся тем, что выполняют предварительную обработку полученного большого объекта посредством разбиения большого объекта на фрагменты.
6. Способ по п. 1, характеризующийся тем, что при разбиении полученного большого объекта на совпадающие в базе данных фрагменты и на уникальные фрагменты, фрагменты имеют не нулевую длину.
7. Способ по п. 1, характеризующийся тем, что идентификатор фрагментов большого объекта является целочисленным значением.
8. Способ по п. 1, характеризующийся тем, что присваивают каждому уникальному фрагменту полученного большого объекта идентификатор инкрементно.
9. Способ по п. 1, характеризующийся тем, что после поиска повторяемых, а также после сохранения уникальных фрагментов, каждый большой объект представляют как последовательность идентификаторов фрагментов.
10. Способ по п. 9, характеризующийся тем, что последовательность фрагментов хранится в теле записи.
RU2016146593A 2017-03-21 2017-03-21 Способ организации хранения частично совпадающих больших объектов RU2656721C1 (ru)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2016146593A RU2656721C1 (ru) 2017-03-21 2017-03-21 Способ организации хранения частично совпадающих больших объектов

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2016146593A RU2656721C1 (ru) 2017-03-21 2017-03-21 Способ организации хранения частично совпадающих больших объектов

Publications (1)

Publication Number Publication Date
RU2656721C1 true RU2656721C1 (ru) 2018-06-06

Family

ID=62560186

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2016146593A RU2656721C1 (ru) 2017-03-21 2017-03-21 Способ организации хранения частично совпадающих больших объектов

Country Status (1)

Country Link
RU (1) RU2656721C1 (ru)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109446202A (zh) * 2018-11-09 2019-03-08 上海达梦数据库有限公司 标识符分配方法、装置、服务器和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6144970A (en) * 1998-09-24 2000-11-07 International Business Machines Corporation Technique for inplace reorganization of a LOB table space
US20080098083A1 (en) * 2006-10-19 2008-04-24 Oracle International Corporation System and method for data de-duplication
US20110196900A1 (en) * 2010-02-09 2011-08-11 Alexandre Drobychev Storage of Data In A Distributed Storage System
RU2525743C2 (ru) * 2007-12-31 2014-08-20 Мастеркард Интернешнл Инкорпорейтед Системы и способы для передачи файлов данных, независимо от платформы

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6144970A (en) * 1998-09-24 2000-11-07 International Business Machines Corporation Technique for inplace reorganization of a LOB table space
US20080098083A1 (en) * 2006-10-19 2008-04-24 Oracle International Corporation System and method for data de-duplication
RU2525743C2 (ru) * 2007-12-31 2014-08-20 Мастеркард Интернешнл Инкорпорейтед Системы и способы для передачи файлов данных, независимо от платформы
US20110196900A1 (en) * 2010-02-09 2011-08-11 Alexandre Drobychev Storage of Data In A Distributed Storage System

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Oracle Database. SecureFiles and Large Objects Developer's Guide. 11g Release 2 (11.2), E18294-02, опубл. 31.01.2013 на 406 страницах [найдено 15.12.2017], размещено в Интернет по адресу URL:http://ksj.myds.me/api/oracle/Oracle_11g_Release2_Documentation/E11882_01/appdev.112/e18294.pdf. *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109446202A (zh) * 2018-11-09 2019-03-08 上海达梦数据库有限公司 标识符分配方法、装置、服务器和存储介质
CN109446202B (zh) * 2018-11-09 2021-08-17 上海达梦数据库有限公司 标识符分配方法、装置、服务器和存储介质

Similar Documents

Publication Publication Date Title
KR101972645B1 (ko) 클러스터링 저장 방법 및 장치
US10114908B2 (en) Hybrid table implementation by using buffer pool as permanent in-memory storage for memory-resident data
US5649181A (en) Method and apparatus for indexing database columns with bit vectors
CN107368527B (zh) 基于数据流的多属性索引方法
US10649997B2 (en) Method, system and computer program product for performing numeric searches related to biometric information, for finding a matching biometric identifier in a biometric database
US20020059281A1 (en) Method for creating an index and method for searching an index
US20040205044A1 (en) Method for storing inverted index, method for on-line updating the same and inverted index mechanism
CN108255958A (zh) 数据查询方法、装置和存储介质
US20040236743A1 (en) Database reorganization technique
US20140046928A1 (en) Query plans with parameter markers in place of object identifiers
US11221999B2 (en) Database key compression
US20050076018A1 (en) Sorting result buffer
EP3762834A1 (en) System and method for searching based on text blocks and associated search operators
Lomet Digital B-trees
US20170083537A1 (en) Mapping logical identifiers using multiple identifier spaces
CN114428776A (zh) 一种面向时序数据的索引分区管理方法和系统
CN104657513A (zh) 嵌入式系统中档案操作与快速检索方法
US20180011897A1 (en) Data processing method having structure of cache index specified to transaction in mobile environment dbms
RU2656721C1 (ru) Способ организации хранения частично совпадающих больших объектов
US20240220470A1 (en) Data storage device and storage control method based on log-structured merge tree
US8156126B2 (en) Method for the allocation of data on physical media by a file system that eliminates duplicate data
CN116414304B (zh) 基于日志结构化合并树的数据存储装置和存储控制方法
US11868331B1 (en) Systems and methods for aligning big data tables in linear time
CN114490737A (zh) 一种提高数据库深度分页查询效率的方法与终端
RU2647648C1 (ru) Способ организации хранения исторических дельт записей

Legal Events

Date Code Title Description
PD4A Correction of name of patent owner