skip to main content
10.1145/3627535.3638468acmconferencesArticle/Chapter ViewAbstractPublication PagesppoppConference Proceedingsconference-collections
research-article

OsirisBFT: Say No to Task Replication for Scalable Byzantine Fault Tolerant Analytics

Published: 20 February 2024 Publication History

Abstract

We present a verification-based Byzantine Fault Tolerant processing system, called OsirisBFT, for distributed task-parallel applications. OsirisBFT treats computation tasks differently from state update tasks, allowing the application to scale independently from number of expected failures. OsirisBFT captures application-specific verification semantics via generic verification operators and employs lightweight verification strategies with little coordination during graceful execution. Evaluation across multiple applications and workloads shows that OsirisBFT delivers high processing throughput and scalability compared to replicated processing. Importantly, the scalable nature of OsirisBFT enables it to reduce the performance gap compared to baseline with no fault tolerance by simply scaling out.

References

[1]
Michael Abd-El-Malek, Gregory R. Ganger, Garth R. Goodson, Michael K. Reiter, and Jay J. Wylie. Fault-Scalable Byzantine Fault-Tolerant Services. In Proceedings of the ACM Symposium on Operating Systems Principles, SOSP '05, page 59--74, 2005.
[2]
Marcos K. Aguilera, Naama Ben-David, Irina Calciu, Rachid Guerraoui, Erez Petrank, and Sam Toueg. Passing Messages While Sharing Memory. In Proceedings of the 2018 ACM Symposium on Principles of Distributed Computing, PODC '18, page 51--60, 2018.
[3]
Marcos K. Aguilera, Naama Ben-David, Rachid Guerraoui, Virendra Marathe, and Igor Zablotchi. The Impact of RDMA on Agreement. In Proceedings of the 2019 ACM Symposium on Principles of Distributed Computing, PODC '19, page 409--418, 2019.
[4]
Marcos K. Aguilera, Naama Ben-David, Rachid Guerraoui, Virendra J. Marathe, Athanasios Xygkis, and Igor Zablotchi. Microsecond Consensus for Microsecond Applications. In 14th USENIX Symposium on Operating Systems Design and Implementation, OSDI '20, pages 599--616, November 2020.
[5]
Marcos K. Aguilera, Naama Ben-David, Rachid Guerraoui, Antoine Murat, Athanasios Xygkis, and Igor Zablotchi. UBFT: Microsecond-Scale BFT Using Disaggregated Memory. In Proceedings of the 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 2, ASPLOS '23, page 862--877, 2023.
[6]
Amitanand S. Aiyer, Lorenzo Alvisi, Allen Clement, Mike Dahlin, Jean-Philippe Martin, and Carl Porth. BAR Fault Tolerance for Cooperative Services. In Proceedings of the ACM Symposium on Operating Systems Principles, SOSP '05, page 45--58, 2005.
[7]
Mustafa Al-Bassam, Alberto Sonnino, Shehar Bano, Dave Hrycyszyn, and George Danezis. Chainspace: A Sharded Smart Contracts Platform. In 25th Annual Network and Distributed System Security Symposium, NDSS 2018, San Diego, California, USA, February 18--21, 2018. The Internet Society, 2018.
[8]
Mohammad Javad Amiri, Divyakant Agrawal, and Amr El Abbadi. CAPER: A Cross-Application Permissioned Blockchain. Proceedings of the VLDB Endowment, 12(11):1385--1398, July 2019.
[9]
Mohammad Javad Amiri, Divyakant Agrawal, and Amr El Abbadi. SharPer: Sharding Permissioned Blockchains Over Network Clusters. In Proceedings of the 2021 International Conference on Management of Data, SIGMOD '21, page 76--88, 2021.
[10]
Khaled Ammar, Frank McSherry, Semih Salihoglu, and Manas Joglekar. Distributed Evaluation of Subgraph Queries Using Worst-Case Optimal Low-Memory Dataflows. Proceedings of the VLDB Endowment, 11(6):691--704, February 2018.
[11]
Elli Androulaki, Artem Barger, Vita Bortnikov, Christian Cachin, Konstantinos Christidis, Angelo De Caro, David Enyeart, Christopher Ferris, Gennady Laventman, Yacov Manevich, Srinivasan Muralidharan, Chet Murthy, Binh Nguyen, Manish Sethi, Gari Singh, Keith Smith, Alessandro Sorniotti, Chrysoula Stathakopoulou, Marko Vukolić, Sharon Weed Cocco, and Jason Yellick. Hyperledger Fabric: A Distributed Operating System for Permissioned Blockchains. In Proceedings of the Thirteenth EuroSys Conference, EuroSys '18, 2018.
[12]
Borislav Antić, Dragan Letić, Dubravko Ćulibrk, and Vladimir Crnojević. K-means based segmentation for real-time zenithal people counting. In 2009 16th IEEE International Conference on Image Processing, ICIP '09, pages 2565--2568, 2009.
[13]
Pierre-Louis Aublin, Sonia Ben Mokhtar, and Vivien Quéma. RBFT: Redundant Byzantine Fault Tolerance. In 2013 IEEE 33rd International Conference on Distributed Computing Systems, ICDCS '13, pages 297--306, 2013.
[14]
Alysson Bessani, João Sousa, and Eduardo E.P. Alchieri. State Machine Replication for the Masses with BFT-SMART. In 2014 44th Annual IEEE/IFIP International Conference on Dependable Systems and Networks, DSN '14, pages 355--362, 2014.
[15]
Ksenia Bestuzheva, Mathieu Besançon, Wei-Kun Chen, Antonia Chmiela, Tim Donkiewicz, Jasper van Doornmalen, Leon Eifler, Oliver Gaul, Gerald Gamrath, Ambros Gleixner, Leona Gottwald, Christoph Graczyk, Katrin Halbig, Alexander Hoen, Christopher Hojny, Rolf van der Hulst, Thorsten Koch, Marco Lübbecke, Stephen J. Maher, Frederic Matter, Erik Mühmer, Benjamin Müller, Marc E. Pfetsch, Daniel Rehfeldt, Steffan Schlein, Franziska Schlösser, Felipe Serrano, Yuji Shinano, Boro Sofranac, Mark Turner, Stefan Vigerske, Fabian Wegscheider, Philipp Wellner, Dieter Weninger, and Jakob Witzig. The SCIP Optimization Suite 8.0. Technical report, Optimization Online, December 2021.
[16]
Gabriel Bracha and Sam Toueg. Asynchronous Consensus and Broadcast Protocols. Journal of the ACM, 32(4):824--840, October 1985.
[17]
Butler, Darren and Bove Jr, V. Michael and Sridha, Sridharan. Real-Time Adaptive Foreground/Background Segmentation. EURASIP Journal on Advances in Signal Processing, 2005, August 2005.
[18]
Paris Carbone, Asterios Katsifodimos, Stephan Ewen, Volker Markl, Seif Haridi, and Kostas Tzoumas. Apache flink: Stream and batch processing in a single engine. The Bulletin of the Technical Committee on Data Engineering, 38(4), 2015.
[19]
Miguel Castro and Barbara Liskov. Practical Byzantine Fault Tolerance. In 3rd Symposium on Operating Systems Design and Implementation, OSDI '99, New Orleans, LA, February 1999.
[20]
Miguel Castro and Barbara Liskov. Proactive Recovery in a Byzantine-Fault-Tolerant System. In Proceedings of the 4th Conference on Symposium on Operating Systems Design & Implementation - Volume 4, OSDI '00, USA, 2000.
[21]
Kevin K. H. Cheung, Ambros Gleixner, and Daniel E. Steffy. Verifying Integer Programming Results. In Integer Programming and Combinatorial Optimization, pages 148--160. Springer International Publishing, 2017.
[22]
Alexandra Chouldechova. Fair Prediction with Disparate Impact: A Study of Bias in Recidivism Prediction Instruments. Big Data, 5(2):153--163, June 2017.
[23]
Allen Clement, Flavio Junqueira, Aniket Kate, and Rodrigo Rodrigues. On the (Limited) Power of Non-Equivocation. In Proceedings of the 2012 ACM Symposium on Principles of Distributed Computing, PODC '12, page 301--308, 2012.
[24]
Allen Clement, Edmund Wong, Lorenzo Alvisi, Mike Dahlin, and Mirco Marchetti. Making Byzantine Fault Tolerant Systems Tolerate Byzantine Faults. In Proceedings of the 6th USENIX Symposium on Networked Systems Design and Implementation, NSDI '09, page 153--168, USA, 2009.
[25]
William J. Cook, Thorsten Koch, Daniel E. Steffy, and Kati Wolter. A Hybrid Branch-and-Bound Approach for Exact Rational Mixed-Integer Programming. Mathematical Programming Computation, 5(3):305--344, 2013.
[26]
Corinna Cortes, Daryl Pregibon, and Chris Volinsky. Communities of Interest. In Proceedings of the 4th International Conference on Advances in Intelligent Data Analysis, IDA '01, page 105--114, Berlin, Heidelberg, 2001. Springer-Verlag.
[27]
Pedro Costa, Marcelo Pasin, Alysson N. Bessani, and Miguel Correia. Byzantine Fault-Tolerant MapReduce: Faults are Not Just Crashes. In 2011 IEEE Third International Conference on Cloud Computing Technology and Science, pages 32--39, 2011.
[28]
Pedro A. R. S. Costa, Xiao Bai, Fernando M. V. Ramos, and Miguel Correia. Medusa: An Efficient Cloud Fault-Tolerant MapReduce. In 2016 16th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing, CCGrid '16, pages 443--452, 2016.
[29]
James Cowling, Daniel Myers, Barbara Liskov, Rodrigo Rodrigues, and Liuba Shrira. HQ Replication: A Hybrid Quorum Protocol for Byzantine Fault Tolerance. In Proceedings of the 7th Symposium on Operating Systems Design and Implementation, OSDI '06, page 177--190, USA, 2006.
[30]
George Danezis, Lefteris Kokoris-Kogias, Alberto Sonnino, and Alexander Spiegelman. Narwhal and Tusk: A DAG-Based Mempool and Efficient BFT Consensus. In Proceedings of the Seventeenth European Conference on Computer Systems, EuroSys '22, page 34--50, 2022.
[31]
Hung Dang, Tien Tuan Anh Dinh, Dumitrel Loghin, Ee-Chien Chang, Qian Lin, and Beng Chin Ooi. Towards Scaling Blockchain Systems via Sharding. In Proceedings of the 2019 International Conference on Management of Data, SIGMOD '19, page 123--140, 2019.
[32]
Jérémie Decouchant, David Kozhaya, Vincent Rahli, and Jiangshan Yu. DAMYSUS: Streamlined BFT Consensus Leveraging Trusted Components. In Proceedings of the Seventeenth European Conference on Computer Systems, EuroSys '22, page 1--16, 2022.
[33]
Cynthia Dwork, Nancy Lynch, and Larry Stockmeyer. Consensus in the Presence of Partial Synchrony. Journal of the ACM, 35(2):288--323, April 1988.
[34]
Muhammad El-Hindi, Carsten Binnig, Arvind Arasu, Donald Kossmann, and Ravi Ramamurthy. BlockchainDB: A Shared Database on Blockchains. Proceedings of the VLDB Endowment, 12(11):1597--1609, July 2019.
[35]
Zerui Ge, Dumitrel Loghin, Beng Chin Ooi, Pingcheng Ruan, and Tianwen Wang. Hybrid Blockchain Database Systems: Design and Performance. Proceedings of the VLDB Endowment, 15(5):1092--1104, May 2022.
[36]
Fabiola Greve, Murilo Santos de Lima, Luciana Arantes, and Pierre Sens. A Time-Free Byzantine Failure Detector for Dynamic Networks. In 2012 Ninth European Dependable Computing Conference, pages 191--202, 2012.
[37]
Andreas Haeberlen, Petr Kouznetsov, and Peter Druschel. The Case for Byzantine Fault Detection. In Proceedings of the 2nd Conference on Hot Topics in System Dependability - Volume 2, HOTDEP '06, page 5, USA, 2006.
[38]
Andreas Haeberlen, Petr Kouznetsov, and Peter Druschel. PeerReview: Practical Accountability for Distributed Systems. In Proceedings of the ACM Symposium on Operating Systems Principles, SOSP '07, page 175--188, 2007.
[39]
Jelle Hellings and Mohammad Sadoghi. Coordination-Free Byzantine Replication with Minimal Communication Costs. In Carsten Lutz and Jean Christoph Jung, editors, 23rd International Conference on Database Theory, volume 155 of ICDT '20, pages 17:1--17:20, Dagstuhl, Germany, 2020.
[40]
Jelle Hellings and Mohammad Sadoghi. ByShard: Sharding in a Byzantine Environment. Proceedings of the VLDB Endowment, 14(11):2230--2243, October 2021.
[41]
Weihua Hu, Matthias Fey, Marinka Zitnik, Yuxiao Dong, Hongyu Ren, Bowen Liu, Michele Catasta, and Jure Leskovec. Open Graph Benchmark: Datasets for Machine Learning on Graphs. CoRR, abs/2005.00687, 2020.
[42]
Gregoire Jacob, Ralf Hund, Christopher Kruegel, and Thorsten Holz. JACKSTRAWS: Picking Command and Control Connections from Bot Traffic. In Proceedings of the 20th USENIX Conference on Security, SEC '11, page 29, USA, 2011.
[43]
Anil K. Jain and Richard C. Dubes. Algorithms for Clustering Data. Prentice-Hall, Inc., USA, 1988.
[44]
Kasra Jamshidi, Rakesh Mahadasa, and Keval Vora. Peregrine: A Pattern-Aware Graph Mining System. In Proceedings of the Fifteenth European Conference on Computer Systems, EuroSys '20, 2020.
[45]
Kasra Jamshidi, Harry Xu, and Keval Vora. Accelerating Graph Mining Systems with Subgraph Morphing. In Proceedings of the Eighteenth European Conference on Computer Systems, EuroSys '23, page 162--181, 2023.
[46]
Anuj Kalia, Michael Kaminsky, and David G. Andersen. Design Guidelines for High Performance RDMA Systems. In Proceedings of the 2016 USENIX Annual Technical Conference, ATC '16, page 437--450, 2016.
[47]
Miltiadis Kandias, Nikos Virvilis, and Dimitris Gritzalis. The Insider Threat in Cloud Computing. In Sandro Bologna, Bernhard Hämmerli, Dimitris Gritzalis, and Stephen Wolthusen, editors, Critical Information Infrastructure Security, pages 93--103, Berlin, Heidelberg, 2013. Springer Berlin Heidelberg.
[48]
Aggelos Kiayias, Alexander Russell, Bernardo David, and Roman Oliynykov. Ouroboros: A Provably Secure Proof-of-Stake Blockchain Protocol. In Jonathan Katz and Hovav Shacham, editors, Advances in Cryptology - CRYPTO 2017 - 37th Annual International Cryptology Conference, Santa Barbara, CA, USA, August 20--24, 2017, Proceedings, Part I, volume 10401 of Lecture Notes in Computer Science, pages 357--388. Springer, 2017.
[49]
Eleftherios Kokoris-Kogias, Philipp Jovanovic, Linus Gasser, Nicolas Gailly, Ewa Syta, and Bryan Ford. OmniLedger: A Secure, Scale-Out, Decentralized Ledger via Sharding. In 2018 IEEE Symposium on Security and Privacy, SP '18, pages 583--598, 2018.
[50]
Ramakrishna Kotla, Lorenzo Alvisi, Mike Dahlin, Allen Clement, and Edmund Wong. Zyzzyva: Speculative Byzantine Fault Tolerance. ACM Transactions on Computer Systems, 27(4), January 2010.
[51]
Ramakrishna Kotla and Mike Dahlin. High throughput Byzantine fault tolerance. In International Conference on Dependable Systems and Networks, 2004, DSN '04, pages 575--584, 2004.
[52]
Dave Levin, John R. Douceur, Jacob R. Lorch, and Thomas Moscibroda. TrInc: Small Trusted Hardware for Large Distributed Systems. In Proceedings of the 6th USENIX Symposium on Networked Systems Design and Implementation, NSDI '09, page 1--14, USA, 2009.
[53]
Xin Li, Michael C. Huang, Kai Shen, and Lingkun Chu. An Empirical Study of Memory Hardware Errors in a Server Farm. In Proceedings of the 3rd Workshop on on Hot Topics in System Dependability, HotDep'07, page 13--es, 2007.
[54]
Frank McSherry, Derek Gordon Murray, Rebecca Isaacs, and Michael Isard. Differential Dataflow. In CIDR, 2013.
[55]
Justin Meza, Qiang Wu, Sanjeev Kumar, and Onur Mutlu. Revisiting Memory Errors in Large-Scale Production Data Centers: Analysis and Modeling of New Trends from the Field. In 2015 45th Annual IEEE/IFIP International Conference on Dependable Systems and Networks, DSN '15, pages 415--426, 2015.
[56]
Nema Milaninia. Biases in Machine Learning Models and Big Data Analytics: The International Criminal and Humanitarian Law Implications. International Review of the Red Cross, 102(913):199--234, 2020.
[57]
Mircea Moca, Gheorghe Cosmin Silaghi, and Gilles Fedak. Distributed Results Checking for MapReduce in Volunteer Computing. In 2011 IEEE International Symposium on Parallel and Distributed Processing Workshops and PhD Forum, pages 1847--1854, 2011.
[58]
Senthil Nathan, Chander Govindarajan, Adarsh Saraf, Manish Sethi, and Praveen Jayachandran. Blockchain Meets Database: Design and Implementation of a Blockchain Relational Database. Proceedings of the VLDB Endowment, 12(11):1539--1552, July 2019.
[59]
Ray Neiheiser, Miguel Matos, and Luís Rodrigues. Kauri: Scalable BFT Consensus with Pipelined Tree-Based Dissemination and Aggregation. In Proceedings of the ACM Symposium on Operating Systems Principles, SOSP '21, page 35--48, 2021.
[60]
Edmund B. Nightingale, John R. Douceur, and Vince Orgovan. Cycles, Cells and Platters: An Empirical Analysis of Hardware Failures on a Million Consumer PCs. In Proceedings of the Sixth Conference on Computer Systems, EuroSys '11, page 343--356, 2011.
[61]
Ricardo Padilha and Fernando Pedone. Augustus: Scalable and Robust Storage for Cloud Applications. In Proceedings of the 8th ACM European Conference on Computer Systems, EuroSys '13, page 99--112, 2013.
[62]
Lucia Pallottino, Eric M Feron, and Antonio Bicchi. Conflict resolution problems for air traffic management systems solved with mixed integer programming. IEEE Transactions on Intelligent Transportation Systems, 3(1):3--11, 2002.
[63]
Daniel Presser, Lau Cheuk Lung, and Miguel Correia. Greft: Arbitrary Fault-Tolerant Distributed Graph Processing. In 2015 IEEE International Congress on Big Data, pages 452--459, 2015.
[64]
Rodrigo Rodrigues, Miguel Castro, and Barbara Liskov. BASE: Using Abstraction to Improve Fault Tolerance. SIGOPS Operating Systems Review, 35(5):15--28, October 2001.
[65]
Fred B. Schneider. Implementing Fault-Tolerant Services Using the State Machine Approach: A Tutorial. ACM Computing Survey, 22(4):299--319, December 1990.
[66]
Tom Schouwenaars, Bart De Moor, Eric Feron, and Jonathan How. Mixed integer programming for multi-vehicle path planning. In 2001 European Control Conference, ECC '01, pages 2603--2608. IEEE, 2001.
[67]
Bianca Schroeder, Eduardo Pinheiro, and Wolf-Dietrich Weber. DRAM Errors in the Wild: A Large-Scale Field Study. Communications of the ACM, 54(2):100--107, February 2011.
[68]
Tianhui Shi, Mingshu Zhai, Yi Xu, and Jidong Zhai. GraphPi: High Performance Graph Pattern Matching through Effective Redundancy Elimination. In Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis, SC '20, 2020.
[69]
Julian James Stephen and Patrick Eugster. Assured Cloud-Based Data Analysis with ClusterBFT. In 14th International Middleware Conference, volume LNCS-8275 of Middleware '13, pages 82--102, Beijing, China, December 2013. Springer. Part 1: Distributed Protocols.
[70]
Florian Suri-Payer, Matthew Burke, Zheng Wang, Yunhao Zhang, Lorenzo Alvisi, and Natacha Crooks. Basil: Breaking up BFT with ACID (Transactions). In Proceedings of the ACM Symposium on Operating Systems Principles, SOSP '21, page 1--17, 2021.
[71]
Michiaki Tatsubori and Shohei Hido. Opportunistic Adversaries: On Imminent Threats to Learning-Based Business Automation. In Proceedings of the 2012 Annual SRII Global Conference, SRII '12, page 120--129, USA, 2012.
[72]
Carlos H. C. Teixeira, Alexandre J. Fonseca, Marco Serafini, Georgos Siganos, Mohammed J. Zaki, and Ashraf Aboulnaga. Arabesque: A System for Distributed Graph Mining. In Proceedings of the ACM Symposium on Operating Systems Principles, SOSP '15, pages 425--440, 2015.
[73]
Tian Tian, Jun Zhu, Fen Xia, Xin Zhuang, and Tong Zhang. Crowd Fraud Detection in Internet Advertising. In Proceedings of the 24th International Conference on World Wide Web, WWW '15, page 1100--1110, 2015.
[74]
Ben Vandiver, Hari Balakrishnan, Barbara Liskov, and Sam Madden. Tolerating Byzantine Faults in Transaction Processing Systems Using Commit Barrier Scheduling. In Proceedings of the ACM Symposium on Operating Systems Principles, SOSP '07, page 59--72, 2007.
[75]
Giuliana Santos Veronese, Miguel Correia, Alysson Neves Bessani, and Lau Cheuk Lung. Spin One's Wheels? Byzantine Fault Tolerance with a Spinning Primary. In Proceedings of the 2009 28th IEEE International Symposium on Reliable Distributed Systems, SRDS '09, page 135--144, USA, 2009.
[76]
Hiroyuki Yamada and Jun Nemoto. Scalar DL: Scalable and Practical Byzantine Fault Detection for Transactional Database Systems. Proceedings of the VLDB Endowment, 15(7):1324--1336, June 2022.
[77]
Jaewon Yang and Jure Leskovec. Defining and Evaluating Network Communities based on Ground-Truth. Knowledge and Information Systems, 42(1):181--213, 2015.
[78]
Hong Yao, Qingling Duan, Daoliang Li, and Jianping Wang. An improved K-means clustering algorithm for fish image segmentation. Mathematical and Computer Modelling, 58(3):790--798, 2013.
[79]
Jian Yin, Jean-Philippe Martin, Arun Venkataramani, Lorenzo Alvisi, and Mike Dahlin. Separating Agreement from Execution for Byzantine Fault Tolerant Services. In Proceedings of the ACM Symposium on Operating Systems Principles, SOSP '03, page 253--267, 2003.
[80]
Maofan Yin, Dahlia Malkhi, Michael K. Reiter, Guy Golan Gueta, and Ittai Abraham. HotStuff: BFT Consensus with Linearity and Responsiveness. In Proceedings of the 2019 ACM Symposium on Principles of Distributed Computing, PODC '19, page 347--356, 2019.
[81]
Matei Zaharia, Tathagata Das, Haoyuan Li, Timothy Hunter, Scott Shenker, and Ion Stoica. Discretized streams: Fault-tolerant streaming computation at scale. In Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles, SOSP '13, pages 423--438, 2013.

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
PPoPP '24: Proceedings of the 29th ACM SIGPLAN Annual Symposium on Principles and Practice of Parallel Programming
March 2024
498 pages
ISBN:9798400704352
DOI:10.1145/3627535
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 20 February 2024

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. distributed computing
  2. byzantine fault tolerance
  3. data processing systems
  4. resilient systems

Qualifiers

  • Research-article

Funding Sources

Conference

PPoPP '24

Acceptance Rates

Overall Acceptance Rate 230 of 1,014 submissions, 23%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 214
    Total Downloads
  • Downloads (Last 12 months)214
  • Downloads (Last 6 weeks)25
Reflects downloads up to 22 Dec 2024

Other Metrics

Citations

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media