Version 2 (modified by 12 years ago) (diff) | ,
---|
Table of Contents
Performance data
We have gathered performance data of two types of ABAC scenario. The first is the daisychaining of a large answer proof from a similarly sized ruleset. The second is the searching of a proof from a noisy ruleset.
daisychain
Many cascading Likes-rules and their matching principal credentials are generated:
John0.likes <- John0 John1.likes <- John0 John2.likes <- John1 John3.likes <- John2 .. JohnMAX.likes <- JohnMAX-1
Following graph shows the the time needed to load both attribute credentials and principal certificates ((2*MAX)+2) into the YAP prolog db. The Y axis is the total time in milliseconds. The X axis is the number of credentials that are in the YAP backend db.
XXX
A valid query, JohnMAX.likes<-?-John0 , is issued multiple times. The first query's time is collected and then subsequent 10 queries are collected and an average is taken. Next graph shows these lines. The X axis is the query time in microseconds and the Y axis is number of credentials in the YAP backend db.
XXX
An invalid query in the form of John0.likes<-?-JohnMAX is issued multiple times. The first query's time is collected and then subsequent 10 queries are collected and an average is taken. Next graph shows these lines. The X axis is the query time in microseconds and the Y axis is number of credentials in the YAP backend db.
XXX
haystack
The core credential setup is borrowed from the Ralphs' fruitprice and shopper's eating preference RT2 example,
Mary.what2eat <- Ralphs.fruitprice(P:[..2.00]) Bob.what2eat <- Ralphs.fruitprice(P:[1.00 .. 5.00]) Ralphs.fruitprice(1.50) <- 'apple' Ralphs.fruitprice(1.50) <- 'kiwi' Ralphs.fruitprice(2.50) <- 'black rasberry' Ralphs.fruitprice(0.50) <- 'navel orange'
Noises are introduced by adding the rules about bananas and Johns.
Ralphs.fruitprice(1.00) <- 'banana1' Ralphs.fruitprice(2.00) <- 'banana2' .. Ralphs.fruitprice(MAX.00) <- 'bananaMAX'
and,
John1.what2eat <- Ralphs.fruitprice(P:[1.00 .. 5.00]) John2.what2eat <- Ralphs.fruitprice(P:[1.00 .. 5.00]) .. JohnMAX.what2eat <- Ralphs.fruitprice(P:[1.00 .. 5.00])
Following graph shows the the time needed to load both attribute credentials and principal certificates ((3*MAX)+9) into the YAP prolog db. The Y axis is the total time in milliseconds. The X axis is the number of credentials that are in the YAP backend db.
XXX
A valid query, Mary.what2eat<-?-'navel orange', is issued multiple times. The returning answer proof is,
Mary.what2eat <- pRalphs.fruitprice(P:[..2.00]) Ralphs.fruitprice(0.50) <- 'navel orange'
The first query's time is collected and the subsequent 20 queries are collected and averaged. Next graph shows these lines. The X axis is the query time in microseconds and the Y axis is number of credentials in the YAP backend db.
XXX
An invalid query in the form of Bob.what2eat<-?-'navel orange' is issued multiple times. The first query's time is collected and then subsequent 20 queries are collected and averaged. Next graph shows these lines. The X axis is the query time in microseconds and the Y axis is number of credentials in the YAP backend db.
XXX