aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorasmyasnikov <asmyasnikov@ydb.tech>2022-11-09 13:01:49 +0300
committerasmyasnikov <asmyasnikov@ydb.tech>2022-11-09 13:01:49 +0300
commitcae8b9b8218a7413d2253aec1a0b88b441e50068 (patch)
treeb81658dd64ad1c90a6291a0a0afa3f255d351d9f
parent80f5c1d76c74f49e72bece723f9c1b7a25852e70 (diff)
downloadydb-cae8b9b8218a7413d2253aec1a0b88b441e50068.tar.gz
add feature parity article
add feature parity article
-rw-r--r--ydb/docs/ru/core/reference/ydb-sdk/_includes/index.md1
-rw-r--r--ydb/docs/ru/core/reference/ydb-sdk/feature-parity.md147
-rw-r--r--ydb/docs/ru/core/reference/ydb-sdk/recipes/index.md1
-rw-r--r--ydb/docs/ru/core/reference/ydb-sdk/toc_i.yaml2
4 files changed, 150 insertions, 1 deletions
diff --git a/ydb/docs/ru/core/reference/ydb-sdk/_includes/index.md b/ydb/docs/ru/core/reference/ydb-sdk/_includes/index.md
index 43d2cb2588..243435aafd 100644
--- a/ydb/docs/ru/core/reference/ydb-sdk/_includes/index.md
+++ b/ydb/docs/ru/core/reference/ydb-sdk/_includes/index.md
@@ -21,4 +21,5 @@
- [Аутентификация](../auth.md)
- [Тестовое приложение](../example/index.md)
- [Рецепты кода](../recipes/index.md)
+- [Сравнение возможностей SDK](../feature-parity.md)
diff --git a/ydb/docs/ru/core/reference/ydb-sdk/feature-parity.md b/ydb/docs/ru/core/reference/ydb-sdk/feature-parity.md
new file mode 100644
index 0000000000..d9eb28b25e
--- /dev/null
+++ b/ydb/docs/ru/core/reference/ydb-sdk/feature-parity.md
@@ -0,0 +1,147 @@
+# Сравнение возможностей SDK
+
+|Feature|C\+\+|Python|Go|Java|NodeJS|C#|Rust|PHP|
+|:---|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
+|Поддержка SSL/TLS (системные сертификаты)|\+|\+|\+|\+|\+|\+|\+||
+|Поддержка SSL/TLS (кастомные сертификаты)|\+|\+|\+|\+|\+||\-||
+|Возможность настроить/включить GRPC KeepAlive (фоновое поддержание живости соединения)|\+|\+|\+|?|||\-||
+|Регулярный прогон тестов SLO на последней версии кода|\+|\+/-|\+|\+|\+/-|\-|\-|\-|
+|Шаблоны Issue в GitHub|\-|?|\+|\-|\+||\-||
+|**Клиентская балансировка**|||||||||
+|Инициализация балансировщика через Discovery/ListEndpoints|\+|\+|\+|\+|\+|\+|\+|\+|
+|Отключение клиентской балансировки (все запросы в начальный Endpoint)|\+/-|\-|\+|\-|\-||\+||
+|Фоновый Discovery/ListEndpoints (раз в минуту по умолчанию)|\+|\+|\+|\+|\+|\+|\+|\+|
+|Поддержка множества IP адресов в DNS-записи начального Endpoint, часть из которых может быть недоступна (DNS балансировка)|?|\+|\+|?|\-|?|?|?|
+|Пессимизация нод на транспортных ошибках|\+|\+|\+|\+|\+|\+|\+||
+|Принудительный Discovery/ListEndpoints если пессимизировано более половины нод|\+|\+|\+|\+|\-|\-|\+||
+|Автоматическое определение ближайшего ДЦ / зоны доступности по TCP-пингам|\-|\-|\+|\-|\-|\-|\-||
+|Aвтоматическое определение ближайшего ДЦ / зоны доступности по ответу Discovery/ListEndpoints\*|\+|\+|\-|\-|\-|\-|\-||
+|Равномерный случайный выбор нод (по умолчанию)|\+|\+|\+|\+|\+|\+|\+||
+|Балансировка среди всех нод всех ДЦ (по умолчанию)|\+|\+|\+|\+|\+|\+|\+||
+|Балансировка среди всех нод конкретного ДЦ / зоны доступности (например, “a”, “vla”)|\+|\+|\+|?|\-|\-|\-||
+|Балансировка среди всех нод всех локального ДЦ|\+|\+|\+|?|\-|\-|\-||
+|**Credentials providers**|||||||||
+|Anonymous (по умолчанию)|\+|\+|\+|\+|\+|?|\+||
+|Static (user - password)|\+|\+|\+|\+|\-|\-|\-||
+|Token: IAM, OAuth|\+|\+|\+|\+|\+|\+|\+||
+|Service account (Yandex.Cloud specific)|\+|\+|\+|\+|\+|\+|\-||
+|Metadata (Yandex.Cloud specific)|\+|\+|\+|\+|\+|\+|\+||
+|**Работа с сессиями Table-сервиса**|||||||||
+|Пул сессий|\+|\+|\+|\+|\+|\+|\+||
+|Ограничение количества одновременных сессий на клиенте)|\+|\+|\+|\+|\+|\+|\+||
+|Несгораемый остаток сессий в пуле|\+|\+|\+|\+|\-|\-|\-||
+|Прогрев пула до указанного значения количества сессий при создании пула|\-|\+|\-|\-|\+|\-|\-||
+|Фоновый KeepAlive для простаивающих сессий в пуле|\+|\-|\-|\+|\+|\+|\+||
+|Фоновое закрытие простаивающих сессий в пуле (лишние сессии)|\+|\+|\+|\+|\-|\-|\-||
+|Автоматическое выбрасывание сессии из пула при получении ошибок BAD_SESSION / SESSION_BUSY|\+|\+|\+|\+|\+|\+|\+||
+|Отстойник сессий для возможного переиспользования в будущем\~|\+|\-|\-|\-|\-|\-|\-||
+|Ретраер на пуле сессий (объект для повторов - сессия)|\+|\+|\+|\+|\+|\+|\+||
+|Ретраер на пуле сессий (объект для повторов - транзакция на сессии)|\-|\-|\+|\-|\-|?|\+||
+|Поддержка graceful shutdown сессий ("session-close" в metadata "x-ydb-server-hints" - означает надо "забыть" сессию и больше ее не использовать)|\+|\+|\+||\+||\-||
+|Поддержка серверной балансировки сессий (запрос CreateSession должен содержать в metadata-заголовке "x-ydb-client-capabilities" значение "session-balancer")|\+|\+|\+||\-||\-||
+|**Поддержка типов данных YDB**|||||||||
+|Int/Uint(8,16,32,64)|\+|\+|\+|\+|\+|\+|\+||
+|Int128, UInt128 (в паблике нету?)|\-|\-|\-|\-|\-|\-|\-||
+|Float,Double|\+|\+|\+|\+|\+|\+|\+||
+|Bool|\+|\+|\+|\+|\+|\-|\+||
+|String, Bytes|\+|\+|\+|\+|\+|\+|\+||
+|Utf8, Text|\+|\+|\+|\+|\+|\+|\+||
+|NULL,Optional,Void|\+|\+|\+|\+|\+|\+|\+||
+|Struct|\+|\+|\+|\+|\+|\+|\+||
+|List|\+|\+|\+|\+|\+|\+|\+||
+|Set|?|?|\-|?|?|?|?||
+|Tuple|\+|\+|\+|\+|\+|\+|\+||
+|Variant\<Struct\>,Variant\<Tuple\>|\+|\+|\+|\+|\+|\+|\-||
+|Date,DateTime,Timestamp,Interval|\+|\+|\+|\+|\+|\+|\+||
+|TzDate,TzDateTime,TzTimestamp|\+|\+|\+|\+|\+|\+|\-||
+|DyNumber|\+|\+|\+|\+|\+|\+|\-||
+|Decimal (120 бит)|\+|\+|\+|\+|\+|\+|\-||
+|Json,JsonDocument,Yson|\+|\+|\+|\+|\+|\+|\+||
+|**Scheme клиент**|||||||||
+|MakeDirectory|\+|\+|\+|\+|\+||\+||
+|RemoveDirectory|\+|\+|\+|\+|\+||\+||
+|ListDirectory|\+|\+|\+|\+|\+|\+|\+||
+|ModifyPermissions|\+|\+|\+|\-|\+||\-||
+|DescribePath|\+|\+|\+|\+|\+||\-||
+|**Table-сервис**|||||||||
+|CreateSession|\+|\+|\+|\+|\+|\+|\+||
+|DeleteSession|\+|\+|\+|\+|\+|\+|\+||
+|KeepAlive|\+|\+|\+|\+|\+|\+|\+||
+|CreateTable|\+|\+|\+|\+|\+||\-||
+|DropTable|\+|\+|\+|\+|\+||\-||
+|AlterTable|\+|\+|\+|\+|\+||\-||
+|CopyTable|\+|\+|\+|\+|\-||\-||
+|CopyTables|\+|\+|\+|\-|\-||\-||
+|DescribeTable|\+|\+|\+|\+|\+||\-||
+|ExplainDataQuery|\+|\+|\+|\+|\-||\-||
+|PrepareDataQuery|\+|\+|\+|\+|\+||\-||
+|ExecuteDataQuery|\+|\+|\+|\+|\+|\+|\+||
+|\* Серверный кэш по умолчанию для всех запросов с параметрами (KeepInCache)|\-|\+|\+|\+|\+||\-||
+|\* Отдельная опция для включения/выключения серверного кэша для конкретного запроса|\+|\+|\+|\+|\+||\-||
+|\* Truncated result как ошибка (по дефолту)|\-|\-|\+|?|\+||\-||
+|\* Truncated result как ошибка (как опция opt-in, opt-out)|\-|\-|\+|?|\+||\+||
+|ExecuteSchemeQuery|\+|\+|\+|\+|\-|\+|\+||
+|BeginTransaction|\+|\+|\+|\+|\+||\-||
+|CommitTransaction|\+|\+|\+|\+|\+||\+||
+|RollbackTransaction|\+|\+|\+|\+|\+||\+||
+|DescribeTableOptions|\+|\+|\+|\-|\-||\-||
+|StreamExecuteScanQuery|\+|\+|\+|\+|\+|\+|\+||
+|StreamReadTable|\+|\+|\+|\+|\+|\+|\-||
+|BulkUpsert|\+|\+|\+|\+|\+|\-|\-||
+|**Operation**|||||||||
+|Consumed Units из метаданных ответа на grpc-запрос (чтобы пользователь мог получить это)|\+|\+|\-|\+|\+|\-|\-||
+|Получение OperationId операции для long-polling статуса выполнения операции|\+|\+|\+|\-|\-|\+|\-||
+|**ScriptingYQL**|||||||||
+|ExecuteYql|\+|?|\+|\-|\-||\-||
+|ExplainYql|\+|?|\+|\-|\-||\-||
+|StreamExecuteYql|\+|?|\+|\-|\-||\-||
+|**Coordination service**|||||||||
+|CreateNode|\+|?|\+|\-|\-||\-||
+|AlterNode|\+|?|\+|\-|\-||\-||
+|DropNode|\+|?|\+|\-|\-||\-||
+|DescribeNode|\+|?|\+|\-|\-||\-||
+|Session (leader election, распределенный лок)|\+|?|\-|\-|\-||\-||
+|**Topic service**|||||||||
+|CreateTopic|\+|\-|\+|\-|\-|\-|\-||
+|DescribeTopic|\+|\-|\+|\-|\-|\-|\-||
+|AlterTopic|\+|\-|\+|\-|\-|\-|\-||
+|DropTopic|\+|\-|\+|\-|\-|\-|\-||
+|StreamWrite|\+|\-|\+|\-|\-|\-|\-||
+|StreamRead|\+|\-|\+|\-|\-|\-|\-||
+|**Ratelimiter service**|||||||||
+|CreateResource|\+|?|\+|\-|\-|\-|\-||
+|AlterResource|\+|?|\+|\-|\-|\-|\-||
+|DropResource|\+|?|\+|\-|\-|\-|\-||
+|ListResources|\+|?|\+|\-|\-|\-|\-||
+|DescribeResource|\+|?|\+|\-|\-|\-|\-||
+|AcquireResource|\+|?|\+|\-|\-|\-|\-||
+|**Monitoring** (отправка метрик SDK в систему мониторинга)|||||||||
+|Solomon / Monitoring|\+|?|\+|\-|\-|\-|\-||
+|Prometheus|\-|?|\+|\-|\-|\-|\-||
+|**Логирование** событий SDK|\-|?|\+|\+|\+|\+|\+||
+|**Трассировка** событий SDK|||||||||
+|в OpenTelemetry|\-|?|\-|\-|\-|\-|\-||
+|в OpenTracing|\-|?|\+|\-|\-|\-|\-||
+|**Examples**|||||||||
+|Auth|||||||||
+|\* token|?|?|\+|\+|\+||\+||
+|\* anonymous|?|?|\+|\+|\+||\+||
+|\* environ|?|?|\+|\+|\+||\-||
+|\* metadata|?|?|\+|\+|\+||\+||
+|\* service_account|?|?|\+|\+|\+||\-||
+|\* static (username \+ password)|?|?|\+|\+|\-||\-||
+|Basic (series)|\+|?|\+|\+|\+|\+|\+||
+|Bulk Upsert|\+/-|?|\+|\+|\+||\-||
+|Containers (Struct,Variant,List,Tuple)|\-|?|\+|\-|\-||\+||
+|Pagination|\+|?|\+|\+|\-||\-||
+|Partition policies|\-|?|\+|\-|\-||\-||
+|Read table|?|?|\+|\-|\+||\-||
+|Secondary index Workaround|\+|?|\-|\+|\-||\-||
+|Secondary index builtin|\+|?|\-|\-|\-||\-||
+|TTL|\+|?|\+|\-|\-||\-||
+|TTL Readtable|\+|?|\+|\-|\-||\-||
+|URL Shortener (serverless yandex function)|?|?|\+|?|\+||\-||
+|Topic reader|\+||\+||\-||\-||
+|CDC|\-||\+||\-||\-||
+|Topic writer|\-||\+||\-||\-||
+
diff --git a/ydb/docs/ru/core/reference/ydb-sdk/recipes/index.md b/ydb/docs/ru/core/reference/ydb-sdk/recipes/index.md
index d4ec53dc57..260e2acc28 100644
--- a/ydb/docs/ru/core/reference/ydb-sdk/recipes/index.md
+++ b/ydb/docs/ru/core/reference/ydb-sdk/recipes/index.md
@@ -26,4 +26,3 @@
- [Включить логирование](debug-logs.md)
- [Подключить метрики в Prometheus](debug-prometheus.md)
- [Подключить трассировку в Jaeger](debug-jaeger.md)
-
diff --git a/ydb/docs/ru/core/reference/ydb-sdk/toc_i.yaml b/ydb/docs/ru/core/reference/ydb-sdk/toc_i.yaml
index 0a1faf4e26..42d3041810 100644
--- a/ydb/docs/ru/core/reference/ydb-sdk/toc_i.yaml
+++ b/ydb/docs/ru/core/reference/ydb-sdk/toc_i.yaml
@@ -19,3 +19,5 @@ items:
href: health-check-api.md
- name: Рецепты кода
include: { mode: link, path: recipes/toc_p.yaml }
+ - name: Сравнение возможностей SDK
+ href: feature-parity.md