From 91542898b9386f3b51fb4c3736dcc3815805630e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=A1vid=20Paksy?= Date: Tue, 26 Nov 2024 13:36:31 +0100 Subject: [PATCH 01/14] HBASE-28525 Added "GET /table/exists" to REST documentation --- src/main/asciidoc/_chapters/external_apis.adoc | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/main/asciidoc/_chapters/external_apis.adoc b/src/main/asciidoc/_chapters/external_apis.adoc index 29df51d41922..6d39abfbea25 100644 --- a/src/main/asciidoc/_chapters/external_apis.adoc +++ b/src/main/asciidoc/_chapters/external_apis.adoc @@ -184,6 +184,13 @@ creation or mutation, and `DELETE` for deletion. |Description |Example +|/_table_/exists +|GET +|Returns if the specified table exists. +|curl -vi -X GET \ +-H "Accept: text/xml" \ +"http://example.com:8000/users/exists" + |/_table_/schema |GET |Describe the schema of the specified table. From 5c8f120ec6cf60ef7d390acb47a7dbcf097c468b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=A1vid=20Paksy?= Date: Wed, 27 Nov 2024 14:53:41 +0100 Subject: [PATCH 02/14] HBASE-28525 Added REST documentation for Stateless Scanner endpoint --- .../asciidoc/_chapters/external_apis.adoc | 116 +++++++++++++++++- 1 file changed, 115 insertions(+), 1 deletion(-) diff --git a/src/main/asciidoc/_chapters/external_apis.adoc b/src/main/asciidoc/_chapters/external_apis.adoc index 6d39abfbea25..bdbb7854600f 100644 --- a/src/main/asciidoc/_chapters/external_apis.adoc +++ b/src/main/asciidoc/_chapters/external_apis.adoc @@ -290,6 +290,20 @@ curl -vi -X GET \ -H "Accept: text/xml" \ "http://example.com:8000/users/multiget?e=b64&row=cm93MQ&row=cm93Mg%2FY2Y6YQ" +|/_table_/multiget?row=_row_&row=_row_/_column:qualifier_&filter=_url_encoded_filter_ +|GET +|Multi-Get a combination of rows/columns with a filter. The filter should be specified according to the <> and then encoded as `application/x-www-form-urlencoded` MIME format string. This example uses `PrefixFilter('row1')`. +|curl -vi -X GET \ +-H "Accept: text/xml" \ +"http://example.com:8000/users/multiget?row=row1&row=row2/cf:a&filter=PrefixFilter%28%27row1%27%29" + +|/_table_/multiget?row=_row_&row=_row_/_column:qualifier_&row=...&filter_b64=_b64_encoded_filter_ +|GET +|Multi-Get a combination of rows/columns with a filter. The filter should be specified according to the <> and then encoded in https://datatracker.ietf.org/doc/html/rfc4648#section-5[URL-safe base64]. This example uses `PrefixFilter('row1')`. +|curl -vi -X GET \ +-H "Accept: text/xml" \ +"http://example.com:8000/users/multiget?row=row1&row=row2/cf:a&filter_b64=UHJlZml4RmlsdGVyKCdyb3cxJyk" + |/_table_/_row_/_column:qualifier_/?v=_number_of_versions_ |GET |Multi-Get a specified number of versions of a given cell. Values are Base-64 encoded. @@ -348,7 +362,8 @@ curl -vi -X DELETE \ |=== -.Endpoints for `Scan` Operations +[[stateful.scanner.endpoints]] +.Endpoints of Stateful Scanner [options="header", cols="2m,m,3d,6l"] |=== |Endpoint @@ -413,6 +428,105 @@ has been exhausted, HTTP status `204` is returned. |=== +[[stateless.scanner.endpoints]] +.Endpoints of Stateless Scanner +[options="header", cols="2m,m,3d,6l"] +|=== +|Endpoint +|HTTP Verb +|Description +|Example + +|/_table_/* +|GET +|Scanning the entire table. The stateless scanner endpoint does not require a followup call to return the results. +|curl -vi -X GET \ +-H "Accept: text/xml" \ +"http://example.com:8000/users/*" + +|/_table_/*?limit=_number_of_rows_ +|GET +|Scanning the first row of the table. +|curl -vi -X GET \ +-H "Accept: text/xml" \ +"http://example.com:8000/users/*?limit=1" + +|/_table_/*?column=_column:qualifier_ +|GET +|Scanning a given column of the table. +|curl -vi -X GET \ +-H "Accept: text/xml" \ +"http://example.com:8000/users/*?column=cf:a" + +|/_table_/*?column=_column1:qualifier1_,_column2:qualifier2_ +|GET +|Scanning more than one column of the table. +|curl -vi -X GET \ +-H "Accept: text/xml" \ +"http://example.com:8000/users/*?column=cf:a,cf:b" + +|/_table_/*?startrow=_row_&limit=_number_of_rows_ +|GET +|Scanning table with start row and limit. +|curl -vi -X GET \ +-H "Accept: text/xml" \ +"http://example.com:8000/users/*?startrow=row1&limit=2" + +|/_table_/_row_prefix_* +|GET +|Scanning table with row prefix. +|curl -vi -X GET \ +-H "Accept: text/xml" \ +"http://example.com:8000/users/row1*" + +|/_table_/*?reversed=true +|GET +|Scanning table in reverse. +|curl -vi -X GET \ +-H "Accept: text/xml" \ +"http://example.com:8000/users/*?reversed=true" + +|/_table_/*?filter=_url_encoded_filter_ +|GET +|Scanning with a filter `PrefixFilter('row1')`. The filter should be specified according to the <> and then encoded as `application/x-www-form-urlencoded` MIME format string. +|curl -vi -X GET \ +-H "Accept: text/xml" \ +"http://example.com:8000/users/*?filter=PrefixFilter%28%27row1%27%29" + +|/_table_/*?filter_b64=_b64_encoded_filter_ +|GET +|Scanning with a filter `PrefixFilter('row1')`. The filter should be specified according to the <> and then encoded in https://datatracker.ietf.org/doc/html/rfc4648#section-5[URL-safe base64]. +|curl -vi -X GET \ +-H "Accept: text/xml" \ +"http://example.com:8000/users/*?filter_b64=UHJlZml4RmlsdGVyKCdyb3cxJyk" + +|=== + +The <> expects clients to restart scans if there is a REST server failure in the midst. +The stateless does not store any state related to scan operation and all the parameters are specified as query parameters. + +The following are the scan parameters: + +* `startrow` - The start row for the scan. +* `endrow` - The end row for the scan. +* `column` - The comma separated list of columns to scan. +* `starttime`, `endtime` - To only retrieve columns within a specific range of version timestamps, both start and end time must be specified. +* `maxversions` - To limit the number of versions of each column to be returned. +* `batchsize` - To limit the maximum number of values returned for each call to next(). +* `limit` - The number of rows to return in the scan operation. +* `cacheblocks` - Whether to use the <> in the RegionServer. By default `true`. +* `reversed` - When set to `true`, reverse scan will be executed. By default `false`. +* `filter` - Allows to specify a filter for the scan as an `application/x-www-form-urlencoded` MIME format string. +* `filter_b64` - Allows to specify a filter for the scan, encoded in https://datatracker.ietf.org/doc/html/rfc4648#section-5[URL-safe base64]. When both `filter` and `filter_b64` are specified, only `filter_b64` is considered. + +More on start row, end row and limit parameters: + +* If start row, end row and limit not specified, then the whole table will be scanned. +* If start row and limit (say N) is specified, then the scan operation will return N rows from the start row specified. +* If only limit parameter is specified, then the scan operation will return N rows from the start of the table. +* If limit and end row are specified, then the scan operation will return N rows from start of table till the end row. If the end row is reached before N rows ( say M and M < N ), then M rows will be returned to the user. +* If start row, end row and limit (say N ) are specified and N < number of rows between start row and end row, then N rows from start row will be returned to the user. If N > (number of rows between start row and end row (say M), then M number of rows will be returned to the user. + .Endpoints for `Put` Operations [options="header", cols="2m,m,3d,6l"] |=== From 7352d254e588157258ff5b16e212bf8a33d2e815 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=A1vid=20Paksy?= Date: Thu, 28 Nov 2024 13:11:50 +0100 Subject: [PATCH 03/14] HBASE-28525 Removed TODO from TableResource.getScanResource() As it is now documented. --- .../main/java/org/apache/hadoop/hbase/rest/TableResource.java | 1 - 1 file changed, 1 deletion(-) diff --git a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/TableResource.java b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/TableResource.java index 2c56706e06df..08664d6921a8 100644 --- a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/TableResource.java +++ b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/TableResource.java @@ -120,7 +120,6 @@ public RowResource getRowResourceWithSuffixGlobbing( return new RowResource(this, suffixglobbingspec, versions, check, returnResult, keyEncoding); } - // TODO document // FIXME handle binary rowkeys (like put and delete does) @Path("{scanspec: .*[*]$}") public TableScanResource getScanResource(final @PathParam("scanspec") String scanSpec, From 122b51cb04fa5e4ce18f754a0892731294fdb96e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=A1vid=20Paksy?= Date: Thu, 28 Nov 2024 16:13:52 +0100 Subject: [PATCH 04/14] HBASE-28525 Added "suffixGlobbing" endpoints to REST Documentation --- .../apache/hadoop/hbase/rest/TableResource.java | 1 - src/main/asciidoc/_chapters/external_apis.adoc | 14 ++++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/TableResource.java b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/TableResource.java index 08664d6921a8..c6eaa17d867a 100644 --- a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/TableResource.java +++ b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/TableResource.java @@ -105,7 +105,6 @@ public RowResource getRowResource( return new RowResource(this, rowspec, versions, check, returnResult, keyEncoding); } - // TODO document @Path("{suffixglobbingspec: .*\\*/.+}") public RowResource getRowResourceWithSuffixGlobbing( // We need the @Encoded decorator so Jersey won't urldecode before diff --git a/src/main/asciidoc/_chapters/external_apis.adoc b/src/main/asciidoc/_chapters/external_apis.adoc index bdbb7854600f..d1d2c2c3e92f 100644 --- a/src/main/asciidoc/_chapters/external_apis.adoc +++ b/src/main/asciidoc/_chapters/external_apis.adoc @@ -276,6 +276,20 @@ curl -vi -X GET \ -H "Encoding: base64" \ "http://example.com:8000/users/cm93MQ/Y2Y6YQ/" +|/_table_/_row_prefix_*/_column_ +|GET +|Get a combination of rows which matches the given row prefix and column family. Returned values are Base-64 encoded. +|curl -vi -X GET \ +-H "Accept: text/xml" \ +"http://example.com:8000/users/row*/cf" + +|/_table_/_row_prefix_*/_column:qualifier_ +|GET +|Get a combination of rows which matches the given row prefix, column family and qualifier. Returned values are Base-64 encoded. +|curl -vi -X GET \ +-H "Accept: text/xml" \ +"http://example.com:8000/users/row*/cf" + |/_table_/multiget?row=_row_&row=_row_/_column:qualifier_&row=... |GET |Multi-Get a combination of rows/columns. Values are Base-64 encoded. From 33accddf73802673c51a213730cffb215196fe67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=A1vid=20Paksy?= Date: Mon, 2 Dec 2024 13:02:48 +0100 Subject: [PATCH 05/14] HBASE-28525 Added append operation to REST Documentation --- .../asciidoc/_chapters/external_apis.adoc | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/main/asciidoc/_chapters/external_apis.adoc b/src/main/asciidoc/_chapters/external_apis.adoc index d1d2c2c3e92f..66fffd47ce77 100644 --- a/src/main/asciidoc/_chapters/external_apis.adoc +++ b/src/main/asciidoc/_chapters/external_apis.adoc @@ -692,6 +692,31 @@ Detailed Explanation: *** Basically, the 4 xml-format examples are the same as the 4 corresponding json-format examples, and will not be explained here in detail. +.Endpoints for `Append` Operations +[options="header", cols="2m,m,3d,6l"] +|=== +|Endpoint +|HTTP Verb +|Description +|Example + +|/_table_/_row_key_/?check=append +|PUT +|Appends the given new value to the end of the current value of the cell. The row, column qualifier, and value must each be Base-64 encoded. +|curl -vi -X PUT \ +-H "Accept: text/xml" \ +-H "Content-Type: text/xml" \ +-d 'dmFsdWU1Cg==' \ +"http://example.com:8000/users/row5?check=append" + +curl -vi -X PUT \ +-H "Content-type: application/json" \ +-H "Accept: application/json" \ +-d '{"Row":[{"key":"dGVzdHJvdzE=","Cell":[{"column":"YTox","$":"dGVzdHZhbHVlMgo"},{"column":"YToy","$":"dGVzdHZhbHVlMTIK"}]}]}' \ +"http://localhost:8080/users/testrow1?check=append" + +|=== + [[xml_schema]] === REST XML Schema From 7ba2a68a29f65e5a7c43936b32ce9a882e950719 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=A1vid=20Paksy?= Date: Mon, 2 Dec 2024 14:54:16 +0100 Subject: [PATCH 06/14] HBASE-28525 Added increment operation to REST Documentation --- .../asciidoc/_chapters/external_apis.adoc | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/main/asciidoc/_chapters/external_apis.adoc b/src/main/asciidoc/_chapters/external_apis.adoc index 66fffd47ce77..03362b3ff5a0 100644 --- a/src/main/asciidoc/_chapters/external_apis.adoc +++ b/src/main/asciidoc/_chapters/external_apis.adoc @@ -717,6 +717,32 @@ curl -vi -X PUT \ |=== +.Endpoints for `Increment` Operations +[options="header", cols="2m,m,3d,6l"] +|=== +|Endpoint +|HTTP Verb +|Description +|Example + +|/_table_/_row_key_/?check=increment +|PUT +|Increments the current value of the cell. The row, column qualifier, and value must each be Base-64 encoded. +|curl -vi -X PUT \ +-H "Accept: text/xml" \ +-H "Content-Type: text/xml" \ +-d 'MQ==' \ +"http://localhost:8080/users/row5?check=increment" + +curl -vi -X PUT \ +-H "Content-type: application/json" \ +-H "Accept: application/json" \ +-d '{"Row":[{"key":"dGVzdHJvdzE=","Cell":[{"column":"YTox","$":"MQ=="},{"column":"YToy","$":"MQ=="}]}]}' \ +"http://localhost:8080/users/testrow1?check=increment" + +|=== + + [[xml_schema]] === REST XML Schema From 8ae82afe9b42a807df420173e538bd751ae2dc40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=A1vid=20Paksy?= Date: Tue, 3 Dec 2024 11:18:27 +0100 Subject: [PATCH 07/14] HBASE-28525 Added includeStartRow and includeStopRow stateless scanner parameters to REST Documentation --- src/main/asciidoc/_chapters/external_apis.adoc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/asciidoc/_chapters/external_apis.adoc b/src/main/asciidoc/_chapters/external_apis.adoc index 03362b3ff5a0..0a9e5c2fd5bc 100644 --- a/src/main/asciidoc/_chapters/external_apis.adoc +++ b/src/main/asciidoc/_chapters/external_apis.adoc @@ -532,6 +532,8 @@ The following are the scan parameters: * `reversed` - When set to `true`, reverse scan will be executed. By default `false`. * `filter` - Allows to specify a filter for the scan as an `application/x-www-form-urlencoded` MIME format string. * `filter_b64` - Allows to specify a filter for the scan, encoded in https://datatracker.ietf.org/doc/html/rfc4648#section-5[URL-safe base64]. When both `filter` and `filter_b64` are specified, only `filter_b64` is considered. +* `includeStartRow` - Whether start row should be included in the scan. By default `true`. +* `includeStopRow` - Whether end row (stop row) should be included in the scan. By default `false`. More on start row, end row and limit parameters: From 190962894e749a29e745ae61be733ac81c3a96ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=A1vid=20Paksy?= Date: Tue, 3 Dec 2024 13:02:24 +0100 Subject: [PATCH 08/14] HBASE-28525 Updated REST XML Schema and REST Protobufs Schema in documentation --- .../asciidoc/_chapters/external_apis.adoc | 43 ++++++++++++++++--- 1 file changed, 37 insertions(+), 6 deletions(-) diff --git a/src/main/asciidoc/_chapters/external_apis.adoc b/src/main/asciidoc/_chapters/external_apis.adoc index 0a9e5c2fd5bc..2a32f6257ee3 100644 --- a/src/main/asciidoc/_chapters/external_apis.adoc +++ b/src/main/asciidoc/_chapters/external_apis.adoc @@ -846,14 +846,21 @@ curl -vi -X PUT \ - - - + + + + + + + + + + @@ -899,7 +906,15 @@ curl -vi -X PUT \ - + + + + + + + + + @@ -926,8 +941,16 @@ message StorageClusterStatus { optional int32 stores = 2; optional int32 storefiles = 3; optional int32 storefileSizeMB = 4; - optional int32 memstoreSizeMB = 5; - optional int32 storefileIndexSizeMB = 6; + optional int32 memStoreSizeMB = 5; + optional int64 storefileIndexSizeKB = 6; + optional int64 readRequestsCount = 7; + optional int64 writeRequestsCount = 8; + optional int32 rootIndexSizeKB = 9; + optional int32 totalStaticIndexSizeKB = 10; + optional int32 totalStaticBloomSizeKB = 11; + optional int64 totalCompactingKVs = 12; + optional int64 currentCompactedKVs = 13; + optional int64 cpRequestsCount = 14; } message Node { required string name = 1; // name:port @@ -1010,6 +1033,14 @@ message Scanner { optional int32 batch = 4; optional int64 startTime = 5; optional int64 endTime = 6; + optional int32 maxVersions = 7; + optional string filter = 8; + optional int32 caching = 9; // specifies REST scanner caching + repeated string labels = 10; + optional bool cacheBlocks = 11; // server side block caching hint + optional int32 limit = 12; + optional bool includeStartRow = 13; + optional bool includeStopRow = 14; } ---- From 52d7b8d8dc32111855b1e3e0b029706e9f134527 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=A1vid=20Paksy?= Date: Tue, 3 Dec 2024 13:02:54 +0100 Subject: [PATCH 09/14] HBASE-28525 Updated XMLSchema.xsd with the latest changes --- .../resources/org/apache/hadoop/hbase/rest/XMLSchema.xsd | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/hbase-rest/src/main/resources/org/apache/hadoop/hbase/rest/XMLSchema.xsd b/hbase-rest/src/main/resources/org/apache/hadoop/hbase/rest/XMLSchema.xsd index 53945f34bbb6..1edd9ccc28af 100644 --- a/hbase-rest/src/main/resources/org/apache/hadoop/hbase/rest/XMLSchema.xsd +++ b/hbase-rest/src/main/resources/org/apache/hadoop/hbase/rest/XMLSchema.xsd @@ -28,6 +28,8 @@ + + @@ -123,6 +125,10 @@ + + + + @@ -168,8 +174,9 @@ - + + From 8c57b5e063efde831f92fca6bfaa48e2e1fec218 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=A1vid=20Paksy?= Date: Thu, 5 Dec 2024 09:31:33 +0100 Subject: [PATCH 10/14] HBASE-28525 Improved naming of scanner operation REST endpoints implementing code review suggestion. --- src/main/asciidoc/_chapters/external_apis.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/asciidoc/_chapters/external_apis.adoc b/src/main/asciidoc/_chapters/external_apis.adoc index 2a32f6257ee3..bd6cfa231ff9 100644 --- a/src/main/asciidoc/_chapters/external_apis.adoc +++ b/src/main/asciidoc/_chapters/external_apis.adoc @@ -377,7 +377,7 @@ curl -vi -X DELETE \ |=== [[stateful.scanner.endpoints]] -.Endpoints of Stateful Scanner +Stateful endpoints for scan operations [options="header", cols="2m,m,3d,6l"] |=== |Endpoint @@ -443,7 +443,7 @@ has been exhausted, HTTP status `204` is returned. |=== [[stateless.scanner.endpoints]] -.Endpoints of Stateless Scanner +Stateless endpoints for scan operations [options="header", cols="2m,m,3d,6l"] |=== |Endpoint From 1b98ced11cfb9f1121afdc39f3876af028c760d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=A1vid=20Paksy?= Date: Thu, 5 Dec 2024 09:53:57 +0100 Subject: [PATCH 11/14] HBASE-28525 Added note with ticket ID for new parameters of stateless scanner so that it's clear which patch is required to support: - filter_b64 - includeStartRow - includeStopRow --- src/main/asciidoc/_chapters/external_apis.adoc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/main/asciidoc/_chapters/external_apis.adoc b/src/main/asciidoc/_chapters/external_apis.adoc index bd6cfa231ff9..0fff18152b3d 100644 --- a/src/main/asciidoc/_chapters/external_apis.adoc +++ b/src/main/asciidoc/_chapters/external_apis.adoc @@ -531,10 +531,17 @@ The following are the scan parameters: * `cacheblocks` - Whether to use the <> in the RegionServer. By default `true`. * `reversed` - When set to `true`, reverse scan will be executed. By default `false`. * `filter` - Allows to specify a filter for the scan as an `application/x-www-form-urlencoded` MIME format string. -* `filter_b64` - Allows to specify a filter for the scan, encoded in https://datatracker.ietf.org/doc/html/rfc4648#section-5[URL-safe base64]. When both `filter` and `filter_b64` are specified, only `filter_b64` is considered. +* `filter_b64` - On versions which include the link:https://issues.apache.org/jira/browse/HBASE-28518[HBASE-28518] patch, `filter_b64` allows to specify a https://datatracker.ietf.org/doc/html/rfc4648#section-5[URL-safe base64] encoded filter for the scan. When both `filter` and `filter_b64` are specified, only `filter_b64` is considered. * `includeStartRow` - Whether start row should be included in the scan. By default `true`. * `includeStopRow` - Whether end row (stop row) should be included in the scan. By default `false`. +[NOTE] +==== +`includeStartRow` and `includeStopRow` are only supported on versions that include link:https://issues.apache.org/jira/browse/HBASE-28627[HBASE-28627]. + +Versions without this patch will either ignore these parameters or will error out if they are set to a non-default value. +==== + More on start row, end row and limit parameters: * If start row, end row and limit not specified, then the whole table will be scanned. From 745c5c76b4b6e629f10ac2abd9ba0a0a7a4bff94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=A1vid=20Paksy?= Date: Thu, 5 Dec 2024 10:03:48 +0100 Subject: [PATCH 12/14] HBASE-28525 Added note to stateless endpoint about result size --- src/main/asciidoc/_chapters/external_apis.adoc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/asciidoc/_chapters/external_apis.adoc b/src/main/asciidoc/_chapters/external_apis.adoc index 0fff18152b3d..f27db0932baf 100644 --- a/src/main/asciidoc/_chapters/external_apis.adoc +++ b/src/main/asciidoc/_chapters/external_apis.adoc @@ -519,6 +519,8 @@ Stateless endpoints for scan operations The <> expects clients to restart scans if there is a REST server failure in the midst. The stateless does not store any state related to scan operation and all the parameters are specified as query parameters. +NOTE: The stateless endpoints are optimized for small results, while the <> can also be used for large results. + The following are the scan parameters: * `startrow` - The start row for the scan. From 38c77ead17c22546c624493d2628575145228bea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=A1vid=20Paksy?= Date: Fri, 6 Dec 2024 08:47:22 +0100 Subject: [PATCH 13/14] HBASE-28525 Fixed table # numbering Added missing '.' --- src/main/asciidoc/_chapters/external_apis.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/asciidoc/_chapters/external_apis.adoc b/src/main/asciidoc/_chapters/external_apis.adoc index f27db0932baf..def5aace4467 100644 --- a/src/main/asciidoc/_chapters/external_apis.adoc +++ b/src/main/asciidoc/_chapters/external_apis.adoc @@ -377,7 +377,7 @@ curl -vi -X DELETE \ |=== [[stateful.scanner.endpoints]] -Stateful endpoints for scan operations +.Stateful endpoints for scan operations [options="header", cols="2m,m,3d,6l"] |=== |Endpoint @@ -443,7 +443,7 @@ has been exhausted, HTTP status `204` is returned. |=== [[stateless.scanner.endpoints]] -Stateless endpoints for scan operations +.Stateless endpoints for scan operations [options="header", cols="2m,m,3d,6l"] |=== |Endpoint From 14fef3504b06ac45c97e1476300b51df481676b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=A1vid=20Paksy?= Date: Fri, 6 Dec 2024 08:57:54 +0100 Subject: [PATCH 14/14] HBASE-28525 Highlight Scan operation name in table title As it was before so it is more consistent with other table titles. --- src/main/asciidoc/_chapters/external_apis.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/asciidoc/_chapters/external_apis.adoc b/src/main/asciidoc/_chapters/external_apis.adoc index def5aace4467..f916b3ef9201 100644 --- a/src/main/asciidoc/_chapters/external_apis.adoc +++ b/src/main/asciidoc/_chapters/external_apis.adoc @@ -377,7 +377,7 @@ curl -vi -X DELETE \ |=== [[stateful.scanner.endpoints]] -.Stateful endpoints for scan operations +.Stateful endpoints for `Scan` Operations [options="header", cols="2m,m,3d,6l"] |=== |Endpoint @@ -443,7 +443,7 @@ has been exhausted, HTTP status `204` is returned. |=== [[stateless.scanner.endpoints]] -.Stateless endpoints for scan operations +.Stateless endpoints for `Scan` Operations [options="header", cols="2m,m,3d,6l"] |=== |Endpoint