Tune RocksDB

indexv1
Martin Boehm 2018-02-26 13:11:23 +01:00
parent dc24d1da7a
commit 2375837d0a
2 changed files with 250 additions and 8 deletions

View File

@ -44,10 +44,10 @@ const (
var cfNames = []string{"default", "height", "outputs", "inputs"}
func openDB(path string) (*gorocksdb.DB, []*gorocksdb.ColumnFamilyHandle, error) {
c := gorocksdb.NewLRUCache(8 << 30) // 8 gb
c := gorocksdb.NewLRUCache(8 << 30) // 8GB
fp := gorocksdb.NewBloomFilter(10)
bbto := gorocksdb.NewDefaultBlockBasedTableOptions()
bbto.SetBlockSize(16 << 10) // 16kb
bbto.SetBlockSize(16 << 10) // 16kB
bbto.SetBlockCache(c)
bbto.SetFilterPolicy(fp)
@ -57,16 +57,16 @@ func openDB(path string) (*gorocksdb.DB, []*gorocksdb.ColumnFamilyHandle, error)
opts.SetCreateIfMissingColumnFamilies(true)
opts.SetMaxBackgroundCompactions(4)
opts.SetMaxBackgroundFlushes(2)
opts.SetBytesPerSync(1 << 20) // 1mb
opts.SetWriteBufferSize(1 << 29) // .5 gb
opts.SetBytesPerSync(1 << 20) // 1MB
opts.SetWriteBufferSize(1 << 24) // 16MB
opts.SetMaxOpenFiles(25000)
opts.SetCompression(gorocksdb.NoCompression)
// opts for outputs are different:
// no bloom filter - from documentation: If most of your queries are executed using iterators, you shouldn't set bloom filter
bbtoOutputs := gorocksdb.NewDefaultBlockBasedTableOptions()
bbtoOutputs.SetBlockSize(16 << 10) // 16kb
bbtoOutputs.SetBlockCache(c) // 8 gb
bbtoOutputs.SetBlockSize(16 << 10) // 16kB
bbtoOutputs.SetBlockCache(c) // 8GB
optsOutputs := gorocksdb.NewDefaultOptions()
optsOutputs.SetBlockBasedTableFactory(bbtoOutputs)
@ -74,8 +74,8 @@ func openDB(path string) (*gorocksdb.DB, []*gorocksdb.ColumnFamilyHandle, error)
optsOutputs.SetCreateIfMissingColumnFamilies(true)
optsOutputs.SetMaxBackgroundCompactions(4)
optsOutputs.SetMaxBackgroundFlushes(2)
optsOutputs.SetBytesPerSync(1 << 20) // 1mb
optsOutputs.SetWriteBufferSize(1 << 29) // 0.5 gb
optsOutputs.SetBytesPerSync(1 << 20) // 1MB
optsOutputs.SetWriteBufferSize(1 << 24) // 16MB
optsOutputs.SetMaxOpenFiles(25000)
optsOutputs.SetCompression(gorocksdb.NoCompression)

242
test.json 100644
View File

@ -0,0 +1,242 @@
{
"sendTransaction": {
"method": "sendTransaction",
"params": [
"010000000001019d64f0c72a0d206001decbffaa722eb1044534c74eee7a5df8318e42a4323ec10000000017160014550da1f5d25a9dae2eafd6902b4194c4c6500af6ffffffff02809698000000000017a914cd668d781ece600efa4b2404dc91fd26b8b8aed8870553d7360000000017a914246655bdbd54c7e477d0ea2375e86e0db2b8f80a8702473044022076aba4ad559616905fa51d4ddd357fc1fdb428d40cb388e042cdd1da4a1b7357022011916f90c712ead9a66d5f058252efd280439ad8956a967e95d437d246710bc9012102a80a5964c5612bb769ef73147b2cf3c149bc0fd4ecb02f8097629c94ab013ffd00000000"
]
},
"sendTransactionResult": {
"result": "474e6795760ebe81cb4023dc227e5a0efe340e1771c89a0035276361ed733de7"
},
"getDetailedTransaction": {
"method": "getDetailedTransaction",
"params": [
"474e6795760ebe81cb4023dc227e5a0efe340e1771c89a0035276361ed733de7"
]
},
"getDetailedTransactionResult": {
"result": {
"hex": "010000000001019d64f0c72a0d206001decbffaa722eb1044534c74eee7a5df8318e42a4323ec10000000017160014550da1f5d25a9dae2eafd6902b4194c4c6500af6ffffffff02809698000000000017a914cd668d781ece600efa4b2404dc91fd26b8b8aed8870553d7360000000017a914246655bdbd54c7e477d0ea2375e86e0db2b8f80a8702473044022076aba4ad559616905fa51d4ddd357fc1fdb428d40cb388e042cdd1da4a1b7357022011916f90c712ead9a66d5f058252efd280439ad8956a967e95d437d246710bc9012102a80a5964c5612bb769ef73147b2cf3c149bc0fd4ecb02f8097629c94ab013ffd00000000",
"height": -1,
"version": 1,
"hash": "474e6795760ebe81cb4023dc227e5a0efe340e1771c89a0035276361ed733de7",
"locktime": 0,
"size": 166,
"inputs": [
{
"prevTxId": "c13e32a4428e31f85d7aee4ec7344504b12e72aaffcbde0160200d2ac7f0649d",
"outputIndex": 0,
"script": "160014550da1f5d25a9dae2eafd6902b4194c4c6500af6",
"scriptAsm": "0014550da1f5d25a9dae2eafd6902b4194c4c6500af6",
"sequence": 4294967295,
"address": "2N79YMqgEqpr1Lqgqi6gU76zqTWbk4dRqyV",
"satoshis": 930081328
}
],
"inputSatoshis": 930081328,
"outputs": [
{
"satoshis": 10000000,
"script": "a914cd668d781ece600efa4b2404dc91fd26b8b8aed887",
"scriptAsm": "OP_HASH160 cd668d781ece600efa4b2404dc91fd26b8b8aed8 OP_EQUAL",
"address": "2NByHN6A8QYkBATzxf4pRGbCSHD5CEN2TRu"
},
{
"satoshis": 920081157,
"script": "a914246655bdbd54c7e477d0ea2375e86e0db2b8f80a87",
"scriptAsm": "OP_HASH160 246655bdbd54c7e477d0ea2375e86e0db2b8f80a OP_EQUAL",
"address": "2MvZguYaGjM7JihBgNqgLF2Ca2Enb76Hj9D"
}
],
"outputSatoshis": 930081157,
"feeSatoshis": 171
}
},
"getD2": {
"result": {
"hex": "010000000001019d64f0c72a0d206001decbffaa722eb1044534c74eee7a5df8318e42a4323ec10000000017160014550da1f5d25a9dae2eafd6902b4194c4c6500af6ffffffff02809698000000000017a914cd668d781ece600efa4b2404dc91fd26b8b8aed8870553d7360000000017a914246655bdbd54c7e477d0ea2375e86e0db2b8f80a8702473044022076aba4ad559616905fa51d4ddd357fc1fdb428d40cb388e042cdd1da4a1b7357022011916f90c712ead9a66d5f058252efd280439ad8956a967e95d437d246710bc9012102a80a5964c5612bb769ef73147b2cf3c149bc0fd4ecb02f8097629c94ab013ffd00000000",
"blockHash": "0000000000000d77454274b1f62d1b4472d582fa02399489b3529c1861bd910a",
"height": 1283714,
"blockTimestamp": 1519053802,
"version": 1,
"hash": "474e6795760ebe81cb4023dc227e5a0efe340e1771c89a0035276361ed733de7",
"locktime": 0,
"size": 0,
"inputs": [
{
"prevTxId": "",
"outputIndex": 0,
"script": "160014550da1f5d25a9dae2eafd6902b4194c4c6500af6",
"scriptAsm": "0014550da1f5d25a9dae2eafd6902b4194c4c6500af6",
"sequence": 4294967295,
"address": "",
"satoshis": 0
}
],
"inputSatoshis": 0,
"outputs": [
{
"satoshis": 100000000,
"script": "a914cd668d781ece600efa4b2404dc91fd26b8b8aed887",
"scriptAsm": "OP_HASH160 cd668d781ece600efa4b2404dc91fd26b8b8aed8 OP_EQUAL",
"address": ""
},
{
"satoshis": 9200811570,
"script": "a914246655bdbd54c7e477d0ea2375e86e0db2b8f80a87",
"scriptAsm": "OP_HASH160 246655bdbd54c7e477d0ea2375e86e0db2b8f80a OP_EQUAL",
"spentIndex": 1,
"address": ""
}
],
"outputSatoshis": 0,
"feeSatoshis": 0
}
},
"subscribe": [
"subscribe",
"bitcoind/hashblock"
],
"subscribe": [
"subscribe",
"bitcoind/addresstxid",
[
"2MzTmvPJLZaLzD9XdN3jMtQA5NexC3rAPww",
"2NAZRJKr63tSdcTxTN3WaE9ZNDyXy6PgGuv",
"2NBBaTqmVhTPkjAY5k3QMrGrgT1obB6Yfqo",
"2MsiAgG5LVDmnmJUPnYaCeQnARWGbGSVnr3",
"2NEa5ASseCV5twDukyQQzZDeeGGLx8xqSk7",
"2N4N3tcDD9fscewxLhiikYeGx5ErdqBAB6i",
"2Muf6t9yiQgNQwEbeav65tioqXxUZgZZDsP",
"2MyLfpnU6V3htkKc4GDy3jZJwrqEny5zuD1",
"2N64PAnkCsNiNPS9jRcWdABgUQBVnSH3Txq",
"2NCMAKdd28nZRryJpp32QFGA2g2pqxk4TPU",
"2Mshkm6yjJsqc9An1Agyg8bNaLLByNwB5rk",
"2NDEEu7sZrMRybPZwkiPcNZTEeLCTcmdeNG",
"2MxWgUGs2Ei77s2NiE5tSAcnZa5sm46ucbx",
"2NA83v4j5NxYfwRrPKRHMHCQH7bjkKqpubF",
"2NEXU6r1AnbVaqKSJUJfH9MdpynrKaD1CJc",
"2Muay1N4aD2K3sg5mz6QsLMu8qpXfois8CJ",
"2N6vi3wuKjHgZyvsaiB4Z3ai5eB9FNSusut",
"2N3rvH6gmdPPMsGrsEpbeoYBkLdrE5bzYRy",
"2MufqF2TPsVwbBJ1KCM4dMSYorwNXNZg5ws",
"2Mw78UAMckVsTwXb8VnfDfozMJSaaR4Uqqr"
]
],
"subscribeResult:": [
"bitcoind/hashblock",
"000000000000104614560f9110e89a139baf87bd389c255cdbe3dcf8d8f78fc0"
],
"subscribeResult": [
"bitcoind/addresstxid",
{
"address": "2NByHN6A8QYkBATzxf4pRGbCSHD5CEN2TRu",
"txid": "474e6795760ebe81cb4023dc227e5a0efe340e1771c89a0035276361ed733de7"
}
],
"dbl": {
"result": {
"totalCount": 3,
"items": [
{
"addresses": {
"2N4Q5FhU2497BryFfUgbqkAJE87aKHUhXMp": {
"inputIndexes": [
0
],
"outputIndexes": []
}
},
"satoshis": 0,
"confirmations": 221285,
"tx": {
"hex": "010000000001018a44999c07bba32df1cacdc50987944e68e3205b4429438fdde35c76024614090000000000ffffffff02404b4c000000000017a9147a55d61848e77ca266e79a39bfc85c580a6426c987a8386f0000000000160014d16b8c0680c61fc6ed2e407455715055e41052f502483045022100a7ca8f097525f9044e64376dc0a0f5d4aeb8d15d66808ba97979a0475b06b66502200597c8ebcef63e047f9aeef1a8001d3560470cf896c12f6990eec4faec599b950121033add1f0e8e3c3136f7428dd4a4de1057380bd311f5b0856e2269170b4ffa65bf00000000",
"height": 1063387,
"blockTimestamp": 1483374791,
"version": 1,
"hash": "65b811d3eca0fe6915d9f2d77c86c5a7f19bf66b1b1253c2c51cb4ae5f0c017b",
"inputs": [
{
"outputIndex": 0,
"script": "",
"scriptAsm": "",
"sequence": 4294967295,
"address": "2N4Q5FhU2497BryFfUgbqkAJE87aKHUhXMp",
"satoshis": 0
}
],
"outputs": [
{
"satoshis": 5000000,
"script": "a9147a55d61848e77ca266e79a39bfc85c580a6426c987",
"scriptAsm": "OP_HASH160 7a55d61848e77ca266e79a39bfc85c580a6426c9 OP_EQUAL",
"address": "2N4Q5FhU2497BryFfUgbqkAJE87aKHUhXMp"
},
{
"satoshis": 7289000,
"script": "0014d16b8c0680c61fc6ed2e407455715055e41052f5",
"scriptAsm": "0 d16b8c0680c61fc6ed2e407455715055e41052f5",
"spentIndex": 1,
"address": ""
}
]
}
}
]
}
},
"dbc": {
"result": {
"totalCount": 3,
"items": [
{
"addresses": {
"2Mt7P2BAfE922zmfXrdcYTLyR7GUvbwSEns": {
"inputIndexes": [
0
],
"outputIndexes": []
}
},
"satoshis": -4998060,
"confirmations": 167491,
"tx": {
"hex": "01000000000101b37ac5560b4af9d3c8128037c6f9710973870fe29d7d2bcb0af45109cdc7030000000000171600148696844b831babb221cdf61bd403d4957615ebfeffffffff01183c4c000000000017a914923d8873eaa1f1bf3ada05eddab1a8af36c40dcb8702473044022033f5eb9966f84aded43db81d7be4f61bd2640845f39e8451019411838f09979702205abe01330e56944bb9de0ed46b1c76eb45b88a501fea8063fd8b7035a620c2400121037ff6f928c104d7a01ebc9cf5e0a6d4f03e555788d6b4dda6e9ffbc40f6cdbaf700000000",
"blockHash": "00000000000008ff4f8113a18638d296f72acbdafe7b556e8c704a4840a30640",
"height": 1117182,
"blockTimestamp": 1491764656,
"version": 1,
"hash": "c6a92097466b9a690eeb9e704625587cbcf357520cc7573b2323d5b012026e0e",
"locktime": 0,
"size": 134,
"inputs": [
{
"prevTxId": "0003c7cd0951f40acb2b7d9de20f87730971f9c6378012c8d3f94a0b56c57ab3",
"outputIndex": 0,
"script": "1600148696844b831babb221cdf61bd403d4957615ebfe",
"scriptAsm": "00148696844b831babb221cdf61bd403d4957615ebfe",
"sequence": 4294967295,
"address": "2Mt7P2BAfE922zmfXrdcYTLyR7GUvbwSEns",
"satoshis": 4998060
}
],
"inputSatoshis": 4998060,
"outputs": [
{
"satoshis": 4996120,
"script": "a914923d8873eaa1f1bf3ada05eddab1a8af36c40dcb87",
"scriptAsm": "OP_HASH160 923d8873eaa1f1bf3ada05eddab1a8af36c40dcb OP_EQUAL",
"spentTxId": "08c7ffb9d594d9c9f4e8827ca6058b94ff865260aa467c325562a213386be99e",
"spentIndex": 0,
"spentHeight": 1117205,
"address": "2N6aUMgQk8y1zvoq6FeWFyotyj75WY9BGsu"
}
],
"outputSatoshis": 4996120,
"feeSatoshis": 1940
}
}
]
}
}
}