Fork me on GitHub
#xtdb
<
2021-08-12
>
Karol Wójcik07:08:40

Hello. Are there any plans of dynamodb kv store?

ordnungswidrig09:08:25

I had given a ddb tx-log a shot in the past if that's of your interest https://github.com/ordnungswidrig/crux-dynamodb (Most likely a little outdated)

Karol Wójcik09:08:25

Actually I'm looking for official module that could be safely used in production.

jarohen10:08:22

Hey @UJ1339K2B 👋 Not likely from the core team I'm afraid. While DynamoDB may well be acceptable for a tx-log/doc-store (as implemented by @U054UD60U above), the Crux query engine is currently quite chatty - its speed depends on having very low latency to its indices, so we recommend storing these on a fast local disk.

✔️ 3
refset11:08:11

It looks like Casey got pretty far with a KV store implementation using the hitchhiker tree lib (although didn't get it working reliably, apparently) https://github.com/csm/crux-kv-hitchhiker-tree/blob/trunk/src/crux/kv/hitchhiker_tree.clj - I hadn't spotted that before but it's quite cool. A more native (& mutable!) KV implementation might use Dynamo's Global Secondary Indexes but they have a hard limit of 10GB https://docs.amazonaws.cn/en_us/amazondynamodb/latest/developerguide/bp-indexes-general.html#bp-indexes-general-expanding-collections

ordnungswidrig11:08:01

What about a memory cache backed by a DDB kv Store. Does this make any sense?

3
jarohen11:08:22

I think we'd have to cache the absence of keys, too, otherwise we'd have to go back to the source every time... :thinking_face:

jarohen11:08:02

As in, we'd have to know that the cache contained every key from a certain range in order to avoid the run to DDB

jarohen11:08:13

I haven't given it much thought, as you can probably tell 🙂

jarohen11:08:11

That does sound a little like 'database cracking', thinking about it - an idea we've had on our radar but haven't had the chance to properly investigate as yet

Jakub Holý (HolyJak)10:08:21

Hi! Got the idea that it would be awesome if the individual cases on https://opencrux.com/solutions/solutions.html had their own id=.. on the heading DOM element so that it would be possible to link directly to a particular one 🙏

jarohen11:08:04

sounds good to me 🙂 easy enough, @U01AVNG2XNF?

😍 4
Steven Deobald12:08:47

@U0522TWDA Happy to. Out of curiosity, what's your particular use case for this? Are you sending quite a few people to http://opencrux.com these days? 🙂

❤️ 3
Jakub Holý (HolyJak)13:08:59

I am doing a research about what best to use to replace our MongoDB and listing pros/cons of the possible solutions. Linking to the most relevant case studies helps highlight the value of Crux.

Steven Deobald13:08:33

Sold. 😉 I'll get it done today.

Steven Deobald16:08:28

@U0522TWDA There isn't a ToC or anything yet, but all the anchor ids are on <a> tags with an anchor class. The ids are identical to the titles of each section, but you can find them by inspecting the title and scrolling up a bit in the source to find the anchors. ex. https://opencrux.com/solutions/solutions.html#temporal-metadata-management Sorry this took a minute. The Crux website is undergoing a badly-needed revamp as we speak but the legacy SSG+CSS leaves much to be desired.

Jakub Holý (HolyJak)16:08:47

Awesome, thanks a lot!

sheluchin14:08:19

Is there somewhere I can see a list of the keys I can define in the config map that gets passed to crux/start-node?

jarohen14:08:57

It's an open map, depending on what modules you want to start up - best to look at the documentation of the individual modules on https://opencrux.com/reference. If you've questions about specific modules, feel free to give us a shout 🙂

sheluchin14:08:00

Is there a set of options that the crux-core module accepts?

jarohen14:08:48

There's very little to crux-core itself - it's essentially an in-memory database, nearly all of the behaviour is brought in via modules. You might find what you're looking for in https://opencrux.com/reference/configuration.html though?

jarohen14:08:01

What are you trying to do?

sheluchin14:08:12

I'm just getting started with integrating Crux into my app. Pretty new to Clojure. Just wanted to see what options were available and how I would find that info.

sheluchin14:08:06

I guess for now I'll stick with just using an empty map for my in-memory Crux. Thanks for the pointers.

jarohen14:08:46

That's probably the easiest thing to do tbh, yeah, and then you can build up knowledge of more modules as you need them 🙂 good luck!

👍 3
Steven Deobald15:08:11

@UPWHQK562 There's also https://opencrux.com/howto/quickstart.html if you want the shortest path to getting a Crux node up and running with records on disk.

sheluchin15:08:15

@U01AVNG2XNF Thank you. Looks like that'll be one of my next steps.

allandaviesza07:08:21

Here's an SQLite config from one of my projects, nice for dev and keeps data between restarts

🙏 6
Steven Deobald14:08:58

Interesting. That code block doesn't make its way across into Zulip-land. 😕