[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: TAXII Pagination
All,
In TAXII 2.1 we have a pretty good pagination solution, but it suffers from a known issue when multiple records have the same date added value. We originally
tried to address this by saying that the date added value MUST be microsecond level precision. But that is not sufficient for some.
As such, I have been working with Looking Glass on a potential solution that requires the least amount of changes to make this work. After many back-and-forth versions, I think we have something that might work. Please review.
TAXII Pagination Proposal
To keep things simple, for mental visualization, we will be defining the scenarios in terms of small numbers. But one must realize that in production, these numbers will be many orders of magnitude larger.
1 Fundamental Design Goals
Completely stateless for the server in the true RESTful sense
Simple way for clients to start synchronization after some point in time, without having to sync the entire collection.
Example: A collection may have billions of records in it going back 10 years. But a client really only cares about syncing or getting data from the past 6 months.
Need ability to paginate records where every record has its own date_added value
Need ability to paginate records where many records may have the same date_added value
2 Proposed Solution Summary
3 Scenario
The collection has 200 indicator records, however, the first 100 records all have the same date_added timestamp
3.1 Problem
Our current method breaks if and only if, the client has a limit of less than 100 or the server artificially limits the records to less than 100. Under this condition the client will not get all of the records or will have inconsistent experience.
3.2 Example Initial Request From Client
?added_after=2010-01-01T01:01:01.123456Z&limit=20
3.3 Server Processes Query Request
The server queries the datastore with a record limit of 21 records (client provided or server limited limit value + 1) that match the rest of the request
3.4 Example Follow On Request From Client
?added_after=2010-01-01T01:01:01.123456Z&limit=20&next=123456789
If we can verify that this does solve the issue, and is still easy to implement (I believe so) this is something that we could do for TAXII 2.1, if the TC agrees. Yes it would require another CSD and Public Review, but it would allow us to address this
last known issue.
Thoughts ????
Bret
|
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]