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 PDFInfo
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0643—Hash 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.
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.
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.
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)
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 |
-
2005
- 2005-06-14 ES ES200501488A patent/ES2296447B1/es active Active
Patent Citations (4)
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 |