-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: filemanager storage class #851
Conversation
…rls aren't returned for archived data
@reisingerf Flo, pls help review. |
Update
|
@mmalenic remind me: do all those additional events create new records or rather annotations on records? I don't think we are having any performance issues for now, so happy to go with it. |
Yes, this will create additional new records. I think this is conceptually more in-line with filemanager's append-style record log. This way, no information is lost between state changes and a history of restored/archived objects is kept, all linked via the In terms of performance, this will increase the size of the table, but I think that's okay, because the records are indexed on the I get your concern though. This would increase the rate at which historical records get generated, and would slow down historical data queries. In practice though, there shouldn't be that many more records being created right? It would be one set for archiving from standard to glacier, and then for each restore there would be another set? Either way, I don't think I've run out of postgres-native optimizations for this kind of stuff. I can still do a true partition on the |
There is the possibility to update the head record instead - happy to be convinced here. I could get I think |
Does this mean data copied out of archived to the restored folder will have the same ingest id? |
Yes, should be the same. Both when it gets restored and coped out. |
All good! |
…en determining `is_accessible`
Update
My plan was to merge this tomorrow because my restored test object is set to expire tomorrow and I wanted to check that this works deployed with S3. @alexiswl Does that work for #819? I think this PR should work now anyway so happy to merge it early. |
Closes #322
Changes
s3:ObjectRestore:*
,s3:LifecycleExpiration:*
,s3:LifecycleTransition
ands3:IntelligentTiering
.s3:LifecycleExpiration:*
creates anotherDeleted
event, whereas the others appendCreated
events to thes3_object
table. Because of theingest_id
, these are tracked and linked as the same object.s3:ObjectTagging:*
are not tracked because the ingester logic handles creating/retrieving tags usingGetObjectTagging
.reason
column which gives more details on what caused the record to be inserted. This maps to the second component for the event types, such as thePut
orCopy
ins3:ObjectCreated
events.archive_status
forIntelligentTiering
objects, which was missing before.is_accessible
column to determine whether an object can be retrieved immediately, or needs to be restored.DeepArchive
orGlacier
, and for objects withArchiveAccess
orDeepArchiveAccess
.reason
,archive_status
andis_accessible
. This should be a non-breaking change because it only adds optional parameters.