Skip to content

Commit 3b88c65

Browse files
committed
Adapt to database reversion of hashhead to modulo buckets.
1 parent 4bc74f3 commit 3b88c65

File tree

1 file changed

+37
-43
lines changed

1 file changed

+37
-43
lines changed

src/parser.cpp

Lines changed: 37 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -71,14 +71,8 @@ parser::parser(system::chain::selection context) NOEXCEPT
7171
service::node_witness;
7272

7373
// database (archive)
74-
// Bits cannot be set to the word boundary (32 or 64) as this
75-
// consumes the sentinel into the value domain. The bucket must
76-
// be able to hold a sentinel that is larger than the bucket count.
77-
// This presents a waste problem in the case of 32, since it will
78-
// cause an overflow into 5 byte links and 8 byte buckets. In this
79-
// case modulo bucketization will become more efficient.
80-
81-
configured.database.header_bits = 20;
74+
75+
configured.database.header_buckets = power2(20u);
8276
configured.database.header_size = 21'000'000;
8377
configured.database.header_rate = 5;
8478

@@ -88,7 +82,7 @@ parser::parser(system::chain::selection context) NOEXCEPT
8882
configured.database.output_size = 25'300'000'000;
8983
configured.database.output_rate = 5;
9084

91-
configured.database.point_bits = 31;
85+
configured.database.point_buckets = power2(31u);
9286
configured.database.point_size = 25'700'000'000;
9387
configured.database.point_rate = 5;
9488

@@ -98,11 +92,11 @@ parser::parser(system::chain::selection context) NOEXCEPT
9892
configured.database.outs_size = 3'700'000'000;
9993
configured.database.outs_rate = 5;
10094

101-
configured.database.tx_bits = 30;
95+
configured.database.tx_buckets = power2(30u);
10296
configured.database.tx_size = 17'000'000'000;
10397
configured.database.tx_rate = 5;
10498

105-
configured.database.txs_bits = 20;
99+
configured.database.txs_buckets = power2(20u);
106100
configured.database.txs_size = 1'050'000'000;
107101
configured.database.txs_rate = 5;
108102

@@ -114,7 +108,7 @@ parser::parser(system::chain::selection context) NOEXCEPT
114108
configured.database.confirmed_size = 2'575'500;
115109
configured.database.confirmed_rate = 5;
116110

117-
configured.database.strong_tx_bits = 30;
111+
configured.database.strong_tx_buckets = power2(30u);
118112
configured.database.strong_tx_size = 3'150'000'000;
119113
configured.database.strong_tx_rate = 5;
120114

@@ -124,21 +118,21 @@ parser::parser(system::chain::selection context) NOEXCEPT
124118
configured.database.prevout_size = 5'250'000'000;
125119
configured.database.prevout_rate = 5;
126120

127-
configured.database.validated_tx_bits = 0;
121+
configured.database.validated_tx_buckets = power2(0u);
128122
configured.database.validated_tx_size = 1;
129123
configured.database.validated_tx_rate = 5;
130124

131-
configured.database.validated_bk_bits = 21;
125+
configured.database.validated_bk_buckets = power2(21u);
132126
configured.database.validated_bk_size = 3'400'000;
133127
configured.database.validated_bk_rate = 5;
134128

135129
// database (optionals)
136130

137-
configured.database.address_bits = 0;
131+
configured.database.address_buckets = power2(0u);
138132
configured.database.address_size = 1;
139133
configured.database.address_rate = 5;
140134

141-
configured.database.neutrino_bits = 0;
135+
configured.database.neutrino_buckets = power2(0u);
142136
configured.database.neutrino_size = 1;
143137
configured.database.neutrino_rate = 5;
144138
}
@@ -659,9 +653,9 @@ options_metadata parser::load_settings() THROWS
659653

660654
/* header */
661655
(
662-
"database.header_bits",
663-
value<uint32_t>(&configured.database.header_bits),
664-
"The log2 number of buckets in the header table head, defaults to '20'."
656+
"database.header_buckets",
657+
value<uint32_t>(&configured.database.header_buckets),
658+
"The log2 number of buckets in the header table head, defaults to '2^20'."
665659
)
666660
(
667661
"database.header_size",
@@ -700,9 +694,9 @@ options_metadata parser::load_settings() THROWS
700694

701695
/* point */
702696
(
703-
"database.point_bits",
704-
value<uint32_t>(&configured.database.point_bits),
705-
"The log2 number of buckets in the spend table head, defaults to '31'."
697+
"database.point_buckets",
698+
value<uint32_t>(&configured.database.point_buckets),
699+
"The log2 number of buckets in the spend table head, defaults to '2^31'."
706700
)
707701
(
708702
"database.point_size",
@@ -741,9 +735,9 @@ options_metadata parser::load_settings() THROWS
741735

742736
/* tx */
743737
(
744-
"database.tx_bits",
745-
value<uint32_t>(&configured.database.tx_bits),
746-
"The log2 number of buckets in the tx table head, defaults to '30'."
738+
"database.tx_buckets",
739+
value<uint32_t>(&configured.database.tx_buckets),
740+
"The log2 number of buckets in the tx table head, defaults to '2^30'."
747741
)
748742
(
749743
"database.tx_size",
@@ -758,9 +752,9 @@ options_metadata parser::load_settings() THROWS
758752

759753
/* txs */
760754
(
761-
"database.txs_bits",
762-
value<uint32_t>(&configured.database.txs_bits),
763-
"The log2 number of buckets in the txs table head, defaults to '20'."
755+
"database.txs_buckets",
756+
value<uint32_t>(&configured.database.txs_buckets),
757+
"The log2 number of buckets in the txs table head, defaults to '2^20'."
764758
)
765759
(
766760
"database.txs_size",
@@ -799,9 +793,9 @@ options_metadata parser::load_settings() THROWS
799793

800794
/* strong_tx */
801795
(
802-
"database.strong_tx_bits",
803-
value<uint32_t>(&configured.database.strong_tx_bits),
804-
"The log2 number of buckets in the strong_tx table head, defaults to '30'."
796+
"database.strong_tx_buckets",
797+
value<uint32_t>(&configured.database.strong_tx_buckets),
798+
"The log2 number of buckets in the strong_tx table head, defaults to '2^30'."
805799
)
806800
(
807801
"database.strong_tx_size",
@@ -833,9 +827,9 @@ options_metadata parser::load_settings() THROWS
833827

834828
/* validated_tx */
835829
(
836-
"database.validated_tx_bits",
837-
value<uint32_t>(&configured.database.validated_tx_bits),
838-
"The number of buckets in the validated_tx table head, defaults to '0' (0 disables)."
830+
"database.validated_tx_buckets",
831+
value<uint32_t>(&configured.database.validated_tx_buckets),
832+
"The number of buckets in the validated_tx table head, defaults to '1' (0|1 disables)."
839833
)
840834
(
841835
"database.validated_tx_size",
@@ -850,9 +844,9 @@ options_metadata parser::load_settings() THROWS
850844

851845
/* validated_bk */
852846
(
853-
"database.validated_bk_bits",
854-
value<uint32_t>(&configured.database.validated_bk_bits),
855-
"The log2 number of buckets in the validated_bk table head, defaults to '21'."
847+
"database.validated_bk_buckets",
848+
value<uint32_t>(&configured.database.validated_bk_buckets),
849+
"The log2 number of buckets in the validated_bk table head, defaults to '2^21'."
856850
)
857851
(
858852
"database.validated_bk_size",
@@ -867,9 +861,9 @@ options_metadata parser::load_settings() THROWS
867861

868862
/* address */
869863
(
870-
"database.address_bits",
871-
value<uint32_t>(&configured.database.address_bits),
872-
"The log2 number of buckets in the address table head, defaults to '0' (0 disables)."
864+
"database.address_buckets",
865+
value<uint32_t>(&configured.database.address_buckets),
866+
"The log2 number of buckets in the address table head, defaults to '1' (0|1 disables)."
873867
)
874868
(
875869
"database.address_size",
@@ -884,9 +878,9 @@ options_metadata parser::load_settings() THROWS
884878

885879
/* neutrino */
886880
(
887-
"database.neutrino_bits",
888-
value<uint32_t>(&configured.database.neutrino_bits),
889-
"The log2 number of buckets in the neutrino table head, defaults to '0' (0 disables)."
881+
"database.neutrino_buckets",
882+
value<uint32_t>(&configured.database.neutrino_buckets),
883+
"The log2 number of buckets in the neutrino table head, defaults to '1' (0|1 disables)."
890884
)
891885
(
892886
"database.neutrino_size",

0 commit comments

Comments
 (0)