-
Notifications
You must be signed in to change notification settings - Fork 96
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
Feasibility of modifying to use Amazon DynamoDB in place of filesystem #16
Comments
Hi, JDBM currently have those layers (from consumer down to raw disk)
And if I understand correctly, this proposal is about JDBM using alternative implementations at level 4. I think this is very good idea and will definitely implement it. My idea is: JDBM will export one more interface called RecordManager with methods like this:
User may supply alternative implementation in DBMaker. In this case JDBM will use other db as back-end, but user will still get instance cache, collections, serialization and other honey JDBM provides. Only problem is that I am not going to write wrapper for DynamoDB (have no access to Amazon WS). Reference wrapper implementation will use LevelDB or Tokyo Cabinet. JDBM will also still support only single transaction per store. ETA 2 weeks. |
Thank you for the reply! I'll check back in a couple of weeks. |
Hi, https://github.com/jankotek/JDBM3/blob/master/src/main/java/net/kotek/jdbm/RecordManager.java |
I decided not to implement this. Multiple key-value would complicate design too much. I reverted previous GIT commit |
ok, thanks for letting me know. |
DynamoDB is a simple key-value store. How much work would it be for me to modify JDBM3 to use DynamoDB with key-values of <block-id, block-contents> in place of filesystem calls, so I could use JDBM3 in a multi-user environment?
DynamoDB doesn't supports transactions, but it does support conditional updates. I'm ok with disabling transaction support and caching. But I'm wondering what would happen during a b-tree leaf node split that required the parent be split as well, if the server crashed half-way through the split. Would it leave the b-tree in an unusable state, or would whatever was just added simply be lost?
I'm sure glad to see that you're doing this. I want to be able to store sorted collections in DynamoDB, and I was afraid that I was going to have to implement the b-tree logic myself. I know that DynamoDB supports sorted collections using two-part keys, but there are performance implications, so I'd rather not use them if I can avoid it.
The text was updated successfully, but these errors were encountered: