RU2458399C2 - Кэширование в памяти совместно используемых настраиваемых данных множества арендаторов - Google Patents

Кэширование в памяти совместно используемых настраиваемых данных множества арендаторов Download PDF

Info

Publication number
RU2458399C2
RU2458399C2 RU2009136171/08A RU2009136171A RU2458399C2 RU 2458399 C2 RU2458399 C2 RU 2458399C2 RU 2009136171/08 A RU2009136171/08 A RU 2009136171/08A RU 2009136171 A RU2009136171 A RU 2009136171A RU 2458399 C2 RU2458399 C2 RU 2458399C2
Authority
RU
Russia
Prior art keywords
data
tenant
cache
requesting
record
Prior art date
Application number
RU2009136171/08A
Other languages
English (en)
Other versions
RU2009136171A (ru
Inventor
Эллиот ЛЬЮИС (US)
Эллиот ЛЬЮИС
Джей ГРЮЭЛ (US)
Джей ГРЮЭЛ
Андрей СМЕРТИН (US)
Андрей СМЕРТИН
Махеш ВИДЖАЯРАГХАВАН (US)
Махеш ВИДЖАЯРАГХАВАН
Майкл Джеймс ОТТ (US)
Майкл Джеймс ОТТ
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=39796296&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=RU2458399(C2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Майкрософт Корпорейшн filed Critical Майкрософт Корпорейшн
Publication of RU2009136171A publication Critical patent/RU2009136171A/ru
Application granted granted Critical
Publication of RU2458399C2 publication Critical patent/RU2458399C2/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/40Business processes related to the transportation industry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Databases & Information Systems (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Game Theory and Decision Science (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Human Resources & Organizations (AREA)
  • Primary Health Care (AREA)
  • Tourism & Hospitality (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Изобретение относится к области совместного использования данных множества арендаторов. Техническим результатом является оптимизация памяти и производительности в среде совместного использования данных множества арендаторов. В среде совместного использования данных множества арендаторов с совместно используемыми настраиваемыми данными атрибуты назначают запрошенным данным и сохраняют в кэш-памяти вместе с запрошенными данными. Для ненастроенных данных, обозначенных как системные данные, одну копию сохраняют в кэш-памяти для использования множеством арендаторов, позволяя оптимизацию памяти и производительности для каждой операции запроса/выборки данных. Атрибут "сигнальная метка удаления" может быть назначен несуществующим данным в кэш-памяти, давая возможность уведомления запрашивающего арендатора (арендаторов) без необходимости осуществлять доступ к памяти данных арендатора каждый раз, когда принимают запрос несуществующих данных. 3 н. и 17 з.п. ф-лы, 7 ил.

Description

Уровень техники
Решения управления взаимоотношением с потребителем (CRM) предоставляют инструменты и функциональные возможности, необходимые для того, чтобы создавать и поддерживать понятную картину потребителей с первого контакта через покупку и продажи по почте. Для комплексных организаций система CRM может предоставлять признаки и функциональные возможности для того, чтобы помочь улучшить способ, с помощью которого организации продаж и маркетинга намечают новых потребителей, управляют кампаниями маркетинга и проводят акции продаж. Системы CRM могут включать в себя множество компонентов, аппаратное обеспечение и программное обеспечение, используемые отдельно или совместно используемым способом пользователями, внутренними или внешними к организации.
Таким образом, типичная система CRM размещает множество организаций (“арендаторов”). Каждому арендатору может быть дана возможность настраивать свою систему CRM с помощью добавления/удаления/модификации объектов, атрибутов, соотношений, форм, видов, дополнительных модулей расширяемости уровня кода и тому подобных. Для того чтобы различать настройки, осуществленные разными арендаторами, настройки могут быть разделены на отдельные таблицы, которые существуют либо в одной базе данных, либо во множестве баз данных. Несмотря на разделение данных, может быть желательным совместно использовать как можно больше ненастроенной, но настраиваемой информации во время выполнения, чтобы минимизировать требования к памяти и улучшить производительность.
Сущность изобретения
Эта сущность изобретения предоставлена для того, чтобы представить выбор концепций в упрощенной форме, которые дополнительно описаны ниже в подробном описании. Эта сущность изобретения не предназначена для того, чтобы идентифицировать ключевые признаки или существенные признаки заявленного предмета изобретения, а также не предназначена в качестве помощи при определении рамок объема заявленного предмета изобретения.
Варианты осуществления адресованы кэшированию совместно используемых настраиваемых данных для оптимизации памяти и производительности в среде совместного использования данных множества арендаторов. Атрибуты, указывающие статус настройки данных арендатора, сохраняют в кэш-памяти, давая возможность системе предоставлять данные арендаторам из отдельных памятей данных арендаторов, в то же время кэшируя запрошенные данные, и не имея необходимости доступа к отдельным памятям данных, если запрошенные данные уже кэшированы. Одна копия “системного уровня” или ненастроенных данных может быть сохранена для множества арендаторов, экономя память и системные ресурсы в каждой операции извлечения.
Эти и другие признаки и преимущества будут понятными из чтения следующего подробного описания и обзора связанных чертежей. Следует понимать, что как предыдущее общее описание, так и следующее подробное описание являются только объяснительными, а не ограничительными для аспектов, которые заявлены.
Краткое описание чертежей
Фиг.1 иллюстрирует иллюстративную архитектуру системы CRM,
фиг.2 иллюстрирует иллюстративную таблицу атрибутов для модели кэширования совместно используемых настраиваемых данных множества арендаторов,
фиг.3 иллюстрирует иллюстративные сценарии обработки запроса арендатора в системе, осуществляющей кэширование совместно используемых настраиваемых данных множества арендаторов,
фиг.4 - иллюстративная сетевая среда, в которой могут быть осуществлены варианты осуществления,
фиг.5 - блок-схема иллюстративной вычислительной операционной среды, в которой могут быть осуществлены варианты осуществления,
фиг.6 иллюстрирует логическую блок-схему последовательности операций для процесса кэширования совместно используемых настраиваемых данных множества арендаторов,
фиг.7 иллюстрирует логическую блок-схему последовательности операций для части процесса кэширования совместно используемых настраиваемых данных множества арендаторов фиг.6.
Подробное описание изобретения
Как вкратце описано выше, дают возможность совместного использования ненастроенных, но настраиваемых данных в памяти, которые сохраняют во множестве таблиц и даже баз данных с возможностью отслеживания того, какие данные в отдельной таблице настроены. В следующем подробном описании ссылки сделаны на сопровождающие чертежи, которые являются частью описания и на которых изображены в качестве иллюстраций конкретные варианты осуществления или примеры. Эти аспекты могут быть объединены, другие аспекты могут быть использованы, и структурные изменения могут быть сделаны, не выходя за рамки сущности или объема настоящего раскрытия. Таким образом, следующее подробное описание не должно быть взято в ограничивающем смысле, и рамки объема настоящего изобретения определены с помощью прилагаемой формулы изобретения и ее эквивалентов.
Несмотря на то что варианты осуществления будут описаны в общем контексте программных модулей, которые выполняются совместно с прикладной программой, которая выполняется в операционной системе персонального компьютера, специалисты в данной области техники поймут, что аспекты также могут быть осуществлены в комбинации с другими программными модулями.
Обычно программные модули включают в себя подпрограммы, программы, компоненты, структуры данных или другие типы структур, которые выполняют конкретные задачи или осуществляют конкретные абстрактные типы данных. Кроме того, специалисты в данной области техники поймут, что варианты осуществления могут быть осуществлены с помощью других конфигураций компьютерных систем, включая карманные устройства, многопроцессорные системы, электронные устройства, основанные на микропроцессоре, или программируемые электронные устройства пользователей, миникомпьютеры, универсальные компьютеры и тому подобные. Варианты осуществления также могут быть осуществлены в распределенных вычислительных средах, в которых задачи выполняют с помощью дистанционных обрабатывающих устройств, которые связаны через сеть связи. В распределенной компьютерной среде программные модули могут быть расположены как в локальных, так и в дистанционных запоминающих устройствах памяти.
Варианты осуществления могут быть осуществлены как компьютерный процесс (способ), вычислительная система или как изделие производства, такое как компьютерный программный продукт или среда, доступная для чтения с помощью компьютера. Компьютерный программный продукт может быть средой компьютерной памяти, доступной для чтения с помощью компьютерной системы и кодирующей компьютерную программу инструкций, предназначенных для выполнения компьютерного процесса. Компьютерный программный продукт также может быть распространяемым сигналом в канале связи, доступным для чтения с помощью компьютерной системы и кодирующим компьютерную программу инструкций, предназначенных для выполнения компьютерного процесса.
Ссылаясь на фиг.1, проиллюстрирована иллюстративная архитектура системы 100 CRM. Система 100 CRM может быть осуществлена с помощью четырех физических уровней в архитектурном “комплекте” CRM. Уровни включают в себя уровень 102 представления, предназначенный для представления данных и интерфейсов пользователя пользователям (например, представление, основанное на web), и прикладной уровень 104, предназначенный для взаимодействия с приложениями, такими как приложение электронной почты, приложение планирования, приложение ведения календаря и тому подобные. Уровни дополнительно включают в себя платформу 106 CRM, которая оперирует логикой коммерческой деятельности и сферы деятельности, и уровень 108 доступа к данным, предназначенный для управления взаимодействием с сервером (серверами) 114 базы данных.
Один или более уровней могут быть объединены, или каждый уровень может содержать отдельные подуровни, такие как уровень управления данными и уровень хранения данных, которые существуют в отдельном месте процесса для доступа к данным. Сервер (серверы) 112 каталога может предоставлять услугу каталога для идентификации принципов защиты, ролей и групп в продукте. Сервер (серверы) 116 приложений может предоставлять дополнительные услуги, такие как услуги, описанные выше.
Фиг.2 иллюстрирует иллюстративную таблицу 200 атрибутов для модели кэширования совместно используемых настраиваемых данных множества арендаторов. Каждый тип настраиваемых данных в системе CRM (например, объекты, атрибуты или соотношения) имеет свои собственные характеристики, и, вследствие этого, их сохраняют в их собственной таблице (например, таблице объектов, таблице атрибутов или таблице соотношений). В системе CRM множества арендаторов каждый арендатор может иметь свою собственную таблицу для каждого типа настраиваемых данных. Например, каждый арендатор может иметь таблицу объектов, таблицу атрибутов и таблицу соотношений.
Система CRM, в соответствии с вариантами осуществления, также может предоставлять первоначальное множество настраиваемых данных (“системных” или “ненастроенных” данных), которое является множеством, с которого может начинать каждый арендатор в системе CRM после инсталляции и конфигурирования. Поскольку к данным настройки часто осуществляют доступ, они могут быть кэшированы в оперативной памяти эффективным способом для каждой организации. Большая часть этих данных может оставаться одной и той же среди множества арендаторов. Вследствие этого, варианты осуществления предоставляют подход для того, чтобы совместно использовать системные данные, в то же время поддерживая частную копию данных, которая настроена с помощью конкретного арендатора.
В системе CRM кэширование в оперативной памяти может применяться к:
настройкам метаданных (объектов, атрибутов, соотношений и т.д.),
настройкам интерфейса пользователя (форм, видов и т.д.),
настройкам набора инструментальных средств разработки программ (SDK) (запросов/ответов SDK и т.д.),
настойкам уровня кода (дополнительных модулей расширяемости и т.д.).
В соответствии с некоторыми вариантами осуществления совместно используемые и настраиваемые данные множества арендаторов могут быть обработаны с помощью отслеживания “уровня настройки” строки данных. Эта информация определяет, является ли строка совместно используемой строкой, новой строкой от потребителя, совместно используемой строкой, которая настроена, или совместно используемой строкой, которая удалена. Затем эту информацию используют для того, чтобы определять, какая информация может быть совместно используемой или нет. Таблица 200 на фиг.2 иллюстрирует эту концепцию “уровня настройки”.
Таблица 200 включает в себя идентификатор 221 атрибута в первой колонке, имя 222 для атрибута во второй колонке, длину 223 данных в третьей колонке. Идентификатор 224 объекта и два атрибута, обнуляемое 225 и настраиваемое 226 поле находятся в следующих колонках. Последняя колонка включает в себя распечатку атрибута 227 уровня настройки. “Уровень настройки”, равный 0, означает “системные” (данные системного уровня), 1 означает “специальные” (данные являются новыми для конкретного арендатора или являются модификацией системных данных), и 2 означает “удаленные”.
В иллюстративной таблице 200 атрибут с именем “доход” удален (оригинал указан с помощью строки 231, обновленная версия перечислена с помощью строки 232), атрибут с именем “имя” настроен (оригинал указан с помощью строки 233, обновленная версия перечислена с помощью строки 234), и атрибут с именем “новое_поле” создан с помощью арендатора (как перечислен в строке 235). Данные с “уровнем настройки”, равным 0, являются данными, которые не настроены и, вследствие этого, являются “совместно используемыми” среди арендаторов.
Когда система CDM должна извлечь часть настроенных данных из кэша, кэш сначала определяет, извлечена ли уже часть данных из базы данных для конкретного арендатора. Если данные ранее не извлечены, кэш извлекает часть данных. Затем кэш просматривает “уровень настройки” части извлеченных данных. Если “уровень настройки” равен 0, кэш проверяет, чтобы определить, находятся ли уже системные данные в кэше, и если нет, добавляет их в кэш. Затем кэш вставляет “системную сигнальную метку”, которая указывает в кэш, что если данные запросят опять для этого арендатора, то он вместо этого должен извлечь системные данные из кэш-памяти. Если “уровень настройки” части данных равен 1, кэш вставляет данные в кэш-память для конкретного арендатора. Если “уровень настройки” части данных равен 2, данные не добавляют в кэш. Вместо этого добавляют “сигнальную метку удаления”, которая указывает в кэш, что если эту часть данных запросят опять для этого арендатора, кэш должен возвратить уведомление о том, что данные не существуют.
Фиг.3 иллюстрирует иллюстративные сценарии обработки запроса клиента в системе, осуществляющей кэширование совместно используемых настраиваемых данных множества арендаторов. Иллюстративные сценарии таблицы 370 изображены совместно с иллюстративной системой 300 кэширования совместно используемых данных.
Работа, в соответствии с вариантами осуществления, начинается с запроса данных (354), принимаемых в системе CRM от клиента 342, связанного с арендатором. Клиент может быть пользователем (внутренним или внешним) системы CRM, осуществляющим доступ к системе через устройство клиента или приложение. Как упомянуто ранее, каждый арендатор может быть связан с настраиваемыми совместно используемыми данными, часть которых может быть ненастроенной (системный уровень), а другая часть - настроенной с помощью конкретного арендатора. Кроме того, часть данных для арендатора может быть удалена в системе. Система CRM может включать в себя отдельные базы данных для каждого арендатора, такие как база 346 данных (А) для арендатора А, база 348 данных (В) для арендатора В и база 350 данных (С) для арендатора С. Система CRM также может включать в себя единую базу данных с частями базы данных, назначенных отдельным арендаторам.
Когда принимают запрос в кэше 344 системы CRM, кэш 344 определяет, были ли запрошенные данные ранее извлечены из базы данных запрашивающего арендатора, и если были извлечены, что является атрибутом уровня настойки для запрошенных данных. Кэш 344 определяет, извлечены ли уже данные, с помощью сверки с кэш-памятью 362 (как указано с помощью ссылочного номера 360).
Если данные ранее не извлечены, кэш 344 осуществляет доступ к соответственной базе данных и извлекает данные или определяет, что данные больше не существуют в базе данных (например, связи 356, 358). Если данные были ранее извлечены и сохранены в кэше как атрибут “системная сигнальная метка” для этого арендатора, тогда этот арендатор требует данные системного уровня (ненастроенные), таким образом, кэш извлечет данные системного уровня (ненастроенные) из кэш-памяти и предоставит их запрашивающему арендатору. Если данные извлечены в первый раз и уровень настройки данных указывает, что данные для этого арендатора являются данными системного уровня (ненастроенными), кэш 344 добавит данные системного уровня в кэш-память 362 при условии, что данные уже не сохранены в ней. Кроме того, атрибут “системная сигнальная метка” вставляют в кэш-память 362 для этого арендатора. Атрибут “системная сигнальная метка” дает возможность кэшу предоставлять данные системного уровня (ненастроенные) любому клиенту, запрашивающему эти конкретные данные, без необходимости сохранять множество их копий для каждого арендатора. Если данные являются настроенными, кэш сохраняет эти специальные данные непосредственно для этого арендатора, таким образом давая возможность кэшу распознавать настроенные данные и предоставлять их запрашивающему арендатору. Кроме того, если запрошенные данные больше не существуют в базе данных арендатора, атрибут “сигнальная метка удаления” может быть вставлен в кэш-память, чтобы указывать запрашивающему клиенту в будущих запросах, что эти данные не существуют для этого арендатора, без необходимости проверки сначала базы данных арендатора.
Кроме того, система может распознавать и назначать атрибуты для конкретного типа настройки (в случае множества арендаторов, использующих один и тот же тип настройки). Затем кэш может сохранять в своей локальной памяти одну копию каждых настроенных данных и предоставлять ее запрашивающим арендаторам на основании атрибута типа настройки.
Теперь, ссылаясь на иллюстративные сценарии таблицы 370, в соответствии с первым сценарием в первой строке, арендатор А запрашивает данные с помощью ключа 1. Кэш 344 осуществляет доступ к кэш-памяти (362) и обнаруживает, что в кэше нет объекта для этого арендатора для элемента с ключом 1. Таким образом, кэш 344 осуществляет доступ (356) к базе 346 данных (А), извлекает данные, уведомляет, что уровень настройки данных равен 1 (настроенные), и сохраняет данные непосредственно в кэш-памяти 362 для запрашивающего арендатора, а затем предоставляет извлеченные данные запрашивающему арендатору А.
В соответствии с вторым сценарием во второй строке, арендатор А запрашивает другую часть данных с помощью ключа 2. Данные были ранее извлечены, и их обнаруживают в кэш-памяти 362, однако данные в кэше являются “системной сигнальной меткой” для этого арендатора. Таким образом, кэш извлекает системные (ненастроенные) данные из кэш-памяти и возвращает их арендатору А без необходимости извлекать их из базы 346 данных (А).
В соответствии с третьим сценарием во второй строке, арендатор А запрашивает другую часть данных с помощью ключа 3. Данные ранее удалены из базы 346 данных (А), и указание об этом сохраняют в кэш-памяти 362 с использованием атрибута “сигнальная метка удаления”. Таким образом, кэш 344 предоставляет уведомление арендатору А о том, что запрошенные данные больше не существуют, без необходимости сверки с базой 346 данных (А).
В соответствии с четвертым сценарием в четвертой строке, арендатор В запрашивает данные с помощью ключа 3. Эти данные не извлечены арендатором В, следовательно, кэш 344 осуществляет доступ (358) к базе 348 данных (В), извлекает и сохраняет данные в кэш-памяти 362, поскольку он видит, что уровень настройки данных в базе 348 данных (В) равен 1, и следовательно, арендатор В настроил данные, а затем предоставляет их запрашивающему арендатору В.
В соответствии с пятым сценарием в пятой строке, арендатор С запрашивает данные с помощью ключа 2. Арендатор С запросил эти данные ранее, и кэш извлекает данные из базы 350 данных (С), уведомляет, что уровень настройки был равен 0 (для системных данных), и вставляет системную сигнальную метку для этого элемента. Ненастроенные данные ранее были извлечены для арендатора А, и их обнаруживают в кэш-памяти 362. Поскольку данные являются данными системного уровня, их совместно используют с помощью всех арендаторов, и поскольку кэш-память имеет “системную сигнальную метку” для арендатора С для данных с ключом 2, системные данные, извлеченные арендатором А, могут быть предоставлены арендатору С без необходимости извлекать их из базы 350 данных (С).
Система и сценарии кэширования совместно используемых настраиваемых данных на фиг.3 являются иллюстративными с целью иллюстрации. Система, предназначенная для кэширования совместно используемых настраиваемых данных, может быть осуществлена с использованием дополнительных или меньшего числа компонентов с использованием принципов, описанных в настоящей заявке. Другие сценарии кэширования и предоставления настроенных данных арендаторам также возможны в системе, подобной системе, описанной в настоящей заявке.
Фиг.4 является иллюстративной сетевой средой, в которой могут быть осуществлены варианты осуществления. Системы/приложения CRM и кэширование совместно используемых настраиваемых данных могут быть осуществлены локально в одном вычислительном устройстве или распределенным способом через некоторое число физических и виртуальных клиентов и серверов. Они также могут быть осуществлены в некластерных системах или кластерных системах, использующих некоторое число узлов, взаимодействующих через одну или более сетей (например, сеть (сети) 490).
Такая система может содержать любую топологию серверов, клиентов, провайдеров услуг Internet и среды связи. Также система может иметь статическую или динамическую топологию. Понятие “клиент” может относиться к клиентскому приложению или клиентскому устройству. Несмотря на то что сетевая система, осуществляющая кэширование совместно используемых настраиваемых данных, может включать в себя значительно больше компонентов, необходимые компоненты обсуждены в связи с этой фигурой.
Приложения, связанные с системой CRM, могут быть осуществлены в отдельных клиентских устройствах 481-483 или могут быть выполнены в сервере 492, и доступ к ним может быть осуществлен из любого из клиентских устройств (или приложений). Подобным образом услуга кэширования совместно используемых настраиваемых данных, связанная с системой CRM, может быть выполнена локально в одном из клиентских устройств или, более типично, в одном или более серверов (например, сервере 492), и доступ к ней может быть осуществлен с помощью клиентского устройства (или приложений).
Памяти данных, связанные с кэшированием совместно используемых настраиваемых данных в системе CRM, могут быть осуществлены в одной памяти данных, такой как память 496 данных, или могут быть распределены через некоторое число памятей данных, связанных с отдельными клиентскими устройствам, серверами и тому подобными. Специализированные серверы баз данных (например, сервер 494 базы данных) могут быть использованы для того, чтобы координировать извлечение и сохранение данных в одной или более таких памятей данных.
Сеть (сети) 490 может включать в себя защищенную сеть, такую как сеть предприятия, незащищенную сеть, такую как беспроводная открытая сеть, или Internet. Сеть (сети) 490 обеспечивает связь между узлами, описанными выше. В качестве примера, а не ограничения, сеть (сети) 490 может включать в себя проводную среду, такую как проводная сеть или прямое проводное соединение, и беспроводную среду, такую как акустическая, RF, инфракрасная и другие беспроводные среды.
Многие другие конфигурации вычислительных устройств, приложений, источников данных, систем распределения данных могут быть использованы для того, чтобы осуществлять кэширование совместно используемых настраиваемых данных множества арендаторов. Кроме того, сетевые среды, обсужденные на фиг.4, приведены только с целью иллюстрации. Варианты осуществления не ограничены иллюстративными приложениями, модулями или процессами.
Фиг.5 и связанное обсуждение предназначены для того, чтобы предоставить краткое общее описание подходящей вычислительной среды, в которой могут быть осуществлены варианты осуществления. Со ссылкой на фиг.5 проиллюстрирована блок-схема иллюстративной вычислительной операционной среды, такой как вычислительное устройство 500. В базовой конфигурации вычислительное устройство 500 может быть сервером или клиентским устройством, обеспечивающим кэширование совместно используемых настраиваемых данных совместно с услугой CRM, и обычно включает в себя, по меньшей мере, одно устройство 502 обработки и системную память 504. Вычислительное устройство 500 также может включать в себя множество устройств обработки, которые взаимодействуют с программами выполнения. В зависимости от точной конфигурации и типа вычислительного устройства системная память 504 может быть энергозависимой (такой как RAM), энергонезависимой (такой как ROM, флэш-память и т.д.) или некоторой их комбинацией. Системная память 504 обычно включает в себя операционную систему 505, подходящую для управления работой сетевого персонального компьютера, такую как операционная система WINDOWS® от MICROSOFT CORPORATION, Редмонд, Вашингтон. Системная память 504 также может включать в себя одно или более приложений программного обеспечения, такие как программные модули 506, приложение 522 CRM и модуль 524 кэширования.
Приложение 522 CRM может быть отдельным приложением или интегральным модулем услуги CRM, который предоставляет услуги управления взаимоотношением с потребителями в клиентские приложения, связанные с вычислительным устройством 500. Модуль 524 кэширования может предоставлять услуги, связанные с определением атрибута уровня настройки запрошенных данных, кэшированием извлеченных данных и предоставлением запрошенных данных или уведомлением о данных в приложение CRM, как описано ранее. Эта базовая конфигурация проиллюстрирована на фиг.5 с помощью компонентов, которые находятся внутри пунктирной линии 508.
Вычислительное устройство 500 может иметь дополнительные признаки или функциональные возможности. Например, вычислительное устройство 500 также может включать в себя дополнительные устройства памяти (сменные и/или несменные), такие как, например, магнитные диски, оптические диски или лента. Такая дополнительная память проиллюстрирована на фиг.5 с помощью сменной памяти 509 и несменной памяти 510. Среда компьютерной памяти может включать в себя энергозависимую и энергонезависимую сменную и несменную среду, осуществленную любым способом или с помощью любой технологии для сохранения информации, например инструкций, доступных для чтения с помощью компьютера, структур данных, программных модулей или других данных. Системная память 504, сменная память 509 и несменная память 510 все являются примерами среды компьютерной памяти. Носители хранения включает в себя RAM, ROM, EEPROM, флэш-память или другую технологию памяти, CD-ROM, цифровые универсальные диски (DVD) или другую оптическую память, магнитные кассеты, магнитную ленту, магнитную дисковую память или другие магнитные устройства памяти, но не ограничены этим, или любой другой носитель, который может быть использован для того, чтобы сохранять требуемую информацию, и доступ к которому может быть осуществлен с помощью вычислительного устройства 500. Любой такой носитель хранения может быть частью устройства 500. Вычислительное устройство 500 также может иметь устройство (устройства) 512 ввода, такое как клавиатура, мышь, перо, устройство ввода речи, сенсорное устройство ввода и т.д. Также может быть включено устройство (устройства) 514 вывода, такое как дисплей, громкоговорители, принтер и т.д. Эти устройства широко известны в данной области техники и не требуют подробного обсуждения.
Вычислительное устройство 500 также может содержать соединения 516 связи, которые позволяют устройству взаимодействовать с другими вычислительными устройствами 518 таким способом, как через беспроводную сеть в распределенной вычислительной среде, например внутреннюю сеть или Internet. Другие вычислительные устройства 518 могут включать в себя сервер (серверы), который выполняет приложения, связанные с доступом к данным и обслуживанием каталога. Соединение 516 связи является одним примером среды связи. Среда связи обычно может быть осуществлена с помощью инструкций, доступных для чтения с помощью компьютера, структур данных, программных модулей или других данных в модулированном сигнале данных, таком как сигнал несущей или другой транспортный механизм, и включает в себя любую среду доставки информации. Понятие “модулированный сигнал данных” означает сигнал, который имеет одну или более своих характеристик, установленных или измененных таким образом, чтобы кодировать информацию в сигнале. В качестве примера, а не ограничения, среда связи включает в себя проводную среду, такую как проводная сеть или прямое проводное соединение, беспроводную среду, такую как акустическая, RF, инфракрасная и другие беспроводные среды. Понятие носителя, доступного для чтения с помощью компьютера, как использовано в настоящей заявке, включает в себя как носители хранения, так и среду связи.
Заявленный предмет изобретения также включает в себя способы. Эти способы могут быть осуществлены любым числом способов, включая структуры, описанные в этом документе. Одним таким способом являются машинные операции устройств типа, описанного в этом документе.
Другой выборочный способ предназначен для одной или более отдельных операций способов, выполняемых совместно с одним или более операторами-пользователями, выполняющими некоторые операции. Нет необходимости, чтобы эти операторы-пользователи были связаны друг с другом, но каждый может быть связан только с машиной, которая выполняет часть программ.
Фиг.6 иллюстрирует логическую блок-схему последовательности операций для процесса кэширования совместно используемых настраиваемых данных множества арендаторов. Процесс 600 может быть осуществлен как часть услуги CRM.
Процесс 600 начинается с операции 602, в которой ключ данных и ID арендатора принимают с помощью кэша системы CRM, указывающего запрос данных от арендатора. Обработка переходит от операции 602 к операции 604 принятия решения.
В операции 604 принятия решения выполняют определение, находится ли элемент, связанный с запрошенными данными, в кэше. Элемент может включать в себя список атрибутов для запрошенных данных, определяющий данные, или он может быть “системной сигнальной меткой” или “сигнальной меткой удаления”, указывающими, что элемент выбран для этого арендатора, но либо эквивалентен совместно используемой версии системы, уже находящейся в кэше, либо данные удалены для этого элемента. Если элемент не существует в кэше, обработка переходит к операции 720 процесса 700 на фиг.7.
Если в операции 604 принятия решения элемент обнаруживают в кэше, обработка переходит к операции 606, в которой элемент извлекают из кэш-памяти. Обработка переходит к операции 608 принятия решения от операции 606.
В операции 608 принятия решения выполняют определение, является ли кэшированный элемент “системной сигнальной меткой”. Если является, обработка переходит к операции 610, в которой системные данные, указанные с помощью элемента, извлекают из кэш-памяти. Обработка переходит от операции 610 к операции 612, в которой системные данные предоставляют запрашивающему арендатору. После операции 612 обработка переходит к процессу вызова дополнительных действий.
Если определение в операции 608 принятия решения является отрицательным, обработка переходит к операции 614 принятия решения, в которой выполняют определение, является ли элемент “сигнальной меткой удаления”. Если это справедливо, обработка переходит к операции 616, в которой уведомление, указывающее несуществующие данные, предоставляют запрашивающему арендатору. После операции 616 обработка переходит к процессу вызова дополнительных действий.
Если определение в операции 614 принятия решения является отрицательным, это указывает, что данные, извлеченные из кэш-памяти, представляют настройки, специфические для арендатора с данным ID. Обработка переходит к операции 618, в которой извлеченные данные предоставляют запрашивающему арендатору. После операции 618 обработка переходит к процессу вызова дополнительных действий.
Фиг.7 иллюстрирует логическую блок-схему для процесса 700, который является частью процесса кэширования совместно используемых настраиваемых данных множества арендаторов фиг.6.
Процесс 700 начинается с операции 720 после отрицательного определения в операции 604 принятия решения процесса 600. В операции 720 запрошенные данные извлекают из базы данных, связанной с запрашивающим арендатором. Обработка переходит от операции 720 к операции 722 принятия решения.
В операции 722 принятия решения выполняют определение, равен ли уровень настройки для запрошенных данных 0, указывающему системный уровень, ненастроенные данные. Если уровень настройки равен 0, обработка переходит в точку 724 принятия решения.
В точке 724 принятия решения кэш определяет, содержит ли уже кэш-память копию системных (ненастроенных) данных для элемента с данным ключом. Если системные данные уже не существуют в кэш-памяти, обработка переходит к операции 725.
В операции 725 данные, извлеченные для этого арендатора, вставляют в кэш-память как системные (ненастроенные) данные, где они могут быть извлечены для этого или других арендаторов, требующих системных (ненастроенных) данных в будущем. Обработка переходит от операции 725 к операции 726.
Если определение в операции 724 принятия решения является положительным, это означает, что системные (ненастроенные) данные для данного ключа уже существуют в кэш-памяти. Обработка переходит к операции 726. В операции 726 “системную сигнальную метку” вставляют в кэш-память для извлеченных данных и запрашивающего арендатора. Обработка переходит к операции 728 от операции 726.
В операции 728 системные данные предоставляют запрашивающему арендатору. После операции 728 обработка переходит к процессу вызова дополнительных действий.
Если определение в операции 722 принятия решения является отрицательным, обработка переходит к операции 730 принятия решения, в которой выполняют определение, равен ли уровень настройки для запрошенных данных 2, указывающей несуществующие данные. Если уровень настройки равен 2, обработка переходит к операции 736.
В операции 736 “сигнальную метку удаления” вставляют в кэш-память для извлеченных данных и запрашивающего арендатора, указывающую, что данные удалены в базе данных арендатора. Обработка переходит к операции 738 от операции 736.
В операции 738 уведомление о том, что данные больше не существуют, предоставляют запрашивающему арендатору. После операции 738 обработка переходит к процессу вызова дополнительных действий.
Если определение в операции 730 принятия решения является отрицательным, обработка переходит к операции 732, в которой данные с данным ключом и ID арендатора вставляют в кэш-память, поскольку известно, что они являются данными, которые являются специальными для запрашивающего арендатора. Обработка переходит к операции 734 от операции 732.
В операции 734 извлеченные настроенные данные предоставляют запрашивающему абоненту. После операции 734 обработка переходит к процессу вызова дополнительных действий.
Операции, включенные в процессы 600 и 700, предоставлены только с целью иллюстрации. Кэширование совместно используемых настраиваемых данных множества арендаторов может быть осуществлено с помощью подобных процессов с меньшим числом этапов или дополнительными этапами, а также в разной последовательности операций с использованием принципов, описанных в настоящей заявке.
Вышеприведенная спецификация, примеры и данные предоставляют полное описание изготовления и использования состава вариантов осуществления. Несмотря на то что предмет изобретения описан языком, специфичным для структурных признаков и/или методологических действий, следует понимать, что предмет изобретения, определенный в прилагаемой формуле изобретения, не обязательно ограничен специфическими признаками или действиями, описанными выше. Вместо этого специфические признаки и действия, описанные выше, раскрыты в качестве иллюстративных форм осуществления формулы изобретения и ее эквивалентов.

Claims (20)

1. Способ, выполняемый, по меньшей мере, частично в вычислительном устройстве, предназначенный для обработки настраиваемых данных в среде множества арендаторов, причем способ содержит этапы, на которых
принимают запрос данных от арендатора (602),
определяют, сохранен ли объект, связанный с запрошенными данными, в кэш-памяти (604),
если объект сохранен и является сигнальной меткой удаления, предоставляют уведомление о несуществующих данных запрашивающему арендатору (616),
если объект сохранен и является системной сигнальной меткой, извлекают запрошенные данные из кэш-памяти и предоставляют данные запрашивающему арендатору (610, 612), и,
если объект сохранен и является запрошенными данными, которые настроены для арендатора, предоставляют настроенные запрошенные данные запрашивающему арендатору (618).
2. Способ по п.1, дополнительно содержащий этапы, на которых,
если объект, связанный с запрошенными данными, не сохранен в кэш-памяти, определяют, существуют ли данные в памяти данных, связанной с арендатором,
если данные не существуют в памяти данных, связанной с арендатором, сохраняют объект "сигнальная метка удаления" в кэш-памяти и предоставляют уведомление о несуществующих данных запрашивающему арендатору (736, 738),
если данные существуют в памяти данных, связанной с арендатором, и являются настроенными данными для арендатора, сохраняют настроенные данные в кэш-памяти и предоставляют настроенные данные запрашивающему арендатору (732, 734) и,
если данные существуют в памяти данных, связанной с арендатором, и являются данными системного уровня, сохраняют системную сигнальную метку и данные системного уровня в кэш-памяти и предоставляют настроенные данные любому запрашивающему арендатору (726, 728).
3. Способ по п.2, в котором только одну копию извлеченных данных системного уровня сохраняют в кэш-памяти (344) для предоставления любому запрашивающему арендатору.
4. Способ по п.1, в котором настроенные данные предоставляют запрашивающему арендатору на основании ключа данных и идентификатора арендатора, связанных с запросом (370).
5. Способ по п.1, в котором данные, настроенные арендатором, являются доступными только этому арендатору (370).
6. Способ по п.1, дополнительно содержащий этап, на котором
обеспечивают возможность арендатору осуществить доступ к данным, настроенным другим арендатором.
7. Способ по п.1, в котором настраиваемые данные (200) включают в себя, по меньшей мере, одно из множества: метаданные, форма интерфейса пользователя, вид интерфейса пользователя, дополнительный модуль расширяемости и параметр связи.
8. Способ по п.1, в котором статус настройки данных сохраняют как атрибут (227) уровня настройки.
9. Система, предназначенная для обработки настраиваемых данных в среде делового приложения множества арендаторов, содержащая
кэш-память (344),
процессор, соединенный с памятью (502), причем процессор сконфигурирован с возможностью выполнения программных модулей, включающих в себя
модуль кэширования, сконфигурированный с возможностью (524)
определения, сохранен ли объект, связанный с запрошенной записью, в кэш-памяти,
предоставления уведомления о несуществующей записи запрашивающему арендатору в ответ на определение, что объект сохранен и является сигнальной меткой удаления,
извлечения запрошенной записи из кэш-памяти и предоставления запрашивающему арендатору в ответ на определение, что объект сохранен и является системной сигнальной меткой, причем единственную копию записи сохраняют в кэш-памяти для запрашивающего арендатора, и
предоставления настроенной запрошенной записи запрашивающему арендатору в ответ на определение, что объект сохранен и является запрошенной записью, настроенной для арендатора.
10. Система по п.9, в которой модуль (524) кэширования дополнительно сконфигурирован с возможностью
определения, существует ли запись в памяти данных, связанной с арендатором, в ответ на определение, что объект, связанный с записью, не существует в кэш-памяти,
сохранения объекта "сигнальная метка удаления" в кэш-памяти и предоставления уведомления о несуществующей записи запрашивающему арендатору в ответ на определение, что запись не существует в памяти данных, связанной с арендатором,
сохранения настроенной записи в кэш-памяти и предоставления настроенных данных запрашивающему арендатору в ответ на определение, что запись существует в памяти данных, связанной с арендатором, и является настроенной записью для арендатора, и
сохранения системной сигнальной метки и записи системного уровня в кэш-памяти и предоставления настроенной записи любому запрашивающему арендатору в ответ на определение, что запись существует в памяти данных, связанной с арендатором, и является записью системного уровня.
11. Система по п.10, в которой модуль (524) кэширования дополнительно сконфигурирован с возможностью
сохранения атрибута уровня настройки, указывающего статус настройки извлеченной записи, в кэш-памяти как часть объекта, связанного с записью.
12. Система по п.10, в которой атрибут (227) уровня настройки сохраняют в таблице атрибутов, связанной с запрошенной записью.
13. Система по п.9, в которой процессор (502) дополнительно сконфигурирован с возможностью выполнения модуля (522) делового приложения, связанного с системой управления взаимоотношением с потребителем (CRM), предназначенной для взаимодействия с запрашивающим арендатором.
14. Система по п.9, в которой память (346, 348, 350) данных, связанная с запрашивающим арендатором, является одной из следующего: отдельной базой данных, назначенной одному арендатору, и частью базы данных, назначенной множеству арендаторов.
15. Система по п.9, в которой модуль (524) кэширования дополнительно сконфигурирован с возможностью предоставления возможности арендатору разрешать совместное использование настроенной записи с другими арендаторами на основании идентификатора записи и идентификатора арендатора для каждого арендатора.
16. Система по п.9, в которой модуль (524) кэширования дополнительно сконфигурирован с возможностью обновления объекта, связанного с запрошенными данными, в кэш-памяти на основании, по меньшей мере, одного из следующего: истечения периода времени, запроса арендатора, уведомления об изменении из памяти данных, связанной с арендатором.
17. Носитель хранения, доступный для чтения с помощью компьютера, с инструкциями, сохраненными на нем, предназначенными для обработки настраиваемых данных в среде делового приложения множества арендаторов, причем инструкции содержат
определение, сохранен ли объект, связанный с запрошенными данными, в кэш-памяти, в ответ на прием запроса данных от арендатора (602),
если объект сохранен и является сигнальной меткой удаления, предоставление уведомления о несуществующих данных запрашивающему арендатору (616),
если объект сохранен и является системной сигнальной меткой, обеспечение доступности запрошенных данных множеству запрашивающих арендаторов без извлечения данных из памяти данных арендатора для каждого запроса (610, 612) и,
если объект сохранен и является запрошенными данными, которые настроены для арендатора, обеспечение доступности настроенных данных только запрашивающему арендатору (618).
18. Носитель хранения, доступный для чтения с помощью компьютера, по п.17, в котором инструкции дополнительно содержат
если объект, связанный с запрошенными данными, не сохранен в кэш-памяти и запрошенные данные являются доступными из памяти данных, связанной с арендатором:
извлечение данных из памяти данных, связанной с арендатором (720),
определение уровня настройки извлеченных данных (722, 730),
если данные являются настроенными, предоставление настроенных данных только запрашивающему арендатору (732, 734) и,
если данные являются ненастроенными, обеспечение доступности ненастроенных данных любому запрашивающему арендатору, причем только одну копию ненастроенных данных сохраняют в кэш-памяти (726, 728).
19. Носитель хранения, доступный для чтения с помощью компьютера, по п.18, в котором инструкции дополнительно содержат сохранение системной сигнальной метки, указывающей ненастроенный статус извлеченных данных в кэш-памяти (725).
20. Носитель хранения, доступный для чтения с помощью компьютера, по п.17, в котором арендатор (342) включает в себя одно из следующего: организацию и члена организации, участвующих в системе CRM.
RU2009136171/08A 2007-03-30 2008-03-15 Кэширование в памяти совместно используемых настраиваемых данных множества арендаторов RU2458399C2 (ru)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/731,564 US8095618B2 (en) 2007-03-30 2007-03-30 In-memory caching of shared customizable multi-tenant data
US11/731,564 2007-03-30

Publications (2)

Publication Number Publication Date
RU2009136171A RU2009136171A (ru) 2011-04-10
RU2458399C2 true RU2458399C2 (ru) 2012-08-10

Family

ID=39796296

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2009136171/08A RU2458399C2 (ru) 2007-03-30 2008-03-15 Кэширование в памяти совместно используемых настраиваемых данных множества арендаторов

Country Status (8)

Country Link
US (1) US8095618B2 (ru)
EP (1) EP2143051B1 (ru)
JP (1) JP5226770B2 (ru)
KR (1) KR101475964B1 (ru)
CN (1) CN101652787B (ru)
BR (1) BRPI0808912A8 (ru)
RU (1) RU2458399C2 (ru)
WO (1) WO2008121540A1 (ru)

Families Citing this family (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8095618B2 (en) 2007-03-30 2012-01-10 Microsoft Corporation In-memory caching of shared customizable multi-tenant data
US8577835B2 (en) * 2007-06-28 2013-11-05 Salesforce.Com, Inc. Method and system for sharing data between subscribers of a multi-tenant database service
US8868831B2 (en) * 2009-09-14 2014-10-21 Oracle International Corporation Caching data between a database server and a storage system
US10430338B2 (en) * 2008-09-19 2019-10-01 Oracle International Corporation Selectively reading data from cache and primary storage based on whether cache is overloaded
US8954488B2 (en) 2009-01-21 2015-02-10 Microsoft Corporation Extensibility for web based diagram visualization
US9286364B2 (en) 2009-01-23 2016-03-15 Salesforce.Com Inc. Methods and systems for sharing information in a supply chain
US8880549B2 (en) * 2009-11-09 2014-11-04 International Business Machines Corporation Concurrent database access by production and prototype applications
GB201004449D0 (en) * 2010-02-22 2010-05-05 Corbett Sean Data accelerator
US20110246524A1 (en) * 2010-04-01 2011-10-06 Salesforce.Com, Inc. System, method and computer program product for portal user data access in a multi-tenant on-demand database system
US8631333B2 (en) 2010-06-07 2014-01-14 Microsoft Corporation Feature set differentiation by tenant and user
US8386501B2 (en) 2010-10-20 2013-02-26 Microsoft Corporation Dynamically splitting multi-tenant databases
US8751656B2 (en) 2010-10-20 2014-06-10 Microsoft Corporation Machine manager for deploying and managing machines
US8296267B2 (en) 2010-10-20 2012-10-23 Microsoft Corporation Upgrade of highly available farm server groups
US8417737B2 (en) 2010-10-20 2013-04-09 Microsoft Corporation Online database availability during upgrade
US8799453B2 (en) 2010-10-20 2014-08-05 Microsoft Corporation Managing networks and machines for an online service
US9075661B2 (en) 2010-10-20 2015-07-07 Microsoft Technology Licensing, Llc Placing objects on hosts using hard and soft constraints
US8850550B2 (en) 2010-11-23 2014-09-30 Microsoft Corporation Using cached security tokens in an online service
US9721030B2 (en) 2010-12-09 2017-08-01 Microsoft Technology Licensing, Llc Codeless sharing of spreadsheet objects
CN102215264B (zh) * 2011-06-10 2013-04-10 山东大学 一种支持多租户数据与服务定制运行的方法和装置
US9973884B2 (en) * 2012-03-07 2018-05-15 Intel Corporation Device, system and method of controlling access to location sources
KR101642213B1 (ko) 2012-03-29 2016-07-22 인텔 코포레이션 모바일 장치의 위치 추정 장치, 시스템 및 방법
WO2013154533A1 (en) 2012-04-10 2013-10-17 Intel Corporation Device, system and method of collaborative location error correction
GB2503266A (en) * 2012-06-21 2013-12-25 Ibm Sharing aggregated cache hit and miss data in a storage area network
US9959423B2 (en) * 2012-07-30 2018-05-01 Microsoft Technology Licensing, Llc Security and data isolation for tenants in a business data system
JP6511394B2 (ja) * 2012-09-27 2019-05-15 アマデウス エス.アー.エス.Amadeus S.A.S. データの保存および取得の方法およびシステム
US20140181992A1 (en) * 2012-12-21 2014-06-26 Michael Alexander Janson Multi-tenant content provider
US9483754B2 (en) * 2013-03-15 2016-11-01 Stevenson Systems, Inc. Interactive building stacking plans
TWI506452B (zh) * 2013-03-18 2015-11-01 Quanta Comp Inc 雲端平台及其資料交換方法
CN103310382B (zh) * 2013-05-28 2016-09-21 中国矿业大学 一种矿山综合自动化集成平台下的数据定制方法及系统
US20140379634A1 (en) * 2013-06-21 2014-12-25 Avaya Inc. Application-to-repository data mapping in data repositories, and related methods, systems, and computer-readable media
US9798655B2 (en) 2013-09-20 2017-10-24 Oracle International Corporation Managing a cache on storage devices supporting compression
US10229161B2 (en) 2013-09-20 2019-03-12 Oracle International Corporation Automatic caching of scan and random access data in computing systems
WO2015112614A1 (en) 2014-01-21 2015-07-30 Oracle International Corporation System and method for supporting multi-tenancy in an application server, cloud, or other environment
US10084723B2 (en) * 2014-09-25 2018-09-25 Oracle International Corporation System and method for providing an end-to-end lifecycle in a multitenant application server environment
US9853873B2 (en) 2015-01-10 2017-12-26 Cisco Technology, Inc. Diagnosis and throughput measurement of fibre channel ports in a storage area network environment
US9900250B2 (en) 2015-03-26 2018-02-20 Cisco Technology, Inc. Scalable handling of BGP route information in VXLAN with EVPN control plane
US10222986B2 (en) * 2015-05-15 2019-03-05 Cisco Technology, Inc. Tenant-level sharding of disks with tenant-specific storage modules to enable policies per tenant in a distributed storage system
US11588783B2 (en) 2015-06-10 2023-02-21 Cisco Technology, Inc. Techniques for implementing IPV6-based distributed storage space
US9996321B2 (en) * 2015-06-23 2018-06-12 Microsoft Technology Licensing, Llc Multi-tenant, tenant-specific applications
US10778765B2 (en) 2015-07-15 2020-09-15 Cisco Technology, Inc. Bid/ask protocol in scale-out NVMe storage
US9860214B2 (en) * 2015-09-10 2018-01-02 International Business Machines Corporation Interconnecting external networks with overlay networks in a shared computing environment
US9892075B2 (en) 2015-12-10 2018-02-13 Cisco Technology, Inc. Policy driven storage in a microserver computing environment
US9823919B2 (en) 2015-12-30 2017-11-21 Microsoft Technology Licensing, Llc Controlled deployment of application feature in mobile environment
US20170315812A1 (en) 2016-04-28 2017-11-02 Microsoft Technology Licensing, Llc Parallel instruction scheduler for block isa processor
US10140172B2 (en) 2016-05-18 2018-11-27 Cisco Technology, Inc. Network-aware storage repairs
US20170351639A1 (en) 2016-06-06 2017-12-07 Cisco Technology, Inc. Remote memory access using memory mapped addressing among multiple compute nodes
US10664169B2 (en) 2016-06-24 2020-05-26 Cisco Technology, Inc. Performance of object storage system by reconfiguring storage devices based on latency that includes identifying a number of fragments that has a particular storage device as its primary storage device and another number of fragments that has said particular storage device as its replica storage device
US11563695B2 (en) 2016-08-29 2023-01-24 Cisco Technology, Inc. Queue protection using a shared global memory reserve
CN106844529B (zh) * 2016-12-29 2019-08-20 金蝶软件(中国)有限公司 缓存数据更新方法、装置和系统
US10545914B2 (en) 2017-01-17 2020-01-28 Cisco Technology, Inc. Distributed object storage
US10243823B1 (en) 2017-02-24 2019-03-26 Cisco Technology, Inc. Techniques for using frame deep loopback capabilities for extended link diagnostics in fibre channel storage area networks
US10713203B2 (en) 2017-02-28 2020-07-14 Cisco Technology, Inc. Dynamic partition of PCIe disk arrays based on software configuration / policy distribution
US10254991B2 (en) 2017-03-06 2019-04-09 Cisco Technology, Inc. Storage area network based extended I/O metrics computation for deep insight into application performance
CN108628769A (zh) * 2017-03-17 2018-10-09 华为技术有限公司 一种缓存分配方法,及设备
US11500836B2 (en) * 2017-06-27 2022-11-15 Salesforce, Inc. Systems and methods of creation and deletion of tenants within a database
US10303534B2 (en) 2017-07-20 2019-05-28 Cisco Technology, Inc. System and method for self-healing of application centric infrastructure fabric memory
US10404596B2 (en) 2017-10-03 2019-09-03 Cisco Technology, Inc. Dynamic route profile storage in a hardware trie routing table
US10942666B2 (en) 2017-10-13 2021-03-09 Cisco Technology, Inc. Using network device replication in distributed storage clusters
US11048815B2 (en) * 2018-08-06 2021-06-29 Snowflake Inc. Secure data sharing in a multi-tenant database system
US11650749B1 (en) 2018-12-17 2023-05-16 Pure Storage, Inc. Controlling access to sensitive data in a shared dataset
US10922229B2 (en) * 2019-03-11 2021-02-16 Microsoft Technology Licensing, Llc In-memory normalization of cached objects to reduce cache memory footprint
CN111045802B (zh) * 2019-11-22 2024-01-26 中国联合网络通信集团有限公司 Redis集群组件调度系统及方法、平台设备
US11082487B1 (en) 2020-09-22 2021-08-03 Vignet Incorporated Data sharing across decentralized clinical trials using customized data access policies
CN112632130A (zh) * 2020-12-30 2021-04-09 中国农业银行股份有限公司 一种数据管理的方法、装置、设备及介质
CN112800362B (zh) * 2021-02-04 2024-05-17 百果园技术(新加坡)有限公司 一种界面视图延时加载方法及装置
US12019610B2 (en) * 2021-08-27 2024-06-25 Salesforce, Inc. Mechanisms for truncating tenant data
US12008041B2 (en) 2021-09-15 2024-06-11 International Business Machines Corporation Shared cache for multiple index services in nonrelational databases
US11790107B1 (en) 2022-11-03 2023-10-17 Vignet Incorporated Data sharing platform for researchers conducting clinical trials
US12007870B1 (en) 2022-11-03 2024-06-11 Vignet Incorporated Monitoring and adjusting data collection from remote participants for health research

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5038278A (en) * 1988-04-01 1991-08-06 Digital Equipment Corporation Cache with at least two fill rates
US6421683B1 (en) * 1999-03-31 2002-07-16 Verizon Laboratories Inc. Method and product for performing data transfer in a computer system
US6732237B1 (en) * 2000-08-29 2004-05-04 Oracle International Corporation Multi-tier caching system
RU2272316C2 (ru) * 2001-03-16 2006-03-20 Нетомат, Инк. Совместное использование, управление и передача информации по компьютерной сети

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR960015583B1 (ko) 1994-06-30 1996-11-18 김정덕 다중프로세서의 캐시메모리 필터링장치
US7987217B2 (en) * 2000-05-12 2011-07-26 Oracle International Corporation Transaction-aware caching for document metadata
US6725265B1 (en) * 2000-07-26 2004-04-20 International Business Machines Corporation Method and system for caching customized information
US6928466B1 (en) * 2000-09-28 2005-08-09 Emc Corporation Method and system for identifying memory component identifiers associated with data
US7624126B2 (en) 2003-06-25 2009-11-24 Microsoft Corporation Registering for and retrieving database table change information that can be used to invalidate cache entries
US7779039B2 (en) 2004-04-02 2010-08-17 Salesforce.Com, Inc. Custom entities and fields in a multi-tenant database system
US7529728B2 (en) 2003-09-23 2009-05-05 Salesforce.Com, Inc. Query optimization in a multi-tenant database system
US20060235831A1 (en) 2005-01-14 2006-10-19 Adinolfi Ronald E Multi-source multi-tenant entitlement enforcing data repository and method of operation
US8069153B2 (en) 2005-12-02 2011-11-29 Salesforce.Com, Inc. Systems and methods for securing customer data in a multi-tenant environment
US9135304B2 (en) * 2005-12-02 2015-09-15 Salesforce.Com, Inc. Methods and systems for optimizing text searches over structured data in a multi-tenant environment
US7716180B2 (en) * 2005-12-29 2010-05-11 Amazon Technologies, Inc. Distributed storage system with web services client interface
US8949368B2 (en) * 2006-05-12 2015-02-03 Citrix Systems, Inc. Method for cache object aggregation
US7831455B2 (en) 2007-03-08 2010-11-09 Salesforce.Com, Inc. Method and system for posting ideas and weighting votes
US8095618B2 (en) 2007-03-30 2012-01-10 Microsoft Corporation In-memory caching of shared customizable multi-tenant data

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5038278A (en) * 1988-04-01 1991-08-06 Digital Equipment Corporation Cache with at least two fill rates
US6421683B1 (en) * 1999-03-31 2002-07-16 Verizon Laboratories Inc. Method and product for performing data transfer in a computer system
US6732237B1 (en) * 2000-08-29 2004-05-04 Oracle International Corporation Multi-tier caching system
RU2272316C2 (ru) * 2001-03-16 2006-03-20 Нетомат, Инк. Совместное использование, управление и передача информации по компьютерной сети

Also Published As

Publication number Publication date
RU2009136171A (ru) 2011-04-10
BRPI0808912A2 (pt) 2014-08-19
JP2010524083A (ja) 2010-07-15
CN101652787A (zh) 2010-02-17
KR101475964B1 (ko) 2014-12-23
JP5226770B2 (ja) 2013-07-03
WO2008121540A1 (en) 2008-10-09
EP2143051A1 (en) 2010-01-13
BRPI0808912A8 (pt) 2016-12-20
US8095618B2 (en) 2012-01-10
KR20100014546A (ko) 2010-02-10
US20080244184A1 (en) 2008-10-02
CN101652787B (zh) 2013-09-18
EP2143051B1 (en) 2017-11-01
EP2143051A4 (en) 2012-08-29

Similar Documents

Publication Publication Date Title
RU2458399C2 (ru) Кэширование в памяти совместно используемых настраиваемых данных множества арендаторов
US11238096B2 (en) Linked data processor for database storage
EP2260413B1 (en) Web content management
US20180129691A1 (en) Dynamic creation and maintenance of multi-column custom indexes for efficient data management in an on-demand services environment
US10838934B2 (en) Modifying archive data without table changes
US10855637B2 (en) Architecture for large data management in communication applications through multiple mailboxes
US7624117B2 (en) Complex data assembly identifier thesaurus
CN107103011B (zh) 终端数据搜索的实现方法和装置
US11727027B2 (en) Providing enhanced page layout representations of database entries
US20190102467A1 (en) Dynamic materialization of feeds for enabling access of the feed in an online social network
JP2023534656A (ja) アクセラレータ専用データベーステーブルのアーカイビング
US8539006B2 (en) Logical chart of accounts with hashing
US11892992B2 (en) Unique identification management
US20230153300A1 (en) Building cross table index in relational database
US11537499B2 (en) Self executing and self disposing signal
US20230401327A1 (en) Providing data as a service using a multi-tenant system
US11609954B2 (en) Segment creation in a database system
US20240028593A1 (en) In-memory graph query engine with persisted storage
US20230177090A1 (en) Systems, methods, and devices for dynamic record filter criteria for data objects of computing platforms
CN117112531A (zh) 数据服务化方法及设备

Legal Events

Date Code Title Description
PC41 Official registration of the transfer of exclusive right

Effective date: 20150306

MM4A The patent is invalid due to non-payment of fees

Effective date: 20180316