Browse Source

add feature parity article

add feature parity article
asmyasnikov 2 years ago
parent
commit
cae8b9b821

+ 1 - 0
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)
 

+ 147 - 0
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|\-||\+||\-||\-||
+

+ 0 - 1
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)
-

+ 2 - 0
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