diff --git a/benchmarks/README.md b/benchmarks/README.md index c80cc13..8c443e3 100644 --- a/benchmarks/README.md +++ b/benchmarks/README.md @@ -144,6 +144,8 @@ A message will show the location of the Gatling report: Reports generated in: ./benchmarks/build/reports/gatling//index.html ``` +![Sample Gatling report](docs/gatling-report.png) + ### Example Polaris server startup For repeated testing and benchmarking purposes it's convenient to have fixed client-ID + client-secret combinations. **The following example is ONLY for testing and benchmarking against an airgapped Polaris instance** @@ -252,4 +254,4 @@ The diagram below shows sample catalog, namespace and table definition given the - Number of columns per table: `999` - Number of table properties: `59` -![Dataset size example showing catalog, namespace, and table definitions](docs/dataset-size.png) +![Dataset size example showing catalog, namespace, and table definitions](docs/dataset-size.svg) diff --git a/benchmarks/docs/dataset-shape-1-1000-7.puml b/benchmarks/docs/dataset-shape-1-1000-7.puml new file mode 100644 index 0000000..0bb7813 --- /dev/null +++ b/benchmarks/docs/dataset-shape-1-1000-7.puml @@ -0,0 +1,64 @@ +/' + ' Licensed to the Apache Software Foundation (ASF) under one + ' or more contributor license agreements. See the NOTICE file + ' distributed with this work for additional information + ' regarding copyright ownership. The ASF licenses this file + ' to you under the Apache License, Version 2.0 (the + ' "License"); you may not use this file except in compliance + ' with the License. You may obtain a copy of the License at + ' + ' http://www.apache.org/licenses/LICENSE-2.0 + ' + ' Unless required by applicable law or agreed to in writing, + ' software distributed under the License is distributed on an + ' "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + ' KIND, either express or implied. See the License for the + ' specific language governing permissions and limitations + ' under the License. +'/ +@startuml + +rectangle Realm +rectangle "C 0" as C0 #AntiqueWhite +Realm -- C0 + +rectangle "NS 0" as Ns0 #Lavender +C0 -- Ns0 + +rectangle "NS 1" as Ns1 #Lavender +Ns0 -- Ns1 + +rectangle "NS 2" as Ns2 #Lavender +Ns1 -- Ns2 + +rectangle "..." as Ns3 #Lavender +Ns2 -[dotted]- Ns3 + +rectangle "NS 999" as Ns999 #Lavender +Ns3 -[dotted]- Ns999 + +rectangle "T 0" as T0 #LightCyan +rectangle "T 1" as T1 #LightCyan +rectangle "T 2" as T2 #LightCyan +rectangle "T 3" as T3 #LightCyan +rectangle "T 4" as T4 #LightCyan +rectangle "T 5" as T5 #LightCyan +rectangle "T 6" as T6 #LightCyan +Ns999 -- T0 +Ns999 -- T1 +Ns999 -- T2 +Ns999 -- T3 +Ns999 -- T4 +Ns999 -- T5 +Ns999 -- T6 + +rectangle "V 0" as V0 #FloralWhite +rectangle "V 1" as V1 #FloralWhite +rectangle "V 2" as V2 #FloralWhite +rectangle "V 3" as V3 #FloralWhite +T0 -- V0 +T1 -- V1 +T2 -- V2 +T3 -- V3 + +@enduml diff --git a/benchmarks/docs/dataset-shape-1-1000-7.svg b/benchmarks/docs/dataset-shape-1-1000-7.svg new file mode 100644 index 0000000..558e4e4 --- /dev/null +++ b/benchmarks/docs/dataset-shape-1-1000-7.svg @@ -0,0 +1 @@ +RealmC 0NS 0NS 1NS 2...NS 999T 0T 1T 2T 3T 4T 5T 6V 0V 1V 2V 3 \ No newline at end of file diff --git a/benchmarks/docs/dataset-shape-10-2-3.puml b/benchmarks/docs/dataset-shape-10-2-3.puml new file mode 100644 index 0000000..0dd1752 --- /dev/null +++ b/benchmarks/docs/dataset-shape-10-2-3.puml @@ -0,0 +1,108 @@ +/' + ' Licensed to the Apache Software Foundation (ASF) under one + ' or more contributor license agreements. See the NOTICE file + ' distributed with this work for additional information + ' regarding copyright ownership. The ASF licenses this file + ' to you under the Apache License, Version 2.0 (the + ' "License"); you may not use this file except in compliance + ' with the License. You may obtain a copy of the License at + ' + ' http://www.apache.org/licenses/LICENSE-2.0 + ' + ' Unless required by applicable law or agreed to in writing, + ' software distributed under the License is distributed on an + ' "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + ' KIND, either express or implied. See the License for the + ' specific language governing permissions and limitations + ' under the License. +'/ +@startuml +skinparam linetype polyline + +rectangle Realm +rectangle "C 0" as C0 #AntiqueWhite +Realm -- C0 + +rectangle "NS 0" as Ns0 #Lavender +C0 -- Ns0 + +rectangle "NS 1" as Ns1 #Lavender +rectangle "NS 2" as Ns2 #Lavender +rectangle "NS 3" as Ns3 #Lavender +rectangle "NS 4" as Ns4 #Lavender +rectangle "NS 5" as Ns5 #Lavender +rectangle "NS 6" as Ns6 #Lavender +rectangle "NS 7" as Ns7 #Lavender +rectangle "NS 8" as Ns8 #Lavender +rectangle "NS 9" as Ns9 #Lavender +rectangle "NS 10" as Ns10 #Lavender +Ns0 -- Ns1 +Ns0 -- Ns2 +Ns0 -- Ns3 +Ns0 -- Ns4 +Ns0 -- Ns5 +Ns0 -- Ns6 +Ns0 -- Ns7 +Ns0 -- Ns8 +Ns0 -- Ns9 +Ns0 -- Ns10 + +rectangle "T 0" as T0 #LightCyan +rectangle "T 1" as T1 #LightCyan +rectangle "T 2" as T2 #LightCyan +rectangle "..." as T2n #LightCyan +rectangle "..." as T3n #LightCyan +rectangle "..." as T4n #LightCyan +rectangle "..." as T5n #LightCyan +rectangle "..." as T6n #LightCyan +rectangle "..." as T7n #LightCyan +rectangle "..." as T8n #LightCyan +rectangle "..." as T9n #LightCyan +rectangle "T 27" as T27 #LightCyan +rectangle "T 28" as T28 #LightCyan +rectangle "T 29" as T29 #LightCyan +Ns1 -- T0 +Ns1 -- T1 +Ns1 -- T2 +Ns2 -[dotted]- T2n +Ns3 -[dotted]- T3n +Ns4 -[dotted]- T4n +Ns5 -[dotted]- T5n +Ns6 -[dotted]- T6n +Ns7 -[dotted]- T7n +Ns8 -[dotted]- T8n +Ns9 -[dotted]- T9n +Ns10 -- T27 +Ns10 -- T28 +Ns10 -- T29 + +rectangle "V 0" as V0 #FloralWhite +rectangle "V 1" as V1 #FloralWhite +rectangle "V 2" as V2 #FloralWhite +rectangle "..." as V2n #FloralWhite +rectangle "..." as V3n #FloralWhite +rectangle "..." as V4n #FloralWhite +rectangle "..." as V5n #FloralWhite +rectangle "..." as V6n #FloralWhite +rectangle "..." as V7n #FloralWhite +rectangle "..." as V8n #FloralWhite +rectangle "..." as V9n #FloralWhite +rectangle "V 27" as V27 #FloralWhite +rectangle "V 28" as V28 #FloralWhite +rectangle "V 29" as V29 #FloralWhite +T0 -- V0 +T1 -- V1 +T2 -- V2 +T2n -[dotted]- V2n +T3n -[dotted]- V3n +T4n -[dotted]- V4n +T5n -[dotted]- V5n +T6n -[dotted]- V6n +T7n -[dotted]- V7n +T8n -[dotted]- V8n +T9n -[dotted]- V9n +T27 -- V27 +T28 -- V28 +T29 -- V29 + +@enduml diff --git a/benchmarks/docs/dataset-shape-10-2-3.svg b/benchmarks/docs/dataset-shape-10-2-3.svg new file mode 100644 index 0000000..5348b13 --- /dev/null +++ b/benchmarks/docs/dataset-shape-10-2-3.svg @@ -0,0 +1 @@ +RealmC 0NS 0NS 1NS 2NS 3NS 4NS 5NS 6NS 7NS 8NS 9NS 10T 0T 1T 2........................T 27T 28T 29V 0V 1V 2........................V 27V 28V 29 \ No newline at end of file diff --git a/benchmarks/docs/dataset-shape-2-3-5.puml b/benchmarks/docs/dataset-shape-2-3-5.puml new file mode 100644 index 0000000..effad5b --- /dev/null +++ b/benchmarks/docs/dataset-shape-2-3-5.puml @@ -0,0 +1,88 @@ +/' + ' Licensed to the Apache Software Foundation (ASF) under one + ' or more contributor license agreements. See the NOTICE file + ' distributed with this work for additional information + ' regarding copyright ownership. The ASF licenses this file + ' to you under the Apache License, Version 2.0 (the + ' "License"); you may not use this file except in compliance + ' with the License. You may obtain a copy of the License at + ' + ' http://www.apache.org/licenses/LICENSE-2.0 + ' + ' Unless required by applicable law or agreed to in writing, + ' software distributed under the License is distributed on an + ' "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + ' KIND, either express or implied. See the License for the + ' specific language governing permissions and limitations + ' under the License. +'/ +@startuml + +rectangle Realm +rectangle "C 0" as C0 #AntiqueWhite +rectangle "C 1" as C1 #AntiqueWhite +rectangle "C 2" as C2 #AntiqueWhite +Realm -- C0 +Realm -- C1 +Realm -- C2 + +rectangle "NS 0" as Ns0 #Lavender +C0 -- Ns0 + +rectangle "NS 1" as Ns1 #Lavender +rectangle "NS 2" as Ns2 #Lavender +Ns0 -- Ns1 +Ns0 -- Ns2 + +rectangle "NS 3" as Ns3 #Lavender +rectangle "NS 4" as Ns4 #Lavender +rectangle "NS 5" as Ns5 #Lavender +rectangle "NS 6" as Ns6 #Lavender +Ns1 -- Ns3 +Ns1 -- Ns4 +Ns2 -- Ns5 +Ns2 -- Ns6 + +rectangle "T 0" as T0 #LightCyan +rectangle "T 1" as T1 #LightCyan +rectangle "T 2" as T2 #LightCyan +rectangle "T 3" as T3 #LightCyan +rectangle "T 4" as T4 #LightCyan +rectangle "..." as T5n #LightCyan +rectangle "..." as T6n #LightCyan +rectangle "T 15" as T15 #LightCyan +rectangle "T 16" as T16 #LightCyan +rectangle "T 17" as T17 #LightCyan +rectangle "T 18" as T18 #LightCyan +rectangle "T 19" as T19 #LightCyan +Ns3 -- T0 +Ns3 -- T1 +Ns3 -- T2 +Ns3 -- T3 +Ns3 -- T4 +Ns4 -[dotted]- T5n +Ns5 -[dotted]- T6n +Ns6 -- T15 +Ns6 -- T16 +Ns6 -- T17 +Ns6 -- T18 +Ns6 -- T19 + +rectangle "V 0" as V0 #FloralWhite +rectangle "V 1" as V1 #FloralWhite +rectangle "V 2" as V2 #FloralWhite +rectangle "..." as V5n #FloralWhite +rectangle "..." as V6n #FloralWhite +rectangle "V 15" as V15 #FloralWhite +rectangle "V 16" as V16 #FloralWhite +rectangle "V 17" as V17 #FloralWhite +T0 -- V0 +T1 -- V1 +T2 -- V2 +T5n -[dotted]- V5n +T6n -[dotted]- V6n +T15 -- V15 +T16 -- V16 +T17 -- V17 + +@enduml diff --git a/benchmarks/docs/dataset-shape-2-3-5.svg b/benchmarks/docs/dataset-shape-2-3-5.svg new file mode 100644 index 0000000..fa804ff --- /dev/null +++ b/benchmarks/docs/dataset-shape-2-3-5.svg @@ -0,0 +1 @@ +RealmC 0C 1C 2NS 0NS 1NS 2NS 3NS 4NS 5NS 6T 0T 1T 2T 3T 4......T 15T 16T 17T 18T 19V 0V 1V 2......V 15V 16V 17 \ No newline at end of file diff --git a/benchmarks/docs/dataset-size.puml b/benchmarks/docs/dataset-size.puml new file mode 100644 index 0000000..2ab840c --- /dev/null +++ b/benchmarks/docs/dataset-size.puml @@ -0,0 +1,59 @@ +/' + ' Licensed to the Apache Software Foundation (ASF) under one + ' or more contributor license agreements. See the NOTICE file + ' distributed with this work for additional information + ' regarding copyright ownership. The ASF licenses this file + ' to you under the Apache License, Version 2.0 (the + ' "License"); you may not use this file except in compliance + ' with the License. You may obtain a copy of the License at + ' + ' http://www.apache.org/licenses/LICENSE-2.0 + ' + ' Unless required by applicable law or agreed to in writing, + ' software distributed under the License is distributed on an + ' "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + ' KIND, either express or implied. See the License for the + ' specific language governing permissions and limitations + ' under the License. +'/ +@startuml + +map C_0 { + catalogName => C_0 + defaultBaseLocation => file:///tmp/polaris/C_0 +} + +json NS_4 { + "namespace": ["NS_0", "NS_1", "NS_4"], + "properties": { + "Attribute_0": "Value_0", + "Attribute_1": "Value_1", + "...": "...", + "Attribute_100": "Value_100" + } +} + +json T_15 { + "name": "T_15", + "schema": { + "type": "struct", + "fields": [ + {"id": 0, "name": "column0", "type": "int", "required": true}, + {"id": 1, "name": "column1", "type": "int", "required": true}, + "...", + {"id": 999, "name": "column999", "type": "int", "required": true} + ], + "identifier-field-ids": [0] + }, + "properties": { + "Attribute_0": "Value_0", + "Attribute_1": "Value_1", + "...": "...", + "Attribute_59": "Value_59" + } +} + +C_0 -[hidden]- NS_4 +NS_4 -[hidden]- T_15 + +@enduml diff --git a/benchmarks/docs/dataset-size.svg b/benchmarks/docs/dataset-size.svg new file mode 100644 index 0000000..c7da075 --- /dev/null +++ b/benchmarks/docs/dataset-size.svg @@ -0,0 +1 @@ +C_0catalogNameC_0defaultBaseLocationfile:///tmp/polaris/C_0NS_4namespaceNS_0NS_1NS_4propertiesAttribute_0Value_0Attribute_1Value_1......Attribute_100Value_100T_15nameT_15schematypestructfieldsid0namecolumn0typeintrequiredtrueid1namecolumn1typeintrequiredtrue...id999namecolumn999typeintrequiredtrueidentifier-field-ids0propertiesAttribute_0Value_0Attribute_1Value_1......Attribute_59Value_59 \ No newline at end of file diff --git a/benchmarks/docs/gatling-report.png b/benchmarks/docs/gatling-report.png new file mode 100644 index 0000000..77688de Binary files /dev/null and b/benchmarks/docs/gatling-report.png differ