Download presentation
Presentation is loading. Please wait.
Published byVanessa Ashdown Modified over 10 years ago
1
Supporting RFID-based Item Tracking Applications in Oracle DBMS Using a Bitmap Datatype Ying Hu, Seema Sundara, Timothy Chorma, Jagannathan Srinivasan Oracle New England Development Center One Oracle Drive, Nashua, NH 03062
2
VLDB 2005 Talk Outline Background A Bitmap Datatype Applications Implementation Performance Study Conclusions
3
VLDB 2005 Background
4
VLDB 2005 Radio Frequency Identification RFID uses radio frequency to automatically detect and identify individual items, which have RFID tags associated with them. RFID technology is increasingly being used in applications such as –Asset Tracking, –Supply Chain Management, and –Retail Management.
5
VLDB 2005 Electronic Product Codes (EPCs) EPC is a standard naming scheme proposed by Auto-Id Center for RFID applications. An EPC uniquely identifies an item. It contains The header identifies the format of the EPCtype, the next two components identify the product, whereas the last component uniquely identifies the item within the product.
6
VLDB 2005 Item Tracking RFID Technology enables item tracking applications However, there is a need for efficient mechanism for managing the high volume of item tracking information.
7
VLDB 2005 A Bitmap Type for Item Tracking Key Observation: RFID Items can be efficiently tracked by tracking the groups to which an item belongs. For example –Groups of items in the same proximity: e.g. on a shelf, on a shipment –Groups of items with same property: e.g. items of a single product, items of a single product with same expiry date Our Solution: Use a bitmap type for modeling a collection of EPCs that can occur in item tracking applications.
8
VLDB 2005 A Bitmap Datatype
9
VLDB 2005 Example: Product Inventory With EPC Collections With epc_bitmaps Store_idProd_idTimeItem_collection s1p1t1epc11, epc12, epc13, … s1p2t2epc21, epc22, epc23, … ………… Store_idProd_idTimeItem_bmap s1p1t1bmap1 s1p2t2bmap2 …………
10
VLDB 2005 epc_bitmap Datatype A new type to represent a collection of EPCs with a common prefix CREATE TYPE epc_bitmap_segment ( epc_length NUMBER, epc_suffix_length NUMBER, epc_prefix RAW, epc_suffix_start RAW, epc_suffix_end RAW, epc_suffix_bitmap RAW ); epc_bitmap type to represent a collection of EPCs CREATE TYPE epc_bitmap IS TABLE of epc_bitmap_segment;
11
VLDB 2005 epc_bitmap_segment Datatype Header EPC_Manager Object_Class Serial_Number 2-bits 21-bits 17-bits 24-bits 0x4AA890001F62C160 ………………………… 0x4AA890001FA0B38E LenSuff_lenPrefixSuff_startSuff_endbitmap 64240x4AA890001F0x62C1600xA0B38E101001…00010
12
VLDB 2005 epc_bitmap Operations Conversion Operations epc2Bmap, bmap2Epc, and bmap2Count Pairwise Logical Operations bmapAnd, bmapOr, bmapMinus, and bmapXor Maintenance Operations bmapInsert and bmapDelete Membership Testing Operation bmapExists Comparison Operation bmapEqual
13
VLDB 2005 Applications
14
VLDB 2005 Applications: Shelf Analytics Determine the items added to a shelf between time t1 and t2 SELECT bmap2Epc(bmapMinus(s2.item_bmap, s1.item_bmap)) FROM Shelf_Inventory s1, Shelf_Inventory s2 WHERE s1.shelf_id = AND s1.shelf_id = s2.shelf_id AND s1.time= AND s2.time= ; Shelf_Inventory Shelf_idTimeItem_bmap sid1t1bmp1 sid1t2bmp2 ………
15
VLDB 2005 Applications: Product Recall Identify the stores that currently have recalled items SELECT Store_id FROM Product_Inventory P WHERE bmap2Count(bmapAnd(P.Item_bmap, epc2Bmap( ))) > 0 AND P.Product_id= AND P.Time = ; Product_Inventory Prod_idStore_idTimeItem_bmap p1s1t1bmap1 p1s2t2bmap2 …………
16
VLDB 2005 Implementation
17
VLDB 2005 Implementation Leverages Oracle’s Bitmap Index Implementation Uses G. Antoshenkov’s “Byte Aligned Data Compression” for creation and operation of bitmaps for rowid collections. A collection of EPCs is grouped into different epc_bitmap_segments, – When the previous epc_suffix_bitmap (maximum size of RAW = 2000) can not hold any more EPCs – When epc_prefixes are different
18
VLDB 2005 Persistent epc_bitmap Stored in a primary B+-tree structure primary B+-tree structure primary key columns non-key columns Data1Data2Epc_bitmap ……… ……set_id_I ……… set_id_iepc_ length epc_suffix _length epc_ prefix epc_suffix_ start epc_suffix_endepc_suffix_bitmap
19
VLDB 2005 Query Processing & Optimization epc_bitmap function is executed per row Queries with predicates on bitmap columns can be speeded up –Using Function-based B-tree index: On pre-computed value of bmap2Count(bmap_col) SELECT S.shelf_id FROM Shelf_inventory S WHERE bmap2Count(S.item_bmap) > 0 ; –Using Summary Bitmap Index
20
VLDB 2005 Summary Bitmap Specialized index structure to speed up query to detect the presence of an epc identifier SELECT s.shelf_id, s.time FROM Shelf_Inventory s WHERE bmapExists(s.item_bmap, ); Create a summary bitmap sbmap using OR operation on {bmap 1, …, bmap k }: bmapExists(sbmap) i 1…k: bmapExists(bmap i )
21
VLDB 2005 Summary Bitmap Index Structure root node leaf nodes branch nodes … … EPC Bitmap column Bmp1 Bmp2 Table A Summary Bitmap Tree … … Bmpn
22
VLDB 2005 Summary Bitmap Index Algorithm DFS(X, epc): X: a node in the tree index; epc: a given epc; bmp(X): the epc_bitmap associated with node X; if ( bmapExists(bmp(X), epc)== TRUE) { if (X == leaf node) report bmp(X); else for each child node V of X do DFS(V, epc); } Complexity:O(1), no candidate O(m log N), m: fan-out, N: no. of rows
23
VLDB 2005 Performance Study
24
VLDB 2005 Experimental Setup Data represents EPC-64 collections, which are randomly generated with a uniform distribution Data sampled every hour for 30 days(720 obs.), 300 days (7200 obs) and 3000 days (72000 obs). EPC collections of size 100000, 10000 and 1000 represent typical number of items in department and/or shelf
25
VLDB 2005 Storage Comparison
26
VLDB 2005 Bulk Load Performance
27
VLDB 2005 Query 1: Enumerate Removed Items Enumerate the items removed from a shelf between 2 time intervals Collection Type Query SELECT b.epc_value FROM epc_coll a, TABLE(a.epcs) b WHERE a.time = '2004-03-04 10:00 AM' MINUS SELECT b2.epc_value FROM epc_coll a2, TABLE(a2.epcs) b2 WHERE a2.time = '2004-03-04 11:00 AM'; epc_bitmap Type Query SELECT * FROM TABLE( SELECT bmap2Epc(bmapMinus(p1.epcs,p2.epcs)) FROM epc_bmp p1, epc_bmp p2 WHERE p1.time = '2004-03-04 10:00 AM' AND p2.time = '2004-03-04 11:00 AM');
28
VLDB 2005 Query 1: Enumerate Removed Items
29
VLDB 2005 Query 1 with Variant Datasets
30
VLDB 2005 Query 2: Report All Observations Report all observations when a given EPC was present Collection Type Query SELECT a.time FROM epc_coll a WHERE EXISTS(SELECT 1 FROM TABLE(a.epcs) b WHERE b.epc_value = ‘400003000300052A’); epc_bitmap Type Query SELECT time FROM epc_bmp WHERE bmapExists(epcs, ‘400003000300052A’);
31
VLDB 2005 Query 2: Report All Observations
32
VLDB 2005 Performance Discussion Storage savings of 2 to 8 times due to compressed bitmaps Bulk load performance faster due to smaller storage needs For collections of size > 1000, query performance gains of 10% to 1200% For smaller collection sizes, performance is same as native collections
33
VLDB 2005 Conclusions epc_bitmap can model transient and persistent EPC collections epc_bitmap can be used to support RFID-based item tracking applications An efficient primary B+-tree based storage and access mechanism Performance experiments validate the feasibility and benefits of the epc_bitmap Support can be extended to Row Identifier (rowid) and Life Science Identifier (LSID) collections
34
VLDB 2005 A Q & Q U E S T I O N S A N S W E R S
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.