Comments (8)
Currently, in kvrocks, the default namespace is a very special namespace, and admins cannot switch the default namespace to another one. This has some significant drawbacks, such as certain admin operations can only be performed in the default namespace.
We can achieve this by supporting the switch namespace API? The initial design didn't expect the admin to change data of other namespaces except to maintain the namespace/token pair itself. And I do agree the default namespace is very special, but it's to align with the Redis authentication way.
from kvrocks.
I have learned kvrocks for some time. I have the will to implement that (or have a try).
There are two questions.
- Current namespace name is not modifiable, token can be modified by function(namespace set). Does changable 'name' refer to token?
- Default namespace is a literal value. How to make it modifiable, is it through config file ?
from kvrocks.
Yeah, IIRC it's currently something like __namespace
, but I think it's better to be changable.
I don't know which one is better: store in rocksdb or in the config file.
cc @mapleFU @git-hulk do you have any idea?
from kvrocks.
Also another big issue is to be compatible to old version: users can use new version of kvrocks with their old data, and they want these old data can work well.
from kvrocks.
@PragmaTwice I'm not quite sure why we want to make it changeable. If for the space overhead consideration, it shouldn't take much more than the shorter one since the rocksdb has internal compression for the common prefix.
from kvrocks.
Because I believe the default namespace should have the same status as other namespaces.
Currently, in kvrocks, the default namespace is a very special namespace, and admins cannot switch the default namespace to another one. This has some significant drawbacks, such as certain admin operations can only be performed in the default namespace.
I think this is a design flaw in kvrocks, and correcting it would require some cost at present.
from kvrocks.
Just curious why it should be changable? Is there any reason for that?
Because I believe the default namespace should have the same status as other namespaces.
It's a good reason but I think we have too many legacy user and perhaps this means maintaining two parts of code?
from kvrocks.
If there is a good solution, we can avoid maintenance difficulties and correct this problem. (But TBH, design errors in the early stage will lead to unbearable costs, and everyone should understand this truth.)
Perhaps it's time for us to reconsider the authentication and permission management in kvrocks.
from kvrocks.
Related Issues (20)
- Data structure desgin documentation of STREAM GROUP HOT 2
- Add support of hash field expiration HOT 1
- Refactor the management of rocksdb ColumnFamily HOT 7
- Add support for Xcode HOT 1
- Memory limits on connections HOT 2
- Enable the new data type encoding by default HOT 2
- Introduce the key encoding version HOT 3
- Move the performance benchmark to website
- Optimize the implementation of IntervalSet intersection HOT 1
- [Build] Add supports for build kvrocks with UBSAN
- [Tools] Add a git commit hook for clang-format checking HOT 3
- Add option to INFO to return a json payload HOT 13
- should we start the compaction_checker_range thread if it's not configed. HOT 3
- TLS test case seems broken
- Read the determined rocksdb snapshot by passing the Context parameter HOT 18
- Improve error handling and logging for Retryable IO Errors HOT 13
- Add support for the TOUCH command HOT 2
- Potential data inconsistency issues? HOT 2
- Transaction with FlushDB:DeleteRange unsupported in WriteBatchWithIndex
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from kvrocks.