- Name: Noneback (@noneback)
- Organisation: Casbin
- Project link: https://summerofcode.withgoogle.com/programs/2022/projects/aDqhj3nt
- Repository link: https://github.com/casbin-mesh/neo
- Project Name: An alternative tuple-storage engine for Casbin Mesh
Casbin NEO(neo for new engine option), A Casbin-compatible engine. In this project, we restructured the Casbin storage layer, introduced a powerful expression interpreter, and supported transactions executing under the snapshot isolation level.
- We implemented the volcano executors.
- All new expression interpreter designed for Neo engine.
- We introduced MVTO (multi-version timestamp ordering) as the index layer concurrency control protocol
- We introduced a state-of-the-art radix tree, sync adaptive radix tree
feat(schema): basic framework of schema
chore(examples): add model assets
feat(adapter/badger): add badger adapter
feat(adapter/badger): add managed txn defs
feat(neo/model): add model defs
feat(model): add model serialization
feat(neo/model): add indexColumn
fix(neo/codec): fix index encode bugs
feat(neo/codec): add model decoder
feat: introduce executor engine
feat: introduce insert executor
feat(neo/executor): introduce plan builder
feat(neo/executor): add multi-index & index scan executor
refactor(neo/executor): refactor index & multi-index scan executor
feat: sync adaptive radix tree
feat(neo/index): add simple mvto index
feat(pkg/parser): impl expression eval
refactor(expression/iterator): refactor iterators
feat(pkg/expression): introduce expression subtree pruning
feat(neo/executor): introduce expressions as predicates
feat: introduce executor engine
test(neo/executor): add tests for insert executor