Xiang
Xiang
@cep21 Awesome. Thanks!
I looked into it more. I think actually the db itself is corrupted during page split? (or we failed to reload the nodes correctly) There are 3 duplicated keys in...
@benbjohnson No. Each key is put only once without any buffering, so no future access. But I will double check.
@benbjohnson I suspect the split code is the cause ```go // Split inodes across two nodes. next.inodes = n.inodes[splitIndex:] n.inodes = n.inodes[:splitIndex] ``` We do not copy the backing array....
On the second thought, it might not be the exact cause. We put keys sequentially. We do not miss any keys, but there are 3 duplicates in between. Basically it...
@benbjohnson ```go package playground import ( "sync" "github.com/boltdb/bolt" ) type store struct { sync.Mutex revision int tx *bolt.Tx db *bolt.DB } func (s *store) put(value []byte) { s.Lock() defer s.Unlock()...
The put bytes are generated by marshaling a protobuf request, so it will never be accessed again. The get part is not exactly accurate. we actually unmarshal the data into...
@josharian We hit the same issue in etcd. etcd keeps all historical keys in boltdb. Users can compact keys, thus suddenly free up a lot of boltdb pages. Then the...
If we decide to implement this either in the spec or as a trait, please make the init behavior deterministic. In the early version of Kubernetes, init container is expected...
@gyliu513 The SIG APP CRD is designed mainly for storing metadata, showing status, and dashboard visualization. OAM is more for defining the application so that it can be deployed and...