PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO...
Transcript of PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO...
![Page 1: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/1.jpg)
PIntO
![Page 2: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/2.jpg)
WoW
![Page 3: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/3.jpg)
Scripts// Declare two variables that refer to a pawns.var pawn P, Q; // Here is a function that makes use of P.// It displays some information about P.function MyFunction(){ // Set P's enemy to Q. P.Enemy = Q; // Tell P to play his running animation. P.PlayRunning();}
![Page 4: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/4.jpg)
Potentially Interesting Objects
• Objects register queries
• Often restricted to clients
• Often implicit
• Server returns relevant objects
![Page 5: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/5.jpg)
Discovery Today
• Almost universally distance based
• “Let me know about everything within x meters”
• Games use imposters
• Only simple for centrally controlled content
![Page 6: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/6.jpg)
Mirror’s Edge
![Page 7: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/7.jpg)
Mirror’s Edge
![Page 8: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/8.jpg)
![Page 9: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/9.jpg)
![Page 10: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/10.jpg)
Shortcoming
• Distance doesn’t capture what’s important
![Page 11: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/11.jpg)
![Page 12: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/12.jpg)
![Page 13: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/13.jpg)
![Page 14: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/14.jpg)
![Page 15: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/15.jpg)
Solid Angle
• Object could be far away, but big
• Object could be nearby, but small
• We care about apparent size or solid angle
• “Let me know about all objects that are bigger than n pixels on my screen”
![Page 16: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/16.jpg)
Query Comparison
• For same # of objects, better quality
• For same quality, fewer objects
![Page 17: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/17.jpg)
Non-visual ?
• Discovery, not communication
• Reflects real “discovery”
![Page 18: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/18.jpg)
Outline
• Motivation
• Previous Work
• BVH++
• Continuous Queries and Cuts
• Distributed Queries
![Page 19: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/19.jpg)
Implementation
• How do we efficiently evaluate these queries?
• All objects with solid angle < x
• Standing query - continuous stream of updates
• Not much guidance from CG literature
![Page 20: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/20.jpg)
Implementation
• Doesn’t seem too different from distance query
• Just a slightly different constraint
• Maybe we can reuse existing techniques
![Page 21: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/21.jpg)
Bounding Volume Hierarchy
C
DB
A
![Page 22: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/22.jpg)
G E
Bounding Volume Hierarchy
F
C
DB
A
A B C D
E F
G
![Page 23: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/23.jpg)
G E
Bounding Volume Hierarchy
F
C
DB
A
A B C D
E F
G
![Page 24: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/24.jpg)
G E
Bounding Volume Hierarchy
F
C
DB
A
A B C D
E F
G
![Page 25: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/25.jpg)
G E
Bounding Volume Hierarchy
F
C
DB
A
A B C D
E F
G
![Page 26: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/26.jpg)
G E
Bounding Volume Hierarchy
F
C
DB
A
A B C D
E F
G
![Page 27: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/27.jpg)
G E
Bounding Volume Hierarchy
F
C
DB
A
A B C D
E F
G
![Page 28: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/28.jpg)
G E
Bounding Volume Hierarchy
F
C
DB
A
A B C D
E F
G
![Page 29: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/29.jpg)
Why does this work?
• Conservative check on entire group
• If boundary of bounding volume is out of range, contained objects must be too
• Quickly cull large subtrees
![Page 30: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/30.jpg)
Outline
• Motivation
• Previous Work
• BVH++
• Continuous Queries and Cuts
• Distributed Queries
![Page 31: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/31.jpg)
Solid Angle Queries
• Use same BVH
• Bounding volumes must have larger solid angle
• Recurse if bounding volume satisfies constraint
![Page 32: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/32.jpg)
Results
• 50,000 objects (1m) randomly placed over 1km2
• 50 queriers
• Branching factor: 10
• Solid angle comparisons:
• Brute force: 50,000
• BVH: 60,466 (No culling!)
![Page 33: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/33.jpg)
What went wrong?
• Too conservative
![Page 34: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/34.jpg)
What went wrong?
• Too conservative
![Page 35: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/35.jpg)
BVH++
• Track largest object in subtree
• Check against virtual worst-case object
• As close as possible
• As big as possible
![Page 36: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/36.jpg)
BVH++
• Track largest object in subtree
• Check against virtual worst-case object
• As close as possible
• As big as possible
![Page 37: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/37.jpg)
Results
• Solid angle comparisons:
• Brute force: 50,000
• BVH: 19,631
![Page 38: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/38.jpg)
Branching Factor• Higher branching factor potentially allows
better culling
![Page 39: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/39.jpg)
Branching Factor
• Future evaluation
• Some operations on tree are linear in branching factor
• Maintenance cost vs. traversal cost
• Timing based - depends on optimized implementation
![Page 40: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/40.jpg)
Outline
• Motivation
• Previous Work
• BVH++
• Continuous Queries and Cuts
• Distributed Queries
![Page 41: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/41.jpg)
Continuous Queries
• Good approach for one-off queries
• Could just reevaluate periodically
• How frequently?
• Wasted effort - check same nodes repeatedly, even if they don’t change
![Page 42: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/42.jpg)
Query Cuts
• Maintain “cut” representing stopping points of evaluation
• Leaves
• or internal nodes which do not satisfy constraint
![Page 43: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/43.jpg)
Query Cuts
A B C D
E F
G
![Page 44: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/44.jpg)
Query Cuts
A B C D
E F
GCut - ordered list of
CutNodes
CutNode - stores references to parent Cut,
BVH node
BVH Node - stores bounds, max object size,
unordered set of CutNodes
![Page 45: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/45.jpg)
Query Cut Updates
• Query change (position, solid angle) causes results to change
• Traverse cut, pushing it up or down
• Sequence of all children failing test pushes cut up
• Cut pushed down as usual
![Page 46: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/46.jpg)
Query Cut Updates
• Sequence of all children failing test pushes cut up
A B C D
E F
G
![Page 47: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/47.jpg)
Query Cut Updates
• Sequence of all children failing test pushes cut up
A B C D
E F
G
A
![Page 48: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/48.jpg)
Query Cut Updates
• Sequence of all children failing test pushes cut up
A B C D
E F
G
A
![Page 49: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/49.jpg)
Query Cut Updates
• Cut pushed down as usual
A B C D
E F
G
A
![Page 50: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/50.jpg)
Query Cut Updates
• Cut pushed down as usual
A B C D
E F
G
A
F
![Page 51: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/51.jpg)
Query Cut Updates
• Cut pushed down as usual
A B C D
E F
G
A
F
![Page 52: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/52.jpg)
Query Cut Updates
• Due to object change (position, size)
• or addition, removal
• Update BVH
• Reevaluate cuts, pushing up or down
• BVH nodes store pointers to cut nodes to quickly determine which nodes in which cuts require adjustment
![Page 53: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/53.jpg)
Query Cut Updates
• Some BVH updates cause major adjustments to tree
• Merge/split
• ... and splits can even percolate all the way up to the root
• insertion where all ancestors are full
![Page 54: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/54.jpg)
Query Cut Updates
• Current approach
• “Lift” all cuts to stable point
• Mark for retraversal and update
• Simple but expensive
A B C D
E F
G
A
![Page 55: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/55.jpg)
Query Cut Updates
• Current approach
• “Lift” all cuts to stable point
• Mark for retraversal and update
• Simple but expensive
A B C D
E F
G
A
F
![Page 56: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/56.jpg)
Query Cut Updates
• Current approach
• “Lift” all cuts to stable point
• Mark for retraversal and update
• Simple but expensive
A B C D
E F
G
A D’
![Page 57: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/57.jpg)
Query Cut Updates
• Current approach
• “Lift” all cuts to stable point
• Mark for retraversal and update
• Simple but expensive
A B C D
E F
G
A D’
![Page 58: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/58.jpg)
Query Cut Updates
• Any approach that:
• ensures the cut remains structurally valid
• marks the cut for re-traversal using update procedure
• will work
• More complicated solution might keep cut closer to final cut, making update cheaper
![Page 59: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/59.jpg)
Considerations
• Updating queries:
• due to object motion can be expensive
• due to query motion almost always better than re-evaluating one-off query
• Polling might be cheaper for frequent movement, especially of objects
• or when reevaluating position due to velocity frequently
![Page 60: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/60.jpg)
Considerations
• Trees for static vs. dynamic objects
• Also reduces maintenance cost by isolating frequently adjusted nodes in their own tree
• Static tree: cut-based, event-driven queries
• Dynamic tree: poll-based queries
![Page 61: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/61.jpg)
Reporting Results
• Deltas on result set (additions, removals)
• Sort by solid angle
• Prioritize additions
• But probably not the dominant factor in quality over time
• Downloading content likely much slower
![Page 62: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/62.jpg)
Outline
• Motivation
• Previous Work
• BVH++
• Continuous Queries and Cuts
• Distributed Queries
![Page 63: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/63.jpg)
Distributed
• Each space server starts out only with local objects
SS 1 SS 2
A B
Local
C D
Local
![Page 64: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/64.jpg)
Distributed
• Space servers aggregate queries and send one query to each other space server
SS 1 SS 2
A B
Local
C D
LocalQ(1 -> 2)
Q(2 -> 1)
![Page 65: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/65.jpg)
Distributed
• Results from these queries used to maintain global tree
SS 1 SS 2
A B
Local
C D
Local
A
B
Global
C A
Global
C D B
![Page 66: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/66.jpg)
Distributed
• Global tree answers queries from connected objects
SS 1 SS 2
A B
Local
C D
Local
A
B
Global
C A
Global
C D B
Q(A) Q(C) Q(D)
(Object Hosts)
![Page 67: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/67.jpg)
What about updates?
• Loc takes care of updates
• PIntO triggers subscriptions in Loc automatically
• For other servers and connected objects
![Page 68: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/68.jpg)
Server Discovery
• How do servers know to query each other?
• PIntO service
• Collects region, max object size, and query from space servers
• Answers queries about which servers have objects that might satisfy query
• Same data structure works!
![Page 69: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/69.jpg)
SS NSS 1
PIntO Conceptual Model
S S S S
A C D B E F G H
PIntO Service
...
Space Servers
Objects
![Page 70: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/70.jpg)
Evaluations
• # of servers
• Very limited in range query (4 or 8 neighbors)
• Potentially all servers for solid angle
• # of objects in global tree
• Efficiency of query aggregation
• # objects returned in object query / # objects returned by server queries ?
![Page 71: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/71.jpg)
![Page 72: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/72.jpg)
Insertion
• Recursively select best child node
• Min volume increase
A B C D
E F
G
![Page 73: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/73.jpg)
Insertion
• Recursively select best child node
• Min volume increase
A B C D
E F
G
X
![Page 74: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/74.jpg)
Insertion
• Recursively select best child node
• Min volume increase
A B C D
E F
G
X
F
![Page 75: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/75.jpg)
Insertion
A B C D
E F
G
X
• Split nodes as necessary
• Possibly reorders children
• May obtain new root
![Page 76: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/76.jpg)
Insertion
• Split nodes as necessary
• Possibly reorders children
• May obtain new root
A B C D
E F
G
X
F’
G
![Page 77: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/77.jpg)
Insertion
• Split nodes as necessary
• Possibly reorders children
• May obtain new root
A B C D
E F
G
X
F’
G G
H
![Page 78: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/78.jpg)
![Page 79: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/79.jpg)
Deletion
• Find leaf node (hash table)
A B C
E F
G
D
![Page 80: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/80.jpg)
Deletion
• Find leaf node (hash table)
A B C
E F
G
C D
![Page 81: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/81.jpg)
Deletion
• Remove
• Merge parent’s children if:
• All children are leaf nodes
• Fewer children than branching factor
A B
E F
G
C D
![Page 82: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/82.jpg)
Deletion
• Remove
• Merge parent’s children if:
• All children are leaf nodes
• Fewer children than branching factor
A B
E F
G
D
![Page 83: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/83.jpg)
Deletion
• Remove
• Merge parent’s children if:
• All children are leaf nodes
• Fewer children than branching factor
A B
E F
G
D
F
D
![Page 84: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/84.jpg)
Deletion
• Remove
• Merge parent’s children if:
• All children are leaf nodes
• Fewer children than branching factor
A B
E F
G
D
![Page 85: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/85.jpg)
Deletion
• Remove
• Merge parent’s children if:
• All children are leaf nodes
• Fewer children than branching factor
A B
E F
G
F’
![Page 86: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/86.jpg)
![Page 87: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/87.jpg)
Split
• Select two seeds for new nodes
• e.g. pair of objects (nodes) that cause worst increase in volume
• Add each object to one group
• based again on which causes the least harm
![Page 88: PIntO - sing.stanford.eduServer Discovery • How do servers know to query each other? • PIntO service • Collects region, max object size, and query from space servers • Answers](https://reader034.fdocuments.in/reader034/viewer/2022050211/5f5d8173e2645f02a45c0e1d/html5/thumbnails/88.jpg)