Skip to content
This repository has been archived by the owner on Dec 23, 2024. It is now read-only.

Commit

Permalink
feature/docs: improve documentation (#27)
Browse files Browse the repository at this point in the history
* feature/docs: fix static path & add 1 more line about vhsard library base & add logo image alt
* feature/docs: add quickstart guide

---------

Co-authored-by: Maksim Konovalov <maksim.konovalov@vk.team>
  • Loading branch information
KaymeKaydex and Maksim Konovalov authored Jul 18, 2024
1 parent cb8c86a commit 33d6172
Show file tree
Hide file tree
Showing 7 changed files with 51 additions and 9 deletions.
10 changes: 6 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Go VShard Router

<img align="right" width="159px" src="docs/logo.png">
<img align="right" width="159px" src="docs/static/logo.png" alt="логотип go vshard router">

[![Go Report Card](https://goreportcard.com/badge/github.com/KaymeKaydex/go-vshard-router)](https://goreportcard.com/report/github.com/KaymeKaydex/go-vshard-router)
[![codecov](https://codecov.io/gh/KaymeKaydex/go-vshard-router/graph/badge.svg?token=WLRWE97IT1)](https://codecov.io/gh/KaymeKaydex/go-vshard-router)
Expand All @@ -11,7 +11,7 @@ Translations:


go-vshard-router is a library for sending requests to a sharded tarantool cluster directly,
without using tarantool-router. go-vshard-router takes a new approach to creating your cluster
without using tarantool-router. This library based on [tarantool vhsard library router](https://github.com/tarantool/vshard/blob/master/vshard/router/init.lua). go-vshard-router takes a new approach to creating your cluster

Old cluster schema
```mermaid
Expand Down Expand Up @@ -181,6 +181,8 @@ func main() {
}
```
### Learn more examples
#### Quick Start
Learn with th [Quick Start](docs/doc.md), which include examples and theory.
#### [Customer service](examples/customer/README.md)
Service with go-vshard-router on top of the tarantool example from the original vshard library using raft

Expand All @@ -196,6 +198,6 @@ at a load close to production

```select```
- go-vshard-router: uncritically worse latency, but 3 times more rps
![Image alt](docs/direct.png)
![Image alt](docs/static/direct.png)
- tarantool-router: (80% cpu, heavy rps kills proxy at 100% cpu)
![Image alt](docs/not-direct.png)
![Image alt](docs/static/not-direct.png)
12 changes: 7 additions & 5 deletions README_ru.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Go VShard Router

<img align="right" width="159px" src="docs/logo.png">
<img align="right" width="159px" src="docs/static/logo.png" alt="go vshard router logo">

[![Go Report Card](https://goreportcard.com/badge/github.com/KaymeKaydex/go-vshard-router)](https://goreportcard.com/report/github.com/KaymeKaydex/go-vshard-router)
[![codecov](https://codecov.io/gh/KaymeKaydex/go-vshard-router/graph/badge.svg?token=WLRWE97IT1)](https://codecov.io/gh/KaymeKaydex/go-vshard-router)
Expand All @@ -10,7 +10,7 @@ Translations:
- [English](https://github.com/KaymeKaydex/go-vshard-router/blob/main/README.md)

go-vshard-router — библиотека для отправки запросов напрямую в стораджа в шардированный кластер tarantool,
без использования tarantool-router. go-vshard-router применяет новый подход к созданию кластера
без использования tarantool-router. Эта библиотека написана на основе [модуля библиотеки tarantool vhsard router](https://github.com/tarantool/vshard/blob/master/vshard/router/init.lua). go-vshard-router применяет новый подход к созданию кластера

Схема кластера с tarantool-proxy
```mermaid
Expand Down Expand Up @@ -182,8 +182,10 @@ func main() {

```
### Ознакомьтесь с другими примерами
#### Быстрое начало
Познакомьтесь с [Полной документацией](docs/doc.md), которая включает в себя примеры и теорию.
#### [Customer service](examples/customer/README.ru.md)
Сервис с go-vshard-router поверх примера тарантула из оригинальной библиотеки vshard с использованием raft
Сервис с go-vshard-router поверх примера тарантула из оригинальной библиотеки vshard с использованием raft.

## Бенчмарки

Expand All @@ -198,6 +200,6 @@ func main() {

```select```
- go-vshard-router: uncritically worse latency, but 3 times more rps
![Image alt](docs/direct.png)
![Image alt](docs/static/direct.png)
- tarantool-router: (80% cpu, heavy rps kills proxy at 100% cpu)
![Image alt](docs/not-direct.png)
![Image alt](docs/static/not-direct.png)
1 change: 1 addition & 0 deletions docs/doc.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Go-Vshsard Quick Start
37 changes: 37 additions & 0 deletions docs/doc_ru.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Go-Vshsard Полная документация


## Содержание

- [Цели и задачи библиотеки](#цели-и-задачи-библиотеки)
- [Теория](#теория)
- [Tarantool](#tarantool)
- [Шардирование](#шардирование)
- [Начало тестирования](#начало-тестирования)

# Цели и задачи библиотеки
Стандартная конфигурация кластера с шардированием происходит следующим образом:
1. Устанавливается кластер шардов. Представим что это 2 репликасета(мастер реплика).
2. Устанавливается прокси роутер на tarantool, на котором так же необходимо дописывать логику для походов в storage,
который занимается тем что следит где какой бакет находится и ходить напрямую.

Тем самым мы избавляемся от дополнительной точки отказа, а так же уменьшаем число сетевых походов.
Так же это позволяет адаптировать работу с шардами к комьюнити Golang.
Увеличить поддержку, удобство отладки и производительность.

**Цель и задача библиотеки** заключаются в том, чтобы дать пользователям
возможность ходить в репликасеты не используя Tarantool Router инсталяцию,
а резолвить бакеты и понимать в какой сторадж ходить прямо из вашего сервиса.
# Теория
## Tarantool
Tarantool — платформа in-memory вычислений с гибкой схемой данных для эффективного создания высоконагруженных приложений.
Включает в себя базу данных и сервер приложений на Lua.
Подробнее ознакомиться можно на официальном сайте Tarantool.
## Шардирование
Подробнее про технологию виртуального шардирования а так же про библиотеку vhsard вы можете найти в
https://www.youtube.com/watch?v=_9zUB0vmRxM
А так же внутри [оригинальной библиотеки vshard](https://github.com/tarantool/vshard).
## Начало тестирования
1. Для установки кластера вам потребуются следующие зависимости
- [Tarantool 2.x](https://www.tarantool.io/en/download/os-installation/os-x/), для ОС Mac OS необходимо устанавливать с помощью [tt](https://github.com/tarantool/tt) install
2. Сконфигурировать кластер и библиотеку, примеры можно подробнее посмотреть в examples
File renamed without changes
File renamed without changes
File renamed without changes

0 comments on commit 33d6172

Please sign in to comment.