table_fields
sc_crawler.table_fields
#
Enumerations, JSON nested data objects & other helper classes used in sc_crawler.tables.
Classes:
| Name | Description |
|---|---|
HashableDict |
A dict that can be hashed by its JSON representation. |
HashableJSON |
Alternative JSON SQLAlchemy column representation, which can be hashed. |
Json |
Custom base SQLModel class that supports dumping as JSON. |
Status |
Last known status of a resource, e.g. active or inactive. |
Cpu |
CPU details. |
Gpu |
GPU accelerator details. |
StorageType |
Type of a storage, e.g. HDD or SSD. |
DatabaseEngine |
Managed database engine. |
DatabaseSupportLevel |
Vendor support tier for a managed database SKU. |
DatabaseStorageScope |
Scope of a managed database storage product. |
Disk |
Disk definition based on size and storage type. |
TrafficDirection |
Direction of the network traffic. |
CpuAllocation |
CPU allocation methods at cloud vendors. |
CpuArchitecture |
CPU architectures. |
DdrGeneration |
Generation of the DDR SDRAM. |
Allocation |
Server allocation options. |
PriceUnit |
Supported units for the price tables. |
PriceTier |
Price tier definition. |
Parallelism |
Parallelism mode of a benchmark run. |
BenchmarkComponentAggregationMethod |
How component benchmark scores are combined into one composite score. |
BenchmarkComponentNormalizationMethod |
How each raw benchmark value is scaled to be comparable across benchmarks. |
BenchmarkComponentMissingPolicy |
What to do when a component has no usable measurement for a server. |
ScoreComponent |
One component's contribution to a composite workload profile score. |
WorkloadScoreBreakdown |
Per-server realized calculation of a composite workload profile score. |
Category |
Workload category for a cloud server type. |
HashableDict
#
Bases: dict
A dict that can be hashed by its JSON representation.
Useful for typehinting dict-type table columns that are primary
keys (which need to be hashable for SQLAlchemy ORM). See
sc_crawler.table_fields.HashableJSON class for the related sa_type.
Source code in sc_crawler/table_fields.py
HashableJSON
#
Bases: TypeDecorator
Alternative JSON SQLAlchemy column representation, which can be hashed.
Source code in sc_crawler/table_fields.py
Json
#
Status
#
Cpu
#
Bases: Json
CPU details.
Attributes:
| Name | Type | Description |
|---|---|---|
manufacturer |
Optional[str]
|
The manufacturer of the processor, e.g. Intel or AMD. |
family |
Optional[str]
|
The product line/family of the processor, e.g. Xeon, Core i7, Ryzen 9. |
model |
Optional[str]
|
The model number of the processor, e.g. 9750H. |
cores |
Optional[int]
|
Number of CPU cores. |
threads |
Optional[int]
|
Number of CPU threads. |
l1_cache_size |
Optional[int]
|
L1 cache size in bytes. |
l2_cache_size |
Optional[int]
|
L2 cache size in bytes. |
l3_cache_size |
Optional[int]
|
L3 cache size in bytes. |
microcode |
Optional[str]
|
Microcode version. |
capabilities |
List[str]
|
List of CPU flag/features/capabilities, e.g. MMX, Intel SGX etc. |
bugs |
List[str]
|
List of known bugs, e.g. cpu_meltdown spectre_v1. |
bogomips |
Optional[float]
|
BogoMips value. |
Source code in sc_crawler/table_fields.py
manufacturer
class-attribute
instance-attribute
#
The manufacturer of the processor, e.g. Intel or AMD.
family
class-attribute
instance-attribute
#
The product line/family of the processor, e.g. Xeon, Core i7, Ryzen 9.
model
class-attribute
instance-attribute
#
The model number of the processor, e.g. 9750H.
capabilities
class-attribute
instance-attribute
#
List of CPU flag/features/capabilities, e.g. MMX, Intel SGX etc.
bugs
class-attribute
instance-attribute
#
List of known bugs, e.g. cpu_meltdown spectre_v1.
Gpu
#
Bases: Json
GPU accelerator details.
Attributes:
| Name | Type | Description |
|---|---|---|
manufacturer |
str
|
The manufacturer/brand of the GPU accelerator, e.g. Nvidia or AMD. |
family |
Optional[str]
|
The model family/architecture of the GPU accelerator. |
model |
Optional[str]
|
The model number of the GPU accelerator. |
memory |
int
|
Memory (MiB) allocated to the GPU accelerator. |
firmware_version |
Optional[str]
|
Firmware version. |
bios_version |
Optional[str]
|
Video BIOS version. |
graphics_clock |
Optional[int]
|
GPU core clock speed (Mhz). |
sm_clock |
Optional[int]
|
Streaming Multiprocessor clock speed (Mhz). |
mem_clock |
Optional[int]
|
Memory clock speed (Mhz). |
video_clock |
Optional[int]
|
Video clock speed (Mhz). |
Source code in sc_crawler/table_fields.py
manufacturer
instance-attribute
#
The manufacturer/brand of the GPU accelerator, e.g. Nvidia or AMD.
family
class-attribute
instance-attribute
#
The model family/architecture of the GPU accelerator.
graphics_clock
class-attribute
instance-attribute
#
GPU core clock speed (Mhz).
sm_clock
class-attribute
instance-attribute
#
Streaming Multiprocessor clock speed (Mhz).
StorageType
#
Type of a storage, e.g. HDD or SSD.
Attributes:
| Name | Type | Description |
|---|---|---|
HDD |
Magnetic hard disk drive. |
|
SSD |
Solid-state drive. |
|
NVME_SSD |
NVMe based solid-state drive. |
|
NETWORK |
Storage over network, e.g. using NFS. |
Source code in sc_crawler/table_fields.py
NETWORK
class-attribute
instance-attribute
#
Storage over network, e.g. using NFS.
DatabaseEngine
#
Managed database engine.
Attributes:
| Name | Type | Description |
|---|---|---|
POSTGRESQL |
PostgreSQL. |
Source code in sc_crawler/table_fields.py
DatabaseSupportLevel
#
Vendor support tier for a managed database SKU.
Attributes:
| Name | Type | Description |
|---|---|---|
STANDARD |
Standard support level. |
Source code in sc_crawler/table_fields.py
DatabaseStorageScope
#
Disk
#
Bases: Json
Disk definition based on size and storage type.
Attributes:
| Name | Type | Description |
|---|---|---|
size |
int
|
Storage size in GB. |
storage_type |
StorageType
|
Type of the storage. |
description |
Optional[str]
|
Optional description of the storage, e.g. temp disk. |
Source code in sc_crawler/table_fields.py
TrafficDirection
#
CpuAllocation
#
CPU allocation methods at cloud vendors.
Attributes:
| Name | Type | Description |
|---|---|---|
SHARED |
Shared CPU with other virtual server tenants. |
|
BURSTABLE |
CPU that can temporarily burst above its baseline performance. |
|
DEDICATED |
Dedicated CPU with known performance. |
Source code in sc_crawler/table_fields.py
CpuArchitecture
#
CPU architectures.
Attributes:
| Name | Type | Description |
|---|---|---|
ARM64 |
64-bit ARM architecture. |
|
ARM64_MAC |
Apple 64-bit ARM architecture. |
|
I386 |
32-bit x86 architecture. |
|
X86_64 |
64-bit x86 architecture. |
|
X86_64_MAC |
Apple 64-bit x86 architecture. |
Source code in sc_crawler/table_fields.py
DdrGeneration
#
Allocation
#
PriceUnit
#
Supported units for the price tables.
Attributes:
| Name | Type | Description |
|---|---|---|
YEAR |
Price per year. |
|
MONTH |
Price per month. |
|
HOUR |
Price per hour. |
|
GIB |
Price per gibibyte (GiB). |
|
GB |
Price per gigabyte (GB). |
|
GB_MONTH |
Price per gigabyte (GB)/month. |
Source code in sc_crawler/table_fields.py
PriceTier
#
Bases: Json
Price tier definition.
Infinite bounds (e.g. for an open-ended upper tier) are stored as
float("inf") in Python and automatically serialized to the
JSON-safe string "Infinity" on export. Both representations are
accepted as input: the model validator converts "Infinity" back
to float("inf") when loading from JSON.
Attributes:
| Name | Type | Description |
|---|---|---|
lower |
float
|
Lower bound of pricing tier, e.g. 100 GB. Unit is defined in the parent object. |
upper |
float
|
Upper bound of pricing tier, e.g. 1 TB. Unit is defined in the parent object. |
price |
float
|
Price in the pricing tier. Currency is defined in the parent object. |
Source code in sc_crawler/table_fields.py
lower
instance-attribute
#
Lower bound of pricing tier, e.g. 100 GB. Unit is defined in the parent object.
upper
instance-attribute
#
Upper bound of pricing tier, e.g. 1 TB. Unit is defined in the parent object.
price
instance-attribute
#
Price in the pricing tier. Currency is defined in the parent object.
Parallelism
#
BenchmarkComponentAggregationMethod
#
How component benchmark scores are combined into one composite score.
Attributes:
| Name | Type | Description |
|---|---|---|
WEIGHTED_GEOMETRIC_MEAN |
Weighted geometric mean: 2 ** (Σ wᵢ·log2(normalizedᵢ) / Σ wᵢ). Preserves |
Source code in sc_crawler/table_fields.py
WEIGHTED_GEOMETRIC_MEAN
class-attribute
instance-attribute
#
Weighted geometric mean: 2 ** (Σ wᵢ·log2(normalizedᵢ) / Σ wᵢ). Preserves ratio/percentage linearity and is robust to outliers.
BenchmarkComponentNormalizationMethod
#
How each raw benchmark value is scaled to be comparable across benchmarks.
Attributes:
| Name | Type | Description |
|---|---|---|
MEDIAN_RATIO |
Oriented ratio to the fleet median for that benchmark: raw/median when |
Source code in sc_crawler/table_fields.py
MEDIAN_RATIO
class-attribute
instance-attribute
#
Oriented ratio to the fleet median for that benchmark: raw/median when higher-is-better, median/raw otherwise. 1.0 == the fleet median.
BenchmarkComponentMissingPolicy
#
What to do when a component has no usable measurement for a server.
Attributes:
| Name | Type | Description |
|---|---|---|
IGNORE |
Omit the component and renormalize weights over the rest (default). |
|
PENALIZE |
Substitute the component's |
|
REQUIRE |
Suppress the whole compound score for that server if the component is |
Source code in sc_crawler/table_fields.py
IGNORE
class-attribute
instance-attribute
#
Omit the component and renormalize weights over the rest (default). Use when the metric is genuinely optional
PENALIZE
class-attribute
instance-attribute
#
Substitute the component's penalty floor as the normalized value and keep
its full weight, so the composite collapses toward zero. Use when missing means
failure (e.g. a benchmark that timed out / could not complete).
REQUIRE
class-attribute
instance-attribute
#
Suppress the whole compound score for that server if the component is missing. Use when the component is load-bearing for the profile's meaning.
ScoreComponent
#
Bases: Json
One component's contribution to a composite workload profile score.
Attributes:
| Name | Type | Description |
|---|---|---|
label |
str
|
Human-readable, concise description of what the component measures. |
weight |
float
|
Relative weight of this component. Weights within a workload sum to 1.0. |
weight_share |
float
|
The weight of this component as a share of the total weight (0.0 for ignored components). |
raw |
int | float | None
|
The raw benchmark value. |
reference |
int | float | None
|
The reference benchmark value, e.g. the fleet median. |
normalized |
float | None
|
The normalized benchmark value, e.g. the ratio of the raw value to the reference value. |
higher_is_better |
bool
|
Whether a higher value is better. |
note |
str | None
|
Optional note about this component. |
impact |
float | None
|
How much this benchmark component raised or lowered the overall workload score. Values are approximate percentages (positive helps, negative hurts the final score), do not add up to the total score, and actual formula depends on the workload's aggregation and normalization methods. |
Source code in sc_crawler/table_fields.py
label
instance-attribute
#
Human-readable, concise description of what the component measures.
weight
instance-attribute
#
Relative weight of this component. Weights within a workload sum to 1.0.
weight_share
instance-attribute
#
The weight of this component as a share of the total weight (0.0 for ignored components).
reference
class-attribute
instance-attribute
#
The reference benchmark value, e.g. the fleet median.
normalized
class-attribute
instance-attribute
#
The normalized benchmark value, e.g. the ratio of the raw value to the reference value.
higher_is_better
class-attribute
instance-attribute
#
Whether a higher value is better.
impact
class-attribute
instance-attribute
#
How much this benchmark component raised or lowered the overall workload score. Values are approximate percentages (positive helps, negative hurts the final score), do not add up to the total score, and actual formula depends on the workload's aggregation and normalization methods.
WorkloadScoreBreakdown
#
Bases: Json
Per-server realized calculation of a composite workload profile score.
Attributes:
| Name | Type | Description |
|---|---|---|
aggregation |
BenchmarkComponentAggregationMethod
|
How the component benchmark scores are combined into one composite score. |
normalization |
BenchmarkComponentNormalizationMethod
|
How each raw benchmark value is scaled to be comparable across benchmarks. |
coverage |
float
|
The total weight of the components. |
components |
list[ScoreComponent]
|
The components of the workload profile. |
Source code in sc_crawler/table_fields.py
Category
#
Workload category for a cloud server type.
Attributes:
| Name | Type | Description |
|---|---|---|
GENERAL_PURPOSE |
General-purpose server. |
|
COMPUTE_OPTIMIZED |
Compute-optimized server. |
|
MEMORY_OPTIMIZED |
Memory-optimized server. |
|
STORAGE_AND_DATABASE |
Storage- and database-optimized server. |
|
GPU_ACCELERATED |
GPU-accelerated server. |
|
BURSTABLE_AND_BUDGET |
Burstable and budget-friendly server. |
Source code in sc_crawler/table_fields.py
GENERAL_PURPOSE
class-attribute
instance-attribute
#
General-purpose server.
COMPUTE_OPTIMIZED
class-attribute
instance-attribute
#
Compute-optimized server.
MEMORY_OPTIMIZED
class-attribute
instance-attribute
#
Memory-optimized server.
STORAGE_AND_DATABASE
class-attribute
instance-attribute
#
Storage- and database-optimized server.
GPU_ACCELERATED
class-attribute
instance-attribute
#
GPU-accelerated server.
BURSTABLE_AND_BUDGET
class-attribute
instance-attribute
#
Burstable and budget-friendly server.