Skip to content
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

Take lessons from other popular systems #74

Open
albe opened this issue Sep 22, 2019 · 3 comments
Open

Take lessons from other popular systems #74

albe opened this issue Sep 22, 2019 · 3 comments

Comments

@albe
Copy link
Owner

albe commented Sep 22, 2019

Some notable projects from where to take inspirations or lessons:

@albe
Copy link
Owner Author

albe commented Sep 26, 2019

A lot of the architecture is already very similar to some of those systems. The API was inspired by EventStore, the storage semantics are very similar to Kafka (coincidentally).

Kafka uses the file offset as the document index id, which saves storing that additionally, but comes at the cost of not being (easily) able to do optimistic concurrency checks, which makes Kafka unfit for an event store, which requires consistency guarantees.
Kafka uses the storage format without transformation as the communication format, which allows sendfile usage and avoids copying of data, when sending it from a node. This is currently not necessary, since event-storage currently has no replication and is single-machine.
EventStore chunks the log file for "operational reasons such as incremental back ups", which makes sense. Maybe the partitions should themself be chunked into multiple files, in which case it would make more sense to keep each partition in an own folder to reduce inode usage.

@albe
Copy link
Owner Author

albe commented Jul 25, 2020

See #122 for the last observation/finding.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant