- 14 Apr, 2020 1 commit
-
-
Kirill Smelkov authored
-
- 05 Apr, 2020 4 commits
-
-
Kirill Smelkov authored
* master: go/zodb: Provide String for events go/zodb/*: Cosmetics
-
Kirill Smelkov authored
This helps when events are printed and logged.
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
- 04 Mar, 2020 1 commit
-
-
Kirill Smelkov authored
-
- 14 Feb, 2020 2 commits
-
-
Kirill Smelkov authored
* master: go/zodb/*: Fix Python database generators to work with ZODB5 + preserve DB compatibility with ZODB3
-
Kirill Smelkov authored
Paralleling nexedi/zodbtools@0b6f99da. All test databases in */testdata/ stay as before bit-to-bit the same.
-
- 10 Feb, 2020 5 commits
-
-
Kirill Smelkov authored
* master: (79 commits) go/zodb/zodbtools: Regenerate test data + fix go/zodb/fs1: Regenerate go/neo/proto: Regenerate go/neo/proto: Fix protogen to work without prior `go install` go/*: Add Unwrap to custom errors that have Cause go/zodb/btree: Represent a tree node - either BTree or Bucket - by Node go/zodb: Cosmetics go/zodb: LiveCache: Reclassify all objects on cache control change go/zodb: LiveCache: Allow objects to be pinned / omitted from the cache go/zodb: Prepare to rework/fix LiveCache control go/zodb: persistent tests: Factor test database setup out of TestPersistentDB go/zodb: persistent test: Fix thinko in tPersistentDB.checkObj go/zodb: Don't expose LiveCache internal organization onto its users go/zodb: OpenStorage -> Open go/zodb: LastTid -> Sync + Head go/zodb: DB: preserve δtail not to go down to ø slice on seldom commits go/zodb: ΔTail += Data() go/zodb/*: Cosmetics, typos, ... go/zodb: Connection.Resync go/zodb: DB: handle invalidations ...
-
Kirill Smelkov authored
The only change is extra LF that is appended to end of 1.zdump.pyok due to nexedi/zodbtools@624aeb09. Correspondingly fix dump on zodbtools/go side.
-
Kirill Smelkov authored
The only update comes from b@8c9698d6
-
Kirill Smelkov authored
Rerun `go generate` for this package. Updates come due to updated `stringer`. zproto-marshal.go stays the same.
-
Kirill Smelkov authored
When trying to regenerate zproto-marshal.go on a fresh go workspace I got: (neo) (z-dev) (g.env) kirr@deco:~/src/neo/src/lab.nexedi.com/kirr/neo/go/neo/proto$ go generate typecheck: ../../zodb/zodb.go:174:2: could not import lab.nexedi.com/kirr/go123/mem (can't find import: "lab.nexedi.com/kirr/go123/mem") exit status 1 proto.go:57: running "sh": exit status 1 Digging around a bit this turned out to be due to that importer.Default() is using packages in only binary installed form: https://github.com/golang/go/issues/19334#issuecomment-283430322 https://github.com/golang/go/issues/11415 Fix it by using "source" importer which always looks at sources. (zproto-marshal.go stays unchanged after `go generate` rerun)
-
- 16 Jan, 2020 1 commit
-
-
Kirill Smelkov authored
So that Go1.13 and golang.org/x/xerrors understand the wrapping: https://blog.golang.org/go1.13-errors Preserve Cause for compatibility with github.com/pkg/errors.
-
- 15 Jan, 2020 1 commit
-
-
Kirill Smelkov authored
-
- 12 Jan, 2020 4 commits
-
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
- 07 Jul, 2019 1 commit
-
-
Kirill Smelkov authored
-
- 06 Jun, 2019 2 commits
-
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
- 24 May, 2019 1 commit
-
-
Kirill Smelkov authored
-
- 12 Apr, 2019 2 commits
-
-
Kirill Smelkov authored
-
Kirill Smelkov authored
This allows to use proper btree.Node type - not just zodb.IPersistent - in places which expects a tree node.
-
- 02 Apr, 2019 2 commits
-
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
- 12 Mar, 2019 13 commits
-
-
Kirill Smelkov authored
More comments, typos, ...
-
Kirill Smelkov authored
If cache control changes, all objects needs to go through new cache control as what was e.g. pinned before could be in other class from the point of view of new cache control. Tests pending...
-
Kirill Smelkov authored
We already have LiveCacheControl and policy to keep object state in live cache. However that state is currently kept only until the object is present in the cache, and the object is there currently only until there are live pointers to the object from anywhere. If all such pointers go away, LiveCache currently discards the object. Add a way (PCachePinObject) to tell live cache that it must retain an object even if there are no other pointers to it. This is needed for Wendelin.core which semantically relies on some objects to be present in live cache, even if in ghost state, for propagating ZODB invalidations into OS pagecache: https://lab.nexedi.com/kirr/wendelin.core/blob/000bf16359/wcfs/wcfs.go#L245 For symmetry add a way (PCacheDropObject) to tell live cache that it must not retain an object. This makes sense for objects that are read in large only once to avoid needlessly evicting all other objects while making the room for what won't be soon used again. For completeness add also a way (PCacheDropState) to tell live cache that the state of this object should not be cached. This can make sense even for objects that are pinned: for example Wendelin.core pins ZBlk objects to rely on volatile metadata it attaches to them, but have to drop ZBlk state that was loaded from database: that state is propagated to be cached in OS pagecache, and keeping it also in ZODB live cache would just waste RAM. Finally add test to cover LiveCache/LiveCacheControl functionality in detail.
-
Kirill Smelkov authored
We are going to rework LiveCache to support both retaining objects in cache even though if all pointers to them went away (currently such objects disappear from cache), and to tell the cache that such and such object should not be cached at all, e.g. not to evict all other objects on one-time large reads. This will be done by LiveCacheControl giving cache policy classification for an object. Prepare for that and change WantEvict(obj) -> bool to PCacheClassify(obj) PCachePolicy which can give more information to LiveCache about how to handle an object. This is only a preparatory patch as there is neither no new functionality nor fixes here.
-
Kirill Smelkov authored
We already have "testing connection" functionality in common place (was named tPersistentDB -> now tConnection). However the functionality to "setup and use testing database" was inside TestPersistentDB only. Since we are going to add more tests, factor that functionality out of TestPersistentDB into shared infrastructure that could be reused in between tests (-> tDB).
-
Kirill Smelkov authored
It was printing oid instead of obj.
-
Kirill Smelkov authored
Provide functions to: - set cache element - iterate through all elements LiveCache organization will be changed in the following patch, and it is better to keep the knowledge about its internal structure localized.
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-