数据库管理系统架构
三、磁盘分区
2.元数据
元数据的内容如下所示。一个分区只有一个元数据,这就是为什么采用JSON格式,虽然有点多余,但很容易通过编程进行处理。
$ cat ./data/p-1600000001-1600003600/meta.json{ "minTimestamp": 1600000001, "maxTimestamp": 1600003600, "numDataPoints": 7200, "metrics": { "metric-1": {"name": "metric-1","offset": 0,"minTimestamp": 1600000001,"maxTimestamp": 1600003600,"numDataPoints": 3600 }, "metric-2": {"name": "metric-2","offset": 36014,"minTimestamp": 1600000001,"maxTimestamp": 1600003600,"numDataPoints": 3600 } }}
元数据用于在分区中构建索引。这是存储每个度量的文件内偏移量和字节大小的地方,只有这些元数据才能进入堆。通过这些信息,tstorage尝试随机访问映射到内核空间的数据。类似于:
{ "minTimestamp": 1600000001, "maxTimestamp": 1600003600, "numDataPoints": 7200, "metrics": {"metric-1": { "name": "metric-1",┌───── "offset": 0,│ "minTimestamp": 1600000001,│ "maxTimestamp": 1600003600,│ "numDataPoints": 3600│ },│ "metric-2": {│ "name": "metric-2",│ "offset": 36014, ────────────┐│ "minTimestamp": 1600000001, ││ "maxTimestamp": 1600003600, ││ "numDataPoints": 3600 ││ }││} ││ } ┌───────────────────┘│ │V V0 36014┌───────────────────────────┐│ Metric-1 │ Metric-2 ││───────────────────────────││ Metric-3 │ ││──────────┘ ││ Metric-4││───────────────────────────││Metric-5 │Metric-6 ││───────────────────────────││Metric-7│││───────────────────────┘││Metric-8 ││───────────────────────────││Metric-9│ Metric-10 │└───────────────────────────┘
为了存储每个度量的起始偏移量,我们需要在刷新到磁盘时将其持久化。即对每个度量的数据点列表进行编码,并在构建索引时将偏移量写入元数据文件。
浮生若梦
三、磁盘分区
2.元数据
元数据的内容如下所示。一个分区只有一个元数据,这就是为什么采用JSON格式,虽然有点多余,但很容易通过编程进行处理。
$ cat ./data/p-1600000001-1600003600/meta.json{ "minTimestamp": 1600000001, "maxTimestamp": 1600003600, "numDataPoints": 7200, "metrics": { "metric-1": {"name": "metric-1","offset": 0,"minTimestamp": 1600000001,"maxTimestamp": 1600003600,"numDataPoints": 3600 }, "metric-2": {"name": "metric-2","offset": 36014,"minTimestamp": 1600000001,"maxTimestamp": 1600003600,"numDataPoints": 3600 } }}
元数据用于在分区中构建索引。这是存储每个度量的文件内偏移量和字节大小的地方,只有这些元数据才能进入堆。通过这些信息,tstorage尝试随机访问映射到内核空间的数据。类似于:
{ "minTimestamp": 1600000001, "maxTimestamp": 1600003600, "numDataPoints": 7200, "metrics": {"metric-1": { "name": "metric-1",┌───── "offset": 0,│ "minTimestamp": 1600000001,│ "maxTimestamp": 1600003600,│ "numDataPoints": 3600│ },│ "metric-2": {│ "name": "metric-2",│ "offset": 36014, ────────────┐│ "minTimestamp": 1600000001, ││ "maxTimestamp": 1600003600, ││ "numDataPoints": 3600 ││ }││} ││ } ┌───────────────────┘│ │V V0 36014┌───────────────────────────┐│ Metric-1 │ Metric-2 ││───────────────────────────││ Metric-3 │ ││──────────┘ ││ Metric-4││───────────────────────────││Metric-5 │Metric-6 ││───────────────────────────││Metric-7│││───────────────────────┘││Metric-8 ││───────────────────────────││Metric-9│ Metric-10 │└───────────────────────────┘
为了存储每个度量的起始偏移量,我们需要在刷新到磁盘时将其持久化。即对每个度量的数据点列表进行编码,并在构建索引时将偏移量写入元数据文件。
浮生若梦
数据库管理系统架构
三、磁盘分区
2.元数据
元数据的内容如下所示。一个分区只有一个元数据,这就是为什么采用JSON格式,虽然有点多余,但很容易通过编程进行处理。
$ cat ./data/p-1600000001-1600003600/meta.json{ "minTimestamp": 1600000001, "maxTimestamp": 1600003600, "numDataPoints": 7200, "metrics": { "metric-1": {"name": "metric-1","offset": 0,"minTimestamp": 1600000001,"maxTimestamp": 1600003600,"numDataPoints": 3600 }, "metric-2": {"name": "metric-2","offset": 36014,"minTimestamp": 1600000001,"maxTimestamp": 1600003600,"numDataPoints": 3600 } }}
元数据用于在分区中构建索引。这是存储每个度量的文件内偏移量和字节大小的地方,只有这些元数据才能进入堆。通过这些信息,tstorage尝试随机访问映射到内核空间的数据。类似于:
{ "minTimestamp": 1600000001, "maxTimestamp": 1600003600, "numDataPoints": 7200, "metrics": {"metric-1": { "name": "metric-1",┌───── "offset": 0,│ "minTimestamp": 1600000001,│ "maxTimestamp": 1600003600,│ "numDataPoints": 3600│ },│ "metric-2": {│ "name": "metric-2",│ "offset": 36014, ────────────┐│ "minTimestamp": 1600000001, ││ "maxTimestamp": 1600003600, ││ "numDataPoints": 3600 ││ }││} ││ } ┌───────────────────┘│ │V V0 36014┌───────────────────────────┐│ Metric-1 │ Metric-2 ││───────────────────────────││ Metric-3 │ ││──────────┘ ││ Metric-4││───────────────────────────││Metric-5 │Metric-6 ││───────────────────────────││Metric-7│││───────────────────────┘││Metric-8 ││───────────────────────────││Metric-9│ Metric-10 │└───────────────────────────┘
为了存储每个度量的起始偏移量,我们需要在刷新到磁盘时将其持久化。即对每个度量的数据点列表进行编码,并在构建索引时将偏移量写入元数据文件。
三、磁盘分区
2.元数据
元数据的内容如下所示。一个分区只有一个元数据,这就是为什么采用JSON格式,虽然有点多余,但很容易通过编程进行处理。
$ cat ./data/p-1600000001-1600003600/meta.json{ "minTimestamp": 1600000001, "maxTimestamp": 1600003600, "numDataPoints": 7200, "metrics": { "metric-1": {"name": "metric-1","offset": 0,"minTimestamp": 1600000001,"maxTimestamp": 1600003600,"numDataPoints": 3600 }, "metric-2": {"name": "metric-2","offset": 36014,"minTimestamp": 1600000001,"maxTimestamp": 1600003600,"numDataPoints": 3600 } }}
元数据用于在分区中构建索引。这是存储每个度量的文件内偏移量和字节大小的地方,只有这些元数据才能进入堆。通过这些信息,tstorage尝试随机访问映射到内核空间的数据。类似于:
{ "minTimestamp": 1600000001, "maxTimestamp": 1600003600, "numDataPoints": 7200, "metrics": {"metric-1": { "name": "metric-1",┌───── "offset": 0,│ "minTimestamp": 1600000001,│ "maxTimestamp": 1600003600,│ "numDataPoints": 3600│ },│ "metric-2": {│ "name": "metric-2",│ "offset": 36014, ────────────┐│ "minTimestamp": 1600000001, ││ "maxTimestamp": 1600003600, ││ "numDataPoints": 3600 ││ }││} ││ } ┌───────────────────┘│ │V V0 36014┌───────────────────────────┐│ Metric-1 │ Metric-2 ││───────────────────────────││ Metric-3 │ ││──────────┘ ││ Metric-4││───────────────────────────││Metric-5 │Metric-6 ││───────────────────────────││Metric-7│││───────────────────────┘││Metric-8 ││───────────────────────────││Metric-9│ Metric-10 │└───────────────────────────┘
为了存储每个度量的起始偏移量,我们需要在刷新到磁盘时将其持久化。即对每个度量的数据点列表进行编码,并在构建索引时将偏移量写入元数据文件。
#设计改版#记UiiiUiii改版,改版一定要和商业数据的采集、整理、分析、提炼结合在一起。
在起始阶段,就要确定这次改版的目的、价值、衡量价值的指标、度量指标的方法。
如果这次改版的重要性高,就应该提前铺垫各种埋点路径和A/B测试手段,并即时监控变化。
说什么时间不够、资源有限都是借口和空话,本质上还是对整体产品设计的不理解,或者懒惰。
——《设计的思考:用户体验设计核心问答》
在起始阶段,就要确定这次改版的目的、价值、衡量价值的指标、度量指标的方法。
如果这次改版的重要性高,就应该提前铺垫各种埋点路径和A/B测试手段,并即时监控变化。
说什么时间不够、资源有限都是借口和空话,本质上还是对整体产品设计的不理解,或者懒惰。
——《设计的思考:用户体验设计核心问答》
✋热门推荐