17 Commits

Author SHA1 Message Date
pkj415
7a4ff37837 Set theme jekyll-theme-cayman 2020-05-02 10:04:10 -05:00
Piyush Jain
f611655f07 Added a comment 2020-05-01 07:57:20 -05:00
Piyush Jain
9d2b38a7cd 1. Added comment about the meaning of deleted in a content info and how it differs in Vanilla GC and GC2 as of now.
2. Added a comment about the two different ways to merge indices using MergeIndices.
2020-04-21 15:10:39 -05:00
Piyush Jain
00334f63b7 Minor fix in GetContentInfoCheck and GetContentInfoCheck2 2020-04-21 15:01:55 -05:00
Piyush Jain
b7f2288fd7 Using a simple version of MergeIndices 2020-04-21 14:59:53 -05:00
Piyush Jain
40bb5d2f6f Minor fix in GetContentInfo 2020-04-21 14:12:46 -05:00
Piyush Jain
1f2661e278 Minor fix in DeleteContents 2020-04-20 22:35:28 -05:00
Piyush Jain
1c8e1c1f0d Minor fix in DeleteContents 2020-04-20 22:14:13 -05:00
Piyush Jain
a4c4fbcdae Fixed GetContentInfo to return the correct content in case there exists a deleted and a normal content info entry with the same timestamp 2020-04-18 16:42:35 -05:00
Piyush Jain
5dfe4413ac 1. Added invariant to check if GetContentInfo returns a deleted content info even when there exists
a normal content info with the same timestamp.
2. Added another invariant to check if GetContentInfo returns only the latest content.
3. Added a few TODOs
2020-04-18 16:37:00 -05:00
Piyush Jain
2ede30ad3b 1. Minor bug fix when calling MergeIndices from FlushIndex.
2. Renamed index_blobs to index, as there are no blobs now.
2020-04-14 10:11:53 -05:00
Piyush Jain
f4e6bb3016 1. GC changes tested
2. Added no-op time ticks back. Reasoing - Consider the scenario where there is just one snapshot which writes a few contents and stays in pending state for some time (says x seconds) until it reaches its
   MaxSnapshotTime. During these x seconds, no GC process can garbage collect the contents written by the partial snapshot. However, the contents might get garbage collected once those x seconds are over.   So, consider that there is a GC process that starts after these x seconds have passed and then garbage collects the contents. But in the TLA+ spec, the timestamp will tick only if some tangible step
   occurs - some contents are written/ flushed, a snapshot is deleted, a GC is started, etc. Avoiding no-op time ticks prevents the spec from capturing the scenario explained.

   And hence, I am reverting the change of avoiding no-op time ticks. Maybe we can revisit the issue of no-op ticks later, if needed.
2020-04-13 21:56:49 -05:00
Piyush Jain
cea14afb3c Reduced index blobs to a set. This reduces the state space, index compaction
happens on each index flush by a snapshot process.

The handling for GetContentInfo needs to handle deleted entries. Will be done later.
2020-04-13 00:26:58 -05:00
Piyush Jain
af141ba5cc 1. Disallow no-op time ticks. Reduce state space.
2. Added GC steps. Need to test, the state space is exploding after adding the 3 possible GC processing steps.
3. Added 2 TODOs -
	One for GetContentInfo
	One for TriggerGC
2020-04-12 23:49:05 -05:00
Piyush Jain
0fca0eee78 Minor refactor and just added variable for maintaing GCs 2020-04-12 10:25:57 -05:00
Piyush Jain
cfab3604a6 Major changes -
1. Removed blobs (re-include if later it becomes necessary to specify blob compaction)
	2. Used bags for index_blobs and snapshots to reduce state space.
	3. Added a global time ticker, instead of the complicated method of "possible" incremeting timer while flushing.
	4. Added a status flag to the snapshot record.
	5. Snapshot were filled with the contents they are to write while triggering. Changed that to choose any contents before snapshot completion.
	   This saves the state space - an incomplete snapshot (i.e., only part of intended contents written before MaxSnapshotTime) is same as another
	   incomplete snapshot that wrote the same contents but had a larger set of intended contents to be written.
2020-04-11 10:11:28 -05:00
Piyush Jain
14aa874037 Initial commit. Abstract model of blobs, indexes, and snapshots. Needs fixes and optimizations 2020-04-10 15:51:35 -05:00