UE21CS461A –Project Phase – 2
Project Progress Review #3
Project Title : Scalable Indexing Mechanisms for Modular,
Google Zanzibar based Systems
Project ID : 132
Project Guide : Dr. Vinodha K
Project Team : Varuni H K PES2UG21CS597
Sai Sudhir Sunku PES2UG21CS460
Sai Smaran Jawalkar PES2UG21CS459
Samarth Ramesh PES2UG21CS465
Outline
“Faster Fully Dynamic Transitive Closure in Practice” �Hanauer et al. (2020)
Abstract and Scope
Problem Statement
Suggestions from Review - 2
Implementation Details - SVA(1)
Indexing Algorithm - SV Family
Support Vertices:
Support Vertices are designed to determine the reachability of a specific node in a large directed graph.
It focuses on optimizing the computation of transitive closure for a single node.
Utilizes precomputed reachability information (R+ and R- sets) to reduce the need for full graph traversal.
On Initialize() we choose a list of Support Vertices
Indexing Algorithm - R+
Support Vertices:
R+(A) = { B, D, E, F, C}
Indexing Algorithm : R -
R-(A) = {C, F, G}
Observations Driving SV(K)
O1: If a node s is in R-(v) and t is in R+(v), then s can reach t.
O2: If s is in R+(v) but t is not, s cannot reach t.
O3: If t is in R-(v) but s is not, s cannot reach t.
given SV(a) , find if there is a path from f to b �
f to b using O(1)
R+(A) = {A, B, D, E, F, C}: Nodes that A can reach.
R-(A) = {C, F, G}: Nodes that can reach A.
Let s = F (since F ∈ R-(A), F can reach A).
Let t = B (since B ∈ R+(A), A can reach B).
There is a path F → A → B; hence, F can reach B.
How it works
Implementation Details - Onyx
Implementation Details - SVA
Implementation Details - Read Path
Implementation Details - Write Path
Implementation Details - Write Queues
Implementation Details - Write Queue
Implementation Details - Write Queue
The graph dataset problem
Data Collection
Objective: To generate a synthetic dataset representing an authorization request graph.
Approach: We utilized an Erdos-Renyi model (ERM) variant to create a graph with specific properties like long traversals and high latency.
Tools Used: Python, NetworkX library, NumPy
Data Collection
What is Erdos Renyi model?
Key Parameters:
Data Interpretation
Metrics Calculation:
We computed metrics like in-degree, out-degree, and graph density to validate the structure.
Network Structure:
We ensured that intermediate nodes have the desired properties to maintain the integrity of the graph.
Layers: 2120
Total Edges generated: 155,848,612
Total Nodes generated: 20,136,726
In-Degree Mean: 7.762, In-Degree Std: 7.04
Out-Degree Mean: 11.63, Out-Degree Std: 9.49
Density: 3.84 e-07
Test Plan and Strategy
Architecture and Infra
Case 1: Pure Read Workload
Vanilla SpiceDB
Modified SpiceDB
Vanilla SpiceDB
Modified SpiceDB
Case 2: Mixed Workload
( 1% Writes , 99% Read )
Vanilla SpiceDB
Modified SpiceDB
Request Statistics
Vanilla SpiceDB
Modified SpiceDB
Response Time Statistics
Vanilla SpiceDB
Modified SpiceDB
Vanilla SpiceDB
Modified SpiceDB
Results and Discussion
When comparing the our implementation against SpiceDB's implementation, we find that our latency is on average 57% lesser than the baseline SpiceDB.
For a similar load, our implementation has much better (see graph above) CPU utilization when compared with baseline SpiceDB. (25-30% sustained vs 80% sustained)
Project Demonstration
Timeline – Update on Tasks
The project has been completed in all the aspects of implementation.
Conclusion and Future work
References
Thank You