@inproceedings{RieggerVinconPetrov2018, author = {Riegger, Christian and Vin{\c{c}}on, Tobias and Petrov, Ilia}, title = {Efficient data and indexing structure for blockchains in enterprise systems}, series = {iiWAS 2018 : proceedings of the 20th International Conference on Information Integration and Web-based Applications \& Services : Yogyakarta, Indonesia — November 19 - 21, 2018}, booktitle = {iiWAS 2018 : proceedings of the 20th International Conference on Information Integration and Web-based Applications \& Services : Yogyakarta, Indonesia — November 19 - 21, 2018}, editor = {Indrawan-Santiago, Maria}, publisher = {ACM}, address = {New York, NY}, isbn = {978-1-4503-6479-9}, doi = {10.1145/3282373.3282402}, pages = {10}, year = {2018}, abstract = {Blockchains yield to new workloads in database management systems and K/V-stores. Distributed Ledger Technology (DLT) is a technique for managing transactions in 'trustless' distributed systems. Yet, clients of nodes in blockchain networks are backed by 'trustworthy' K/V-Stores, like LevelDB or RocksDB in Ethereum, which are based on Log-Structured Merge Trees (LSM Trees). However, LSM-Trees do not fully match the properties of blockchains and enterprise workloads. In this paper, we claim that Partitioned B-Trees (PBT) fit the properties of this DLT: uniformly distributed hash keys, immutability, consensus, invalid blocks, unspent and off-chain transactions, reorganization and data state / version ordering in a distributed log-structure. PBT can locate records of newly inserted key-value pairs, as well as data of unspent transactions, in separate partitions in main memory. Once several blocks acquire consensus, PBTs evict a whole partition, which becomes immutable, to secondary storage. This behavior minimizes write amplification and enables a beneficial sequential write pattern on modern hardware. Furthermore, DLT implicate some type of log-based versioning. PBTs can serve as MV-store for data storage of logical blocks and indexing in multi-version concurrency control (MVCC) transaction processing.}, language = {en} }