ES2296447A1 - Procedimiento para reducir los accesos a una estructura de datos a traves de mapas de contadores actualizables. - Google Patents

Procedimiento para reducir los accesos a una estructura de datos a traves de mapas de contadores actualizables. Download PDF

Info

Publication number
ES2296447A1
ES2296447A1 ES200501488A ES200501488A ES2296447A1 ES 2296447 A1 ES2296447 A1 ES 2296447A1 ES 200501488 A ES200501488 A ES 200501488A ES 200501488 A ES200501488 A ES 200501488A ES 2296447 A1 ES2296447 A1 ES 2296447A1
Authority
ES
Spain
Prior art keywords
data structure
meter
procedure
updatable
data
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
ES200501488A
Other languages
English (en)
Other versions
ES2296447B1 (es
Inventor
Josep Lluis Larriba Pev
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Universitat Politecnica de Catalunya UPC
Original Assignee
Universitat Politecnica de Catalunya UPC
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 Universitat Politecnica de Catalunya UPC filed Critical Universitat Politecnica de Catalunya UPC
Priority to ES200501488A priority Critical patent/ES2296447B1/es
Publication of ES2296447A1 publication Critical patent/ES2296447A1/es
Application granted granted Critical
Publication of ES2296447B1 publication Critical patent/ES2296447B1/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • H04L9/3223

Abstract

Procedimiento para reducir los accesos a una estructura de datos a través de mapas de contadores actualizables.Comprende las etapas de crear un mapa de contadores con los valores de las tuplas existentes en una estructura de datos y a partir de un subconjunto de los bits de uno o más atributos de las mismas; el incremento o decremento de los contadores a medida que se van introduciendo o borrando tuplas de la estructura de datos a partir del mismo subconjunto de bits usados en el momento de su creación; y el uso del mapa de contadores para evitar acceder a las tuplas de la estructura de datos a partir del mismo subconjunto de bits usados en el momento de su creación, La invención propone el uso de mapas de contadores implementados en software o hardware para evitar el acceso innecesario a estructuras de datos implementadas en software o hardware ya sea en computadores paralelos o con un solo procesador, en cualquier tipo de aplicación informática o de telecomunicación donde se usen computadores para su control.

Description

Procedimiento para reducir los accesos a una estructura de datos a través de mapas de contadores actualizables.
La presente solicitud de Patente de Invención consiste conforme indica su enunciado en un "Procedimiento para reducir los accesos a una estructura de datos a través de mapas de contadores actualizables" cuyas nuevas características proporcionan numerosas ventajas tal como se detallará en la presente memoria.
Más concretamente, la invención se refiere a un procedimiento para la eliminación prematura de accesos de lectura costosos en tiempo a una estructura de datos informática cualquiera con múltiples datos. El procedimiento se basa en un mapa de contadores. También supone que se incluyen y eliminan distintos datos de la estructura de datos a través del tiempo de forma constante.
Se entiende por estructura de datos informática (a partir de ahora, estructura de datos), un espacio de memoria organizada de tal manera que las tuplas o registros que almacena se pueden acceder de forma predeterminada a través de un programa informático.
Se entiende por tupla o registro (a partir de ahora, tupla) el conjunto de atributos de diferentes tipos que describen las características de un sujeto, objeto o evento.
Un ejemplo de estructura de datos informática podría ser una estructura de "Hash", que se organiza en una tabla con t entradas donde cada entrada da acceso a un subconjunto del total de tuplas a través de, por ejemplo, una lista encadenada por punteros. El subconjunto de tuplas correspondiente a una de las t entradas de la tabla se conoce como un "bucket". Para conocer el bucket donde se almacena una tupla concreta, es necesario usar una función de Hash sobre un subconjunto de bits de uno o más atributos de la tupla. Esto es, se toma el subconjunto de bits y se les aplica una función matemática que da un valor numérico. Este valor numérico está comprendido entre los valores que determinan la posición de las t entradas en la tabla de buckets. Puede ocurrir que más de un subconjunto de bits obtenga el mismo valor de la función de Hash, es decir, la función de Hash genere sinónimos. Es por ello que un bucket puede contener más de una tupla. Para acceder a la tupla concreta es necesario recorrer la lista encadenada por punteros, obligándose a recorrerla entera si la tupla no se encuentra en la lista.
El objetivo con el procedimiento propuesto es mantener un conjunto de k contadores de un número b de bits cada uno que mantengan actualizado constantemente el estado de tuplas vivas en un momento dado dentro de la estructura de datos. Llamaremos a este conjunto de k contadores de b bits cada uno, mapa de contadores. Accediendo a esos contadores antes que a la estructura de datos, se podrá decidir si una tupla se encuentra en la estructura de datos a priori. De esta manera, si el mapa de contadores nos indica que no está la tupla en la estructura de datos, se ahorrará el acceso tan costoso para el caso de tuplas no presentes en la estructura de datos.
Inicialmente el mapa de contadores se inicializará con el conjunto de datos presente en la estructura de datos objeto del procedimiento propuesto. El número de contadores k puede ser diferente del número de buckets t en la estructura de datos, si se usa una estructura de Hash.
Para acceder al mapa de contadores, será necesario hacerlo a través de una o más funciones de Hash (distintas e independientes de la función descrita para la estructura de Hash) usando un subconjunto de bits de uno o más atributos de la tupla. Esto es, para cada función de Hash, se toma el subconjunto de bits y se les aplica una función matemática que da un valor numérico. Este valor numérico está comprendido entre los valores que determinan la posición de los k contadores. Cada contador determinará la cantidad de tuplas sinónimas que están presentes en la estructura de datos en todo momento para su función de Hash.
Cada contador accedido a través de una función de Hash se incrementará cuando una tupla se incluya de nuevo en la estructura de datos o se decrementará cuando se borre de la estructura. En caso de saturación del contador, será necesario tener una estructura adicional de desbordamiento que mantendrá constancia de aquellos contadores saturados en el mapa de contadores y de su contaje real.
Los valores que podrá tomar un contador de b bits serán 2^{b}, debiéndose escoger un valor para cero, uno para indicar saturación y el resto para indicar el número de tuplas que hay en la estructura de datos. El dimensionado del número de bits por contador b y del número de contadores k será importante para incurrir en el mínimo número de desbordamientos de contadores y minimizar el número de accesos a la estructura de datos.
En el caso de una búsqueda de una tupla en la estructura de datos, será necesario acceder a tantos contadores como funciones de Hash se usen. Si alguno de los valores de los contadores es equivalente a que no haya tuplas para ese contador, se ahorrará el acceso a la estructura de datos. Si el valor de todos los contadores es equivalente a haber tuplas para cada contador, querrá decir que es posible (aunque no con absoluta seguridad) que esa tupla se encuentre en la estructura de datos y por tanto será necesario accederla para comprobar si está o no.
De este modo, el proceso que se debe seguir si nos encontramos ante una inclusión, un borrado o una búsqueda de una tupla sobre la estructura de datos será distinta y se describe como sigue:
Inclusión en la estructura de datos. Si se quiere incluir una tupla en la estructura de datos, se buscará su posición en la tabla de k contadores a través de las funciones de Hash y se incrementarán los contadores. Una vez incrementados se incluirá la tupla en la estructura de datos (para la tabla de Hash anteriormente mencionada, se debería aplicar otra función de Hash a otro subconjunto arbitrario de bits para incluir la tupla en la estructura de datos). Si el contador se satura, será necesario incluir el contador en la estructura de desbordamiento e inicializar ese contador al valor del número de tuplas en la estructura de datos. Esta fase se debe realizar sin permitir la actualización y/o borrado concurrente de un contador ni de la estructura de datos.
Borrado de la estructura de datos. Si se quiere borrar una tupla de la estructura de datos, además, se decrementarán los contadores correspondientes a cada una de las funciones de Hash. En el caso de encontrarnos con un contador saturado, se deberá acceder a la estructura de desbordamiento para decrementar el contador de desbordamiento, o eliminarlo si, después de decrementar, se alcanza el valor máximo de saturación de los contadores en el mapa de contadores. Esta fase se debe realizar sin permitir la actualización y/o borrado concurrente de un contador y la estructura de datos.
Búsqueda de una tupla en la estructura de datos. Si se quiere buscar una tupla en la estructura de datos, se consultarán los contadores correspondientes para cada función de Hash. Si el valor de algún contador es equivalente a cero, querrá decir que la tupla no está en la estructura de datos. Si todos son distintos de cero, querrá decir que puede ser que la tupla esté o no en la estructura. En cualquier caso, todos los valores distintos de cero implicarán el acceso a la estructura de datos.
El procedimiento de uso de los filtros de bits, o filtros Bloom, se describió en detalle en B. S. Bloom. Space/Time Trade-offs in Hash Coding with Allowable errors. Communications of the ACM, V13, N7, July 1970. El procedimiento de los filtros Bloom permite mantener una estructura de bits que indica la presencia o no de datos en una estructura de datos que no varía su contenido durante la consulta. Toda la investigación que ha habido a partir de ahí sobre estructuras de datos para reducir el número de accesos se ha basado en el procedimiento de los filtros Bloom. No somos conscientes de que haya trabajo anterior en el sentido de la invención detallada en el presente texto.
La presente invención tiene como ventaja que puede usarse en estructuras de datos que varían su contenido de forma dinámica a través del tiempo. Este tipo de estructuras aparecen en casos de operadoras telefónicas con un gran número de teléfonos en servicio constantemente, en nodos de gestión de redes informáticas, donde se están actualizando listas de acceso de forma constante, etc.
El objetivo de la invención descrita es reducir el tiempo de ejecución de las consultas sobre estructuras de datos que varían dinámicamente. De esta manera se ahorra el acceso a la estructura si el mapa de contadores dice que no hay ninguna tupla sinónima para alguna de las funciones de Hash, y además permite que otras consultas se realicen antes puesto que se ahorran accesos que pueden saturar el procesador y la memoria del computador.
Ejemplo 1 Uso del mapa de contadores en una aplicación de telefonía móvil
Se supone que hay un conjunto de teléfonos móviles en funcionamiento (comunicando para un usuario que intenta acceder a ellos) y otro conjunto parados o en espera. El conjunto de móviles en funcionamiento se mantiene en una estructura de Hash para responder a un posible comunicador sobre si el teléfono al que se quiere acceder comunica o, establecer la llamada si no está comunicando. Esta estructura se modifica constantemente a través del tiempo en función de los teléfonos que están en comunicación o no.
El mapa de contadores permite saber, sin acceder a la estructura de datos, si un teléfono está inactivo (no se encuentra en la estructura de datos) y, por tanto, se puede proceder a establecer la llamada. En caso que el mapa de contadores diga que el teléfono puede estar activo, se debe acceder a la estructura de datos para comprobarlo.
Esta estrategia permite, en momentos de saturación de líneas telefónicas, ahorrar accesos a estructuras de datos y por tanto descargar las consultas, incrementando la calidad de servicio al usuario.
Ejemplo 2 Procesado de datos en caso de existencia en una estructura de datos
Suponemos un entorno en el que durante una consulta, la existencia de un dato en una estructura de datos implique un procesado posterior y la no existencia implique no procesado. Además, suponemos que el contenido de la estructura de datos está cambiando constantemente.
El uso de un mapa de contadores, puede ahorrar una gran cantidad de accesos a la estructura de datos para aquellos casos en que no existe el dato en la estructura de datos.

Claims (13)

1. Procedimiento para reducir los accesos a una estructura de datos a través de mapas de contadores actualizables caracterizado en que comprende las etapas de:
creación de un mapa de contadores con los valores de las tuplas existentes en una estructura de datos y a partir de un subconjunto de los bits de uno o más atributos de las mismas.
incremento o decremento de los contadores a medida que se van introduciendo o borrando tuplas de la estructura de datos a partir del mismo subconjunto de bits usados en el momento de su creación.
uso del mapa de contadores para evitar acceder a las tuplas de la estructura de datos a partir del mismo subconjunto de bits usados en el momento de su creación.
2. Procedimiento para reducir los accesos a una estructura de datos a través de mapas de contadores actualizables según la reivindicación 1ª, caracterizado en que la estructura de datos que contiene las tuplas es una estructura de Hash.
3. Procedimiento para reducir los accesos a una estructura de datos a través de mapas de contadores actualizables según la reivindicación 1ª, caracterizado en que la estructura de datos sólo contiene alguno de los atributos de las tuplas y un puntero al resto de atributos que están almacenados en otra estructura de datos.
4. Procedimiento para reducir los accesos a una estructura de datos a través de mapas de contadores actualizables según la reivindicación 1ª, caracterizado en que las estructuras de datos están implementadas en software.
5. Procedimiento para reducir los accesos a una estructura de datos a través de mapas de contadores actualizables según la reivindicación 1ª, caracterizado en que los mapas de contadores están implementados en software.
6. Procedimiento para reducir los accesos a una estructura de datos a través de mapas de contadores actualizables según la reivindicación 1ª, caracterizado en que las estructuras de datos que contienen las tuplas están implementadas en hardware o circuitos electrónicos.
7. Procedimiento para reducir los accesos a una estructura de datos a través de mapas de contadores actualizables según la reivindicación 1ª, caracterizado en que los mapas de contadores están implementados en hardware o circuitos electrónicos.
8. Procedimiento para reducir los accesos a una estructura de datos a través de mapas de contadores actualizables según la reivindicación 1ª, caracterizado en que se usan múltiples funciones de Hash para acceder a los contadores.
9. Procedimiento para reducir los accesos a una estructura de datos a través de mapas de contadores actualizables según la reivindicación 1ª, caracterizado en que se usa una sola función de Hash para acceder a los contadores.
10. Procedimiento para reducir los accesos a una estructura de datos a través de mapas de contadores actualizables según la reivindicación 1ª, caracterizado en que se implementa en un computador secuencial, o con un solo procesador.
11. Procedimiento para reducir los accesos a una estructura de datos a través de mapas de contadores actualizables según la reivindicación 1ª, caracterizado en que se implementa en un computador paralelo, o con múltiples procesadores, con memoria compartida o distribuida.
12. Procedimiento para reducir los accesos a una estructura de datos a través de mapas de contadores actualizables según la reivindicación 1ª, caracterizado en que se usa en aplicaciones informáticas de proceso de datos.
13. Procedimiento para reducir los accesos a una estructura de datos a través de mapas de contadores actualizables según la reivindicación 1ª, caracterizado en que se usa en aplicaciones de telecomunicación, ya sean redes inalámbricas o alámbricas controladas por computadores o procesadores de uso general o específico.
ES200501488A 2005-06-14 2005-06-14 Procedimiento para reducir los accesos a una estructura de datos a traves de mapas de contadores actualizables. Active ES2296447B1 (es)

Priority Applications (1)

Application Number Priority Date Filing Date Title
ES200501488A ES2296447B1 (es) 2005-06-14 2005-06-14 Procedimiento para reducir los accesos a una estructura de datos a traves de mapas de contadores actualizables.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
ES200501488A ES2296447B1 (es) 2005-06-14 2005-06-14 Procedimiento para reducir los accesos a una estructura de datos a traves de mapas de contadores actualizables.

Publications (2)

Publication Number Publication Date
ES2296447A1 true ES2296447A1 (es) 2008-04-16
ES2296447B1 ES2296447B1 (es) 2009-03-01

Family

ID=39247863

Family Applications (1)

Application Number Title Priority Date Filing Date
ES200501488A Active ES2296447B1 (es) 2005-06-14 2005-06-14 Procedimiento para reducir los accesos a una estructura de datos a traves de mapas de contadores actualizables.

Country Status (1)

Country Link
ES (1) ES2296447B1 (es)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59132042A (ja) * 1983-01-17 1984-07-30 Nippon Telegr & Teleph Corp <Ntt> デ−タ選別方式
JPS59220839A (ja) * 1983-05-30 1984-12-12 Agency Of Ind Science & Technol 連想記憶装置
US6360220B1 (en) * 1998-08-04 2002-03-19 Microsoft Corporation Lock-free methods and systems for accessing and storing information in an indexed computer data structure having modifiable entries
US20050071335A1 (en) * 2003-09-29 2005-03-31 Microsoft Corporation Method and apparatus for lock-free, non -blocking hash table

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59132042A (ja) * 1983-01-17 1984-07-30 Nippon Telegr & Teleph Corp <Ntt> デ−タ選別方式
JPS59220839A (ja) * 1983-05-30 1984-12-12 Agency Of Ind Science & Technol 連想記憶装置
US6360220B1 (en) * 1998-08-04 2002-03-19 Microsoft Corporation Lock-free methods and systems for accessing and storing information in an indexed computer data structure having modifiable entries
US20050071335A1 (en) * 2003-09-29 2005-03-31 Microsoft Corporation Method and apparatus for lock-free, non -blocking hash table

Also Published As

Publication number Publication date
ES2296447B1 (es) 2009-03-01

Similar Documents

Publication Publication Date Title
US20220343013A1 (en) Access controlled graph query spanning
US20190197256A1 (en) Method for accessing a database stored on a server using a relation
Magdy et al. Mercury: A memory-constrained spatio-temporal real-time search on microblogs
CN104572979B (zh) 一种处理结构化查询语言sql的方法及装置
US9514217B2 (en) Message index subdivided based on time intervals
US11093472B2 (en) Using an LSM tree file structure for the on-disk format of an object storage platform
US20210110278A1 (en) Enterprise knowledge graph
EP3477528B1 (en) Data anonymization in an in-memory database
CN106708825B (zh) 一种数据文件处理方法及系统
BR112013016900A2 (pt) cache distribuída para dados gráficos
CN108683695A (zh) 热点访问处理方法、缓存访问代理设备及分布式缓存系统
JPWO2012063546A1 (ja) 匿名化装置及び匿名化方法
US8015195B2 (en) Modifying entry names in directory server
CN110287160A (zh) 一种缓存空间清理方法及装置
WO2019085778A1 (zh) 确定数据库中有效分区的方法、装置和系统
US11461241B2 (en) Storage tier management for file systems
Sahin et al. A differentially private index for range query processing in clouds
CN107273758A (zh) 一种数据库访问方法及设备
CN101217449A (zh) 远程调用管理方法
US20140149386A1 (en) Database row access control
WO2020211258A1 (zh) 区块链账本数据的查询方法、电子装置及存储介质
US10614033B1 (en) Client aware pre-fetch policy scoring system
ES2296447B1 (es) Procedimiento para reducir los accesos a una estructura de datos a traves de mapas de contadores actualizables.
CN108108633A (zh) 一种数据文件及其访问方法、装置及设备
CN106250547A (zh) 一种控制红包的方法以及系统

Legal Events

Date Code Title Description
EC2A Search report published

Date of ref document: 20080416

Kind code of ref document: A1

FG2A Definitive protection

Ref document number: 2296447B1

Country of ref document: ES