Scalably supporting durable subscriptions in a publishsubscribe system
stablediffusion error code1
stablediffusion error code1英文版Stablediffusion error code1When encountering error code1 in the Stablediffusion system, it is important to understand what this code means and how to address it. Error code1 typically indicates a communication error between the server and the client, resulting in data not being transmitted properly. This can lead to issues with stability and performance of the system.To troubleshoot error code1, first check the network connection between the server and the client. Ensure that both devices are properly connected to the network and that there are no issues with the internet connection. If the network connection is fine, then the next step is to check the server settings to ensure that they are properly configured.If the server settings are correct, then the issue may lie with the client-side settings. Check the client configuration to make sure that it is set up correctly and that there are no conflicts with other software or devices. It may also be helpful to restart both the server and the client to see if that resolves the issue.If none of these steps resolve the error code1, it may be necessary to contact technical support for further assistance. They will be able to provide additional troubleshooting steps and help identify the root cause of the issue. By addressing error code1 promptly and effectively, you can ensure the stability and performance of your Stablediffusion system.中文版当在Stablediffusion系统中遇到error code1时,重要的是要理解这个代码的含义以及如何解决它。
sfinae规则
SFINAE(Substitution Failure Is Not An Error)是C++中的一种编译时策略,它允许在模板实例化的过程中选择一个合适的重载版本,而不是导致编译错误。
SFINAE 的核心思想是,如果在实例化模板时发生了某种类型的错误(通常是类型推导失败),编译器并不应该报错,而是应该尝试选择下一个重载版本。
SFINAE 主要应用在模板元编程和泛型编程中,它允许根据类型是否具有某种性质来选择不同的模板实例。
常见的应用场景包括类型检查、函数重载、模板特化等。
以下是一些常见的 SFINAE 规则:
1.使用enable_if进行条件编译:
2.使用std::void_t进行类型过滤:
3.使用std::enable_if进行模板特化:
SFINAE 的使用可以使得模板更加灵活,并根据不同的条件选择不同的实现。
然而,由于 SFINAE 使用时需要一些模板元编程的技巧,可能使得代码变得复杂,所以
需要谨慎使用,以确保代码的可读性和维护性。
aurora_64b66b_protocol_spec_sp011
aurora_64b66b_protocol_spec_sp011Aurora 64B/66B Protocol SpecificationSP011 (v1.2) July 23, 2010Xilinx is disclosing to you this Specification (hereinafter "the Specification") for use in the development of designs in connection with semiconductor devices. Xilinx expressly disclaims any liability arising out of your use of the Specification. Xilinx does not convey any license under its patents, copyrights, or any rights of others in connection with the Specification. Y ou are responsible for obtaining any rights you may require for your use or implementation of the Specification. Xilinx reserves the right to make changes, at any time, to the Specification without notice and at the sole discretion of Xilinx. Xilinx assumes no obligation to correct any errors contained in the Specification or to advise you of any corrections or updates. Xilinx expressly disclaims any liability in connection with technical support or assistance that may be provided to you in connection with the Specification.THE SPECIFICA TION IS DISCLOSED TO YOU "AS-IS" WITH NO WARRANTY OF ANY KIND. YOU BEAR THE ENTIRE RISK AS TO ITS IMPLEMENTA TION AND USE. YOU ACKNOWLEDGE AND AGREE THA T YOU HAVE NOT RELIED ON ANY ORAL OR WRITTEN INFORMATION OR ADVICE, WHETHER GIVEN BY XILINX, ITS EMPLOYEES OR CONTRACTORS. XILINX MAKES NO OTHER WARRANTIES, WHETHER EXPRESS, IMPLIED, OR STA TUTORY, REGARDING THE SPECIFICATION, INCLUDING ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A P ARTICULAR PURPOSE, OR NONINFRINGEMENT OF THIRD-PARTY RIGHTS.IN NO EVENT WILL XILINX BE LIABLE FOR ANY CONSEQUENTIAL, INDIRECT, EXEMPLARY, SPECIAL, OR INCIDENTAL DAMAGES, INCLUDING ANY LOSS OF DA TA OR LOST PROFITS, ARISING FROM OR RELATING TO YOUR USE OF THE SPECIFICA TION, EVEN IF YOU HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.2008, 2010 Xilinx, Inc. All rights reserved.XILINX, the Xilinx logo, the Brand Window, and other designated brands included herein are trademarks of Xilinx, Inc. All other trademarks are the property of their respective owners.Revision HistoryThe following table shows the revision history for this document.Date Version Revision03/31/08 1.0Initial Xilinx release.09/19/08 1.1Minor typographical edits. Changed block codes to blocks. Removed Not Ready blocks from Simplex in Table4-1, page36. Clarified simplex Aurora channel bonding inSection4.2.2“Channel Bonding,” page36. Added Appendix1, “References.”07/23/10 1.2Updated Section1.2“Scope” and Section8.1“Overview.”Deleted Sections 8.4 Transmitter Specifications, 8.5 Receiver Specifications, and 8.6Receiver Eye Diagrams.Table of ContentsSchedule of Figures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Schedule of Tables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9Preface: About This SpecificationSpecification Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12 Typographical. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12Online Document. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12State Diagram Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Section1: Introduction and Overview1.1:Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.2:Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.3:Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Section2: Data Transmission and Reception2.1:Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.2:Block Codes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.3:Frame Transmission Procedure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.3.1:Link-Layer Frame Delineation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242.3.2:64B/66B Encoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242.3.3:Serialization and Clock Encoding. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.3.4:Multi-Lane Transmission. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242.4:Frame Reception Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.4.1:Deserialization. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.4.2:64B/66B Decoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.4.3:Control Block Stripping. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262.4.4:Multi-Lane Reception. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262.5:Data and Separator Block Format. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Section3: Flow Control3.1:Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.2:Native Flow Control Operation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293.3:Native Flow Control Latency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.4:Native Flow Control Block Format. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303.5:User Flow Control Operation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.6:User Flow Control Message Format. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31Section4: Initialization and Error Handling4.1:Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.2:Aurora Channel Initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344.2.1:Lane Initialization. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344.2.2:Channel Bonding. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 4.2.3:Wait For Remote . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374.3:Error Handling. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384.4:CRC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Section5: PCS Layer5.1:Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395.2:Aurora Encoding. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395.2.1:Block Codes in 64B/66B. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395.2.2:Idle/Not Ready/Clock Compensation/Channel Bonding Block Code. . . . . . 405.2.3:Native Flow Control Block Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425.2.4:Data Block Code for Frame Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425.2.5:Separator Block Code. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425.2.6:Separator-7 Block Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435.2.7:User Flow Control Block Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435.2.8:Data Block Code for User Flow Control Message . . . . . . . . . . . . . . . . . . . . . . . . 445.2.9:User K-Block Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445.3:64B/66B Scrambling. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455.4:64B/66B Gearbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455.5:Channel Bonding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455.6:Clock Compensation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Section6: Channel Control6.1:Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476.2:Idle Block Striping. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476.2.1:Not Ready Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476.2.2:Idle Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476.2.3:Clock Compensation Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476.2.4:Channel Bonding Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476.3:Native Flow Control Striping. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476.4:Frame Data Striping. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486.5:Strict-Alignment Frame Data Striping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486.6:User Flow Control Striping. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486.7:Strict-Alignment User Flow Control Striping . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486.8:User K-Block Striping. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Section7: PMA Layer7.1:Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497.2:Bit and Byte Ordering Convention. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497.3:Serialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49Section8: Electrical Specifications8.1:Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518.2:Signal Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518.3:Equalization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Appendix1: ReferencesSchedule of FiguresPreface: About This SpecificationFigure P-1:Properties of Literals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13Figure P-2:State Machine Diagram Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15Section1: Introduction and OverviewFigure 1-1:Aurora Protocol Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18Figure 1-2:A Simplex Connection Between a Pair of Aurora Lanes . . . . . . . . . . . . . . . . . 18Figure 1-3:A Single-Lane, Simplex Aurora Channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19Figure 1-4:A Multi-Lane, Simplex Aurora Channel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19Figure 1-5:A Single-Lane, Full-Duplex Aurora Channel. . . . . . . . . . . . . . . . . . . . . . . . . . . 20Figure 1-6:A Multi-Lane, Full-Duplex Aurora Channel . . . . . . . . . . . . . . . . . . . . . . . . . . . 20Section2: Data Transmission and ReceptionFigure 2-1:Mapping Frames to Encoded Block Codes for Transmission. . . . . . . . . . . . . 23Figure 2-2:Receiving Data from an Aurora Channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25Figure 2-3:Data Block Used for Frame Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26Figure 2-4:Separator Block. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26Figure 2-5:Separator-7 Block. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27Figure 2-6:Example of Frame Data Transfer through a Single-Lane Channel . . . . . . . . 27Figure 2-7:Example of Frame Data Transfer through a Multi-Lane Channel . . . . . . . . . 27Section3: Flow ControlFigure 3-1:NFC Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30Figure 3-2:UFC Block with UFC Header. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31Figure 3-3:Data Block Used to Carry UFC Message Data . . . . . . . . . . . . . . . . . . . . . . . . . . 31Figure 3-4:Example UFC Messages for Single-Lane Channel . . . . . . . . . . . . . . . . . . . . . . 31Figure 3-5:Example UFC Messages for a Multi-Lane Channel. . . . . . . . . . . . . . . . . . . . . . 32Section4: Initialization and Error HandlingFigure 4-1:Initialization Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34Figure 4-2:Block Sync State Machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35Section5: PCS LayerFigure 5-1:Idle/Not Ready/NFC Block Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41Figure 5-2:Native Flow Control Block Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42Figure 5-3:Data Block Code Carrying Frame Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42Figure 5-4:Separator Block Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42Figure 5-5:Separator-7 Block Code. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43Figure 5-6:User Flow Control Block Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Figure 5-7:Data Block Code Carrying User Flow Control Message Data. . . . . . . . . . . . . 44 Figure 5-8:User K-Block Code Format. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44Section6: Channel ControlSection7: PMA LayerFigure 7-1:Serialization Order for Aurora 64B/66B Block Codes. . . . . . . . . . . . . . . . . . . . 49Section8: Electrical SpecificationsFigure 8-1:Differential Peak-To-Peak Voltage of Transmitter or Receiver. . . . . . . . . . . 51Appendix1: ReferencesSchedule of TablesPreface: About This SpecificationTable P-1:Radix Specifics of Literals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13Table P-2:Examples of Extended Values. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13Section1: Introduction and OverviewSection2: Data Transmission and ReceptionTable 2-1:Aurora 64B/66B Blocks Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21Table 2-2:Normal Aurora 64B/66B Block Transmission Priority . . . . . . . . . . . . . . . . . . . . 22Table 2-3:Aurora 64B/66B Block Transmission Priority during Flow Control Countdown 23 Section3: Flow Control Section4: Initialization and Error HandlingTable 4-1:Required Block Transmission during Lane Initialization. . . . . . . . . . . . . . . . . 36Table 4-2:Required State Transition after Lane Initialization . . . . . . . . . . . . . . . . . . . . . . 36Table 4-3:Required State Transition after Successful Channel Bonding. . . . . . . . . . . . . 37Section5: PCS LayerTable 5-1:Valid Block Type Field Values in Aurora 64B/66B. . . . . . . . . . . . . . . . . . . . . . . 40Table 5-2:Valid Octet Count Field Values for Separator Block Code. . . . . . . . . . . . . . . . 43Table 5-3:Valid Block Type Field Values for User K-Blocks . . . . . . . . . . . . . . . . . . . . . . . 44 Section6: Channel Control Section7: PMA LayerSection8: Electrical SpecificationsAppendix1: ReferencesPreface About This SpecificationThis specification describes the Aurora 64B/66B protocol. Aurora is a lightweight link-layer protocol that can be used to move data point-to-point across one or more high-speed serial lanes. Aurora 64B/66B is a version of the protocol using 64B/66B encoding instead of 8B/10B.Specification ContentsThis manual contains the following:Section1, “Introduction and Overview”provides an overview of the Aurora 64B/66B protocol.Section2, “Data Transmission and Reception”describes the procedures for transmitting and receiving data using an Aurora 64B/66B Channel.Section3, “Flow Control”describes the optional flow control features in the Aurora64B/66B protocol.Section4, “Initialization and Error Handling”describes the procedure used to preparean Aurora channel for operation.Section5, “PCS Layer”specifies the functions performed in the physical coding sub-layer (PCS) of the Aurora 64B/66B protocol.Section6, “Channel Control”defines the striping rules for using multi-lane channels. Section7, “PMA Layer”specifies the functions performed in the PMA layer of the Aurora 64B/66B Protocol.Section8, “Electrical Specifications”describes the AC specifications, covering both single- and multi-lane implementations.ConventionsThis document uses the following conventions.T ypographicalThe following typographical conventions are used in this document:Online DocumentThe following conventions are used in this document:NumericalConventionMeaning or UseExampleItalic fontReferences to other manualsSee the Development System Reference Guide for more information.Emphasis in textIf a wire is drawn so that itoverlaps the pin of a symbol, the two nets are not connected.To emphasize a term the first time it is used The state machine uses one-hot encoding.REG[FIELD]Abbreviations or acronyms for registers are shown in uppercasetext. Specific bits, fields, or ranges appear in bracketsREG[11:14]ConventionMeaning or UseExampleBlue textCross-reference link to a location in the current document See the section “AdditionalResources” for details.Refer to “Title Formats” inSection 1 for details.Red textCross-reference link to a location in another document See Figure 2-5 in the Virtex-II Platform FPGA User Guide.Blue, underlined textHyperlink to a website (URL)Go to /doc/10fb3b7b1711cc7931b716ea.htmlfor the latest speed files.Convention Meaning or Usen A decimal value[n:m ]Used to express a numerical range from n to m x Unknown value zHigh impedanceValues of LiteralsLiterals are represented by specifying three of their properties as listed and shown in Figure P-1 and in Table P-1 and Table P-2:1.Width in bits 2.Radix (Base)3.ValueTable P-1 shows the Radix specifics:All values are extended with zero except those with x or z in the most significant place; they extend with x or z respectively. A list of examples is shown in Table P-2:Figure P-1:Properties of LiteralsTable P-1:Radix Specifics of LiteralsRadix SpecifierRadixb Binary d Decimal h Hexadecimal oOctalTable P-2:Examples of Extended ValuesNumber Value Comment8’b000000000An 8-bit binary number with value of zero. (Zero extended to get 8 bits.)8’bx xxxxxxxxAn 8-bit binary number with value unknown. (x extended to get 8 bits.)8’b1x 0000001x An 8-bit binary number with value of 2 or 3, depending on the value of x.8’b0x 0000000x An 8-bit binary number with value of 0 or 1, depending on the value of x.8’hx xxxxxxxx An 8-bit hexadecimal number with value unknown.(x extended to get 8 bits.)8’hzx zzzzxxxx An 8-bit hexadecimal number with the upper four bits not driven and the lower four bitsunknown.8’b100000001An 8-bit binary number with value of one.8’hz1zzzz0001An 8-bit hexadecimal number with the upper four bits not driven and the lower four bits having value of one.8’bx1xxxxxxx1An 8-bit binary number that is odd.8’bx0xxxxxxx0An 8-bit binary number that is even.State Diagram ConventionsThis section describes the conventions used in the state diagrams for this document. The numbered sections correspond to the call-outs shown in the state machine diagram in Figure P-2, page 15.States1. A state is represented by a rectangle.2.The name of the state is indicated in bold.State T ransitions3.State transition is indicated by an arrow annotated in italics.State Machine OutputsOutputs are shown in plain text. Outputs can be shown inside of state rectangles or can be part of the annotation associated with a transition arrow. If a signal is not listed in a state rectangle or on a transition arrow, its value at that time is 0 (not asserted). If a registered output does not appear in the state rectangle or transition arrow annotation, then its value is unchanged from the previous value.Output T ypesOutputs are divided into three classes as shown in the examples below.4.Asserting control signals:go = 1link reset = 15.Register initialization:XYZ Register = 78New Counter = 0xmit = /SP/ (an ordered set)6.Incrementing or decrementing a register:XYZ Register = XYZ Register + 1New Counter = New Counter – 68’hz zzzzzzzz An 8-bit hexadecimal number with value not driven. (z extended to get 8 bits.)8’h0z 0000zzzzAn 8-bit hexadecimal number with upper nibble specified and the lower not driven.11’d n n An 11-bit decimal number with value n .6’h n nA 6-bit hexadecimal number with value n .w’b101(101)A binary number with value 5 and an unknown width.Table P-2:Examples of Extended Values (Cont’d)Number Value CommentFigure P-2:State Machine Diagram ConventionsSection1 Introduction and Overview1.1IntroductionAurora is a lightweight link-layer protocol that can be used to move data point-to-pointacross one or more high-speed serial lanes. Aurora 64B/66B is a version of the protocolusing 64B/66B encoding instead of 8B/10B.1.2ScopeThe Aurora 64B/66B Protocol Specification defines the following:Electrical specifications: This includes signaling levels for an Aurora serial link.PMA layer: This includes specification for serialization bit ordering and byteordering.Physical coding sub-layer (PCS): This includes specification for data encoding anddecoding, data scrambling, the 64B/66B gearbox, clock compensation and channelbonding.Channel control: This includes specifications for multi-lane striping and forscheduling the transmission of data and control information.Cyclic redundancy check (CRC): The Aurora protocol recommends a CRCmechanism compatible with the standard 64B/66B scrambling algorithm.1.3OverviewThe Aurora protocol (Figure1-1, page18) describes the transfer of user data across anAurora channel, consisting of one or more Aurora lanes. Each Aurora lane is a serial dataconnection, either full-duplex or simplex. Devices communicating across the channel arecalled channel partners.Aurora interfaces allow user applications to transfer data through the Aurora channel. Theuser interface on each Aurora interface is not defined in this specification and can bedecided independently for each implementation of the protocol.Aurora channels have the following properties:Data is transferred through the Aurora channel in frames.Frames share the channel with control information such as flow control messages,clock compensation sequences and idles.Frames can be of any length, and can have any format. Only the delineation of framesis defined in this specification.Frames in Aurora do not have to be contiguous — they can be interrupted at any time by flow control messages or idles.There is no gap required between frames in Aurora.Figure 1-1:Aurora Protocol OverviewFigure1-2 shows a simplex connection between a pair of Aurora lanes, depicting the functional blocks comprising the PCS and PMA layers of an Aurora connection. These blocks are specified in detail in this document.Figure 1-2: A Simplex Connection Between a Pair of Aurora LanesAurora interfaces allow applications to communicate using Aurora channels. Aurora interfaces are made up of one or more Aurora lanes, either simplex or full-duplex. The four possible configurations of Aurora interfaces are shown in Figure1-3, Figure1-4,Figure1-5, page20, and Figure1-6, page20.Figure1-3 shows a single-lane, simplex Aurora interface transmitting to another single-lane, simplex Aurora interface. In this configuration, each interface uses a single lane to transmit or receive from the Aurora channel. Channel control in each interface initializes the channel passing control to the user application.Figure 1-3: A Single-Lane, Simplex Aurora ChannelFigure1-4 shows a multi-lane, simplex Aurora interface transmitting to another multi-lane, simplex Aurora interface. In multi-lane configurations, the channel control bonds the lanes to eliminate skew between channels as a part of the channel initialization procedure. During normal operation, the channel control logic distributes data and control information across all the lanes in the channel.Figure 1-4: A Multi-Lane, Simplex Aurora Channel。
使用dubboreference
感谢您选择我作为您的文章写手。
下面我将根据您提供的主题“使用dubboreference”进行深入探讨,并希望我的文章能为您提供有价值的见解和观点。
1. 了解Dubbo Reference在Dubbo中,Reference是用来定义服务消费者的,通过Reference 可以实现对服务提供者的调用。
它是Dubbo中的一块重要组件,能够帮助我们实现服务之间的调用和通信。
在使用Dubbo开发分布式系统时,Reference是必不可少的一部分。
2. Dubbo Reference的基本用法在Dubbo中,我们可以使用@Reference注解或者配置文件来定义Reference。
通过实例化Reference对象,我们可以获得服务提供者的代理对象,从而实现服务之间的通信和调用。
这样就能够实现分布式系统中服务的互相调用。
3. Dubbo Reference的深入理解除了基本的用法之外,对Dubbo Reference的深入理解还包括对其底层原理的探究,以及对其在大型分布式系统中的应用。
深入理解Dubbo Reference可以帮助我们更好地理解Dubbo的整体架构,从而更好地应用Dubbo进行分布式系统的开发。
4. 使用Dubbo Reference的实际意义通过使用Dubbo Reference,我们可以实现分布式系统中不同服务之间的调用和通信,从而构建一个完整的分布式系统。
这对于构建大型、高性能的分布式系统具有重要的意义,能够帮助我们更好地实现系统的解耦和扩展。
5. 个人观点和理解在我看来,使用Dubbo Reference不仅可以帮助我们实现分布式系统中不同服务之间的调用和通信,还可以帮助我们更好地理解分布式系统的原理和架构。
Dubbo Reference作为Dubbo架构中的重要组件,不仅帮助我们解决了分布式系统中的通信和调用问题,还能够帮助我们更好地理解分布式系统的原理和架构。
在上面的文章中,我详细探讨了使用Dubbo Reference的相关内容,并对其进行了深入理解和个人观点的共享。
LTE R12 协议 36212
3GPP TS 36.212 V12.0.0 (2013-12)Technical Specification3rd Generation Partnership Project;Technical Specification Group Radio Access Network;Evolved Universal Terrestrial Radio Access (E-UTRA);Multiplexing and channel coding(Release 12)The present document has been developed within the 3rd Generation Partnership Project (3GPP TM) and may be further elaborated for the purposes of 3GPP. The present document has not been subject to any approval process by the 3GPP Organizational Partners and shall not be implemented.This Specification is provided for future development work within 3GPP only. The Organizational Partners accept no liability for any use of this Specification. Specifications and reports for implementation of the 3GPP TM system should be obtained via the 3GPP Organizational Partners‟ Publications Offices.KeywordsUMTS, radio, Layer 13GPPPostal address3GPP support office address650 Route des Lucioles – Sophia AntipolisValbonne – FranceTel. : +33 4 92 94 42 00 Fax : +33 4 93 65 47 16InternetCopyright NotificationNo part may be reproduced except as authorized by written permission.The copyright and the foregoing restriction extend to reproduction in all media.© 2013, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC).All rights reserved.UMTS™ is a Trade Mark of ETSI registered for the benefit of its members3GPP™ is a Trade Mark of ETSI registered for the benefit of its Members and of the 3GPP Organizational Partners LTE™ is a Trade Mark of ETSI registered for the benefit of its Members and o f the 3GPP Organizational Partners GSM® and the GSM logo are registered and owned by the GSM AssociationContentsForeword (5)1Scope (6)2References (6)3Definitions, symbols and abbreviations (6)3.1 Definitions (6)3.2Symbols (6)3.3 Abbreviations (7)4Mapping to physical channels (7)4.1Uplink (7)4.2Downlink (8)5Channel coding, multiplexing and interleaving (8)5.1Generic procedures (8)5.1.1CRC calculation (8)5.1.2Code block segmentation and code block CRC attachment (9)5.1.3Channel coding (11)5.1.3.1Tail biting convolutional coding (11)5.1.3.2Turbo coding (12)5.1.3.2.1Turbo encoder (12)5.1.3.2.2Trellis termination for turbo encoder (13)5.1.3.2.3Turbo code internal interleaver (13)5.1.4Rate matching (15)5.1.4.1Rate matching for turbo coded transport channels (15)5.1.4.1.1Sub-block interleaver (15)5.1.4.1.2Bit collection, selection and transmission (16)5.1.4.2Rate matching for convolutionally coded transport channels and control information (18)5.1.4.2.1Sub-block interleaver (19)5.1.4.2.2Bit collection, selection and transmission (20)5.1.5Code block concatenation (20)5.2Uplink transport channels and control information (21)5.2.1Random access channel (21)5.2.2Uplink shared channel (21)5.2.2.1Transport block CRC attachment (22)5.2.2.2Code block segmentation and code block CRC attachment (22)5.2.2.3Channel coding of UL-SCH (23)5.2.2.4Rate matching (23)5.2.2.5Code block concatenation (23)5.2.2.6 Channel coding of control information (23)5.2.2.6.1Channel quality information formats for wideband CQI reports (33)5.2.2.6.2Channel quality information formats for higher layer configured subband CQI reports (34)5.2.2.6.3Channel quality information formats for UE selected subband CQI reports (37)5.2.2.6.4Channel coding for CQI/PMI information in PUSCH (39)5.2.2.6.5Channel coding for more than 11 bits of HARQ-ACK information (40)5.2.2.7 Data and control multiplexing (41)5.2.2.8 Channel interleaver (42)5.2.3Uplink control information on PUCCH (44)5.2.3.1Channel coding for UCI HARQ-ACK (44)5.2.3.2Channel coding for UCI scheduling request (49)5.2.3.3Channel coding for UCI channel quality information (49)5.2.3.3.1Channel quality information formats for wideband reports (49)5.2.3.3.2Channel quality information formats for UE-selected sub-band reports (52)5.2.3.4Channel coding for UCI channel quality information and HARQ-ACK (56)5.2.4Uplink control information on PUSCH without UL-SCH data (56)5.2.4.1 Channel coding of control information (57)5.2.4.2 Control information mapping (57)5.2.4.3 Channel interleaver (58)5.3Downlink transport channels and control information (58)5.3.1Broadcast channel (58)5.3.1.1Transport block CRC attachment (58)5.3.1.2Channel coding (59)5.3.1.3 Rate matching (59)5.3.2Downlink shared channel, Paging channel and Multicast channel (59)5.3.2.1Transport block CRC attachment (60)5.3.2.2Code block segmentation and code block CRC attachment (60)5.3.2.3Channel coding (61)5.3.2.4Rate matching (61)5.3.2.5Code block concatenation (61)5.3.3Downlink control information (61)5.3.3.1DCI formats (62)5.3.3.1.1Format 0 (62)5.3.3.1.2Format 1 (63)5.3.3.1.3Format 1A (64)5.3.3.1.3A Format 1B (66)5.3.3.1.4Format 1C (68)5.3.3.1.4A Format 1D (68)5.3.3.1.5Format 2 (70)5.3.3.1.5A Format 2A (73)5.3.3.1.5B Format 2B (75)5.3.3.1.5C Format 2C (76)5.3.3.1.5D Format 2D (78)5.3.3.1.6Format 3 (79)5.3.3.1.7Format 3A (79)5.3.3.1.8Format 4 (80)5.3.3.2CRC attachment (81)5.3.3.3Channel coding (82)5.3.3.4Rate matching (82)5.3.4Control format indicator (82)5.3.4.1Channel coding (83)5.3.5HARQ indicator (HI) (83)5.3.5.1Channel coding (83)Annex A (informative): Change history (85)ForewordThis Technical Specification has been produced by the 3rd Generation Partnership Project (3GPP).The contents of the present document are subject to continuing work within the TSG and may change following formal TSG approval. Should the TSG modify the contents of the present document, it will be re-released by the TSG with an identifying change of release date and an increase in version number as follows:Version x.y.zwhere:x the first digit:1 presented to TSG for information;2 presented to TSG for approval;3 or greater indicates TSG approved document under change control.Y the second digit is incremented for all changes of substance, i.e. technical enhancements, corrections, updates, etc.z the third digit is incremented when editorial only changes have been incorporated in the document.1 ScopeThe present document specifies the coding, multiplexing and mapping to physical channels for E-UTRA.2 ReferencesThe following documents contain provisions which, through reference in this text, constitute provisions of the present document.∙References are either specific (identified by date of publication, edition number, version number, etc.) or non-specific.∙For a specific reference, subsequent revisions do not apply.∙For a non-specific reference, the latest version applies. In the case of a reference to a 3GPP document (includinga GSM document), a non-specific reference implicitly refers to the latest version of that document in the sameRelease as the present document.[1] 3GPP TR 21.905: "Vocabulary for 3GPP Specifications".[2] 3GPP TS 36.211: "Evolved Universal Terrestrial Radio Access (E-UTRA); Physical channels andmodulation".[3] 3GPP TS 36.213: "Evolved Universal Terrestrial Radio Access (E-UTRA); Physical layerprocedures".[4] 3GPP TS 36.306: "Evolved Universal Terrestrial Radio Access (E-UTRA); User Equipment (UE)radio access capabilities".[5] 3GPP TS36.321, “Evolved Universal Terrestrial Radio Access (E-UTRA); Medium AccessControl (MAC) protocol specification”[6] 3GPP TS36.331, “Evolved Universal Terrestrial Radio Access (E-UTRA); Radio ResourceControl (RRC) proto col specification”3 Definitions, symbols and abbreviations3.1 DefinitionsFor the purposes of the present document, the terms and definitions given in [1] and the following apply. A term defined in the present document takes precedence over the definition of the same term, if any, in [1].Definition format<defined term>: <definition>.3.2 SymbolsFor the purposes of the present document, the following symbols apply:DLN Downlink bandwidth configuration, expressed in number of resource blocks [2] RBULN Uplink bandwidth configuration, expressed in number of resource blocks [2] RBRBN Resource block size in the frequency domain, expressed as a number of subcarriers scPUSCHN Number of SC-FDMA symbols carrying PUSCH in a subframesym b-PUSCHinitialN Number of SC-FDMA symbols carrying PUSCH in the initial PUSCH transmission subframe symbULN Number of SC-FDMA symbols in an uplink slotsymbN Number of SC-FDMA symbols used for SRS transmission in a subframe (0 or 1).SRS3.3 AbbreviationsFor the purposes of the present document, the following abbreviations apply:BCH Broadcast channelCFI Control Format IndicatorCP Cyclic PrefixCSI Channel State InformationDCI Downlink Control InformationDL-SCH Downlink Shared channelEPDCCH Enhanced Physical Downlink Control channelFDD Frequency Division DuplexingHI HARQ indicatorMCH Multicast channelPBCH Physical Broadcast channelPCFICH Physical Control Format Indicator channelPCH Paging channelPDCCH Physical Downlink Control channelPDSCH Physical Downlink Shared channelPHICH Physical HARQ indicator channelPMCH Physical Multicast channelPMI Precoding Matrix IndicatorPRACH Physical Random Access channelPUCCH Physical Uplink Control channelPUSCH Physical Uplink Shared channelRACH Random Access channelRI Rank IndicationSR Scheduling RequestSRS Sounding Reference SignalTDD Time Division DuplexingTPMI Transmitted Precoding Matrix IndicatorUCI U plink Control InformationUL-SCH Uplink Shared channel4 Mapping to physical channels4.1 UplinkTable 4.1-1 specifies the mapping of the uplink transport channels to their corresponding physical channels. Table 4.1-2 specifies the mapping of the uplink control channel information to its corresponding physical channel.Table 4.1-1Table 4.1-24.2 DownlinkTable 4.2-1 specifies the mapping of the downlink transport channels to their corresponding physical channels. Table4.2-2 specifies the mapping of the downlink control channel information to its corresponding physical channel.Table 4.2-1Table 4.2-25 Channel coding, multiplexing and interleavingData and control streams from/to MAC layer are encoded /decoded to offer transport and control services over the radio transmission link. Channel coding scheme is a combination of error detection, error correcting, rate matching, interleaving and transport channel or control information mapping onto/splitting from physical channels.5.1Generic procedures This section contains coding procedures which are used for more than one transport channel or control information type.5.1.1 CRC calculation Denote the input bits to the CRC computation by 13210,...,,,,-A a a a a a , and the parity bits by 13210,...,,,,-L p p p p p . A is the size of the input sequence and L is the number of parity bits. The parity bits are generated by one of the following cyclic generator polynomials:- g CRC24A (D ) = [D 24 + D 23 + D 18 + D 17 + D 14 + D 11 + D 10 + D 7 + D 6 + D 5 + D 4 + D 3 + D + 1] and;- g CRC24B (D ) = [D 24 + D 23 + D 6 + D 5 + D + 1] for a CRC length L = 24 and;- g CRC16(D ) = [D 16 + D 12 + D 5 + 1] for a CRC length L = 16.- g CRC8(D ) = [D 8 + D 7 + D 4 + D 3 + D + 1] for a CRC length of L = 8.The encoding is performed in a systematic form, which means that in GF(2), the polynomial:23122221230241221230......p D p D p D p D a D a D a A A A ++++++++-++yields a remainder equal to 0 when divided by the corresponding length-24 CRC generator polynomial, g CRC24A (D ) or g CRC24B (D ), the polynomial:15114141150161141150......p D p D p D p D a D a D a A A A ++++++++-++yields a remainder equal to 0 when divided by g CRC16(D ), and the polynomial:7166170816170......p D p D p D p D a D a D a A A A ++++++++-++yields a remainder equal to 0 when divided by g CRC8(D ).The bits after CRC attachment are denoted by 13210,...,,,,-B b b b b b , where B = A + L . The relation between a k and b k is:k k a b = for k = 0, 1, 2, …, A -1A k k p b -=for k = A , A +1, A +2,..., A +L -1.5.1.2 Code block segmentation and code block CRC attachmentThe input bit sequence to the code block segmentation is denoted by 13210,...,,,,-B b b b b b , where B > 0. If B is larger than the maximum code block size Z , segmentation of the input bit sequence is performed and an additional CRC sequence of L = 24 bits is attached to each code block. The maximum code block size is:- Z = 6144.If the number of filler bits F calculated below is not 0, filler bits are added to the beginning of the first block.Note that if B < 40, filler bits are added to the beginning of the code block.The filler bits shall be set to <NULL > at the input to the encoder.Total number of code blocks C is determined by:if Z B ≤L = 0Number of code blocks: 1=C B B ='elseL = 24Number of code blocks: ()⎡⎤L Z B C -=/. L C B B ⋅+='end ifThe bits output from code block segmentation, for C ≠ 0, are denoted by ()13210,...,,,,-r K r r r r r c c c c c , where r is the code block number, and K r is the number of bits for the code block number r .Number of bits in each code block (applicable for C ≠ 0 only):First segmentation size: +K = minimum K in table 5.1.3-3 such that B K C '≥⋅if 1=Cthe number of code blocks with length +K is +C =1, 0=-K , 0=-Celse if 1>CSecond segmentation size: -K = maximum K in table 5.1.3-3 such that +<K K -+-=∆K K KNumber of segments of size -K : ⎥⎦⎥⎢⎣⎢∆'-⋅=+-K B K C C . Number of segments of size +K : -+-=C C C .end ifNumber of filler bits: B K C K C F '-⋅+⋅=--++for k = 0 to F -1-- Insertion of filler bits >=<NULL c k 0end fork = Fs = 0for r = 0 to C -1if -<C r-=K K relse+=K K rend ifwhile L K k r -<s rk b c =1+=k k1+=s s end whileif C >1The sequence ()13210,...,,,,--L K r r r r r r c c c c c is used to calculate the CRC parity bits ()1210,...,,,-L r r r r p p p paccording to section 5.1.1 with the generator polynomial g CRC24B (D ). For CRC calculation it isassumed that filler bits, if present, have the value 0.while r K k <)(r K L k r rk p c -+=1+=k kend whileend if 0=kend for5.1.3 Channel codingThe bit sequence input for a given code block to channel coding is denoted by 13210,...,,,,-K c c c c c , where K is thenumber of bits to encode. After encoding the bits are denoted by )(1)(3)(2)(1)(0,...,,,,i D i i i i d d d d d -, where D is the number of encoded bits per output stream and i indexes the encoder output stream. The relation between k c and )(i k d and betweenK and D is dependent on the channel coding scheme.The following channel coding schemes can be applied to TrCHs: - tail biting convolutional coding; - turbo coding.Usage of coding scheme and coding rate for the different types of TrCH is shown in table 5.1.3-1. Usage of coding scheme and coding rate for the different control information types is shown in table 5.1.3-2. The values of D in connection with each coding scheme: - tail biting convolutional coding with rate 1/3: D = K ; - turbo coding with rate 1/3: D = K + 4.The range for the output stream index i is 0, 1 and 2 for both coding schemes.Table 5.1.3-1: Usage of channel coding scheme and coding rate for TrCHs.Table 5.1.3-2: Usage of channel coding scheme and coding rate for control information.5.1.3.1 Tail biting convolutional codingA tail biting convolutional code with constraint length 7 and coding rate 1/3 is defined. The configuration of the convolutional encoder is presented in figure 5.1.3-1.The initial value of the shift register of the encoder shall be set to the values corresponding to the last 6 information bits in the input stream so that the initial and final states of the shift register are the same. Therefore, denoting the shift register of the encoder by 5210,...,,,s s s s , then the initial value of the shift register shall be set to()i K i c s --=10 = 133 (octal)1 = 171 (octal)2 = 165 (octal)Figure 5.1.3-1: Rate 1/3 tail biting convolutional encoder.The encoder output streams )0(k d , )1(k d and )2(k d correspond to the first, second and third parity streams, respectively asshown in Figure 5.1.3-1.5.1.3.2Turbo coding5.1.3.2.1Turbo encoderThe scheme of turbo encoder is a Parallel Concatenated Convolutional Code (PCCC) with two 8-state constituent encoders and one turbo code internal interleaver. The coding rate of turbo encoder is 1/3. The structure of turbo encoder is illustrated in figure 5.1.3-2.The transfer function of the 8-state constituent code for the PCCC is: G (D ) = ⎥⎦⎤⎢⎣⎡)()(,101D g D g ,whereg 0(D ) = 1 + D 2 + D 3,g 1(D ) = 1 + D + D 3.The initial value of the shift registers of the 8-state constituent encoders shall be all zeros when starting to encode the input bits.The output from the turbo encoder isk k x d =)0( k k z d =)1( k k z d '=)2(for 1,...,2,1,0-=K k .If the code block to be encoded is the 0-th code block and the number of filler bits is greater than zero, i.e., F > 0, thenthe encoder shall set c k , = 0, k = 0,…,(F -1) at its input and shall set >=<NULL d k )0(, k = 0,…,(F -1) and >=<NULL d k )1(, k = 0,…,(F -1) at its output.The bits input to the turbo encoder are denoted by 13210,...,,,,-K c c c c c , and the bits output from the first and second 8-state constituent encoders are denoted by 13210,...,,,,-K z z z z z and 13210,...,,,,-'''''K z z z z z , respectively. The bits outputfrom the turbo code internal interleaver are denoted by 110,...,,-'''K c c c , and these bits are to be the input to the second 8-state constituent encoder.Figure 5.1.3-2: Structure of rate 1/3 turbo encoder (dotted lines apply for trellis termination only).5.1.3.2.2 Trellis termination for turbo encoderTrellis termination is performed by taking the tail bits from the shift register feedback after all information bits areencoded. Tail bits are padded after the encoding of information bits.The first three tail bits shall be used to terminate the first constituent encoder (upper switch of figure 5.1.3-2 in lower position) while the second constituent encoder is disabled. The last three tail bits shall be used to terminate the second constituent encoder (lower switch of figure 5.1.3-2 in lower position) while the first constituent encoder is disabled. The transmitted bits for trellis termination shall then be:K K x d =)0(, 1)0(1++=K K z d , K K x d '=+)0(2, 1)0(3++'=K K z d K K z d =)1(, 2)1(1++=K K x d , K K z d '=+)1(2, 2)1(3++'=K K x d1)2(+=K K x d , 2)2(1++=K K z d , 1)2(2++'=K K x d , 2)2(3++'=K K z d5.1.3.2.3 Turbo code internal interleaverThe bits input to the turbo code internal interleaver are denoted by 110,...,,-K c c c , where K is the number of input bits.The bits output from the turbo code internal interleaver are denoted by 110,...,,-'''K c c c . The relationship between the input and output bits is as follows:()i i c c ∏=', i =0, 1,…, (K -1)where the relationship between the output index i and the input index )(i ∏ satisfies the following quadratic form:()K i f i f i mod )(221⋅+⋅=∏The parameters 1f and 2f depend on the block size K and are summarized in Table 5.1.3-3.Table 5.1.3-3: Turbo code internal interleaver parameters.5.1.4Rate matching5.1.4.1Rate matching for turbo coded transport channelsThe rate matching for turbo coded transport channels is defined per coded block and consists of interleaving the threeinformation bit streams )0(k d , )1(k d and )2(k d , followed by the collection of bits and the generation of a circular buffer asdepicted in Figure 5.1.4-1. The output bits for each code block are transmitted as described in section 5.1.4.1.2.Figure 5.1.4-1. Rate matching for turbo coded transport channels.The bit stream )0(k d is interleaved according to the sub-block interleaver defined in section 5.1.4.1.1 with an output sequence defined as )0(1)0(2)0(1)0(0,...,,,-∏K v v v v and where ∏K is defined in section 5.1.4.1.1.The bit stream )1(k d is interleaved according to the sub-block interleaver defined in section 5.1.4.1.1 with an output sequence defined as )1(1)1(2)1(1)1(0,...,,,-∏K v v v v .The bit stream )2(k d is interleaved according to the sub-block interleaver defined in section 5.1.4.1.1 with an output sequence defined as )2(1)2(2)2(1)2(0,...,,,-∏K v v v v .The sequence of bits k e for transmission is generated according to section 5.1.4.1.2.5.1.4.1.1 Sub-block interleaverThe bits input to the block interleaver are denoted by )(1)(2)(1)(0,...,,,i D i i i d d d d -, where D is the number of bits. The output bit sequence from the block interleaver is derived as follows:(1) Assign 32=TCsubblockC to be the number of columns of the matrix. The columns of the matrix are numbered 0, 1, 2,…,1-TCsubblockC from left to right. (2) Determine the number of rows of the matrix TCsubblock R , by finding minimum integer TCsubblock R such that:()TCsubblock TC subblock C R D ⨯≤The rows of rectangular matrix are numbered 0, 1, 2,…,1-TCsubblockR from top to bottom.(3) If ()D C R TC subblock TC subblock >⨯, then ()D C R N TCsubblock TC subblock D -⨯= dummy bits are padded such that y k = <NULL > for k = 0, 1,…, N D - 1. Then, )(i k k N d y D =+, k = 0, 1,…, D -1, and the bit sequence y k is written intothe ()TC subblockTC subblock C R ⨯ matrix row by row starting with bit y 0 in column 0 of row 0: ⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡-⨯+⨯-+⨯-⨯--++-)1(2)1(1)1()1(12211210TCsubblock TC subblock TCsubblock TCsubblock TCsubblock TCsubblock TCsubblockTC subblock TCsubblock TCsubblock TCsubblock TCsubblock TCsubblock C R C R C R C R C C C C C y y y y y y y y y y y yFor )0(k d and )1(k d :(4) Perform the inter-column permutation for the matrix based on the pattern (){}1,...,1,0-∈TCsubblock C j j P that is shown intable 5.1.4-1, where P(j ) is the original column position of the j -th permuted column. After permutation of thecolumns, the inter-column permuted ()TCsubblockTC subblock C R ⨯ matrix is equal to ⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡⨯-+-⨯-+⨯-+⨯-++-+++-TCsubblockTC subblock TCsubblock TCsubblockTCsubblock TCsubblockTCsubblock TCsubblock TC subblock TCsubblockTCsubblock TCsubblockTCsubblockTCsubblock TC subblock C R C P C R P C R P C R P C C P C P C P C P C P P P P y y y y y y y y y y y y )1()1()1()2()1()1()1()0()1()2()1()0()1()2()1()0((5) The output of the block interleaver is the bit sequence read out column by column from the inter-columnpermuted ()TCsubblockTC subblock C R ⨯matrix. The bits after sub-block interleaving are denoted by )(1)(2)(1)(0,...,,,i K i i i v v v v -∏,where )(0i v corresponds to )0(P y ,)(1i v to TC subblockC P y +)0(… and ()TCsubblock TC subblock C R K ⨯=∏.For )2(k d :(4) The output of the sub-block interleaver is denoted by )2(1)2(2)2(1)2(0,...,,,-∏K v v v v , where )()2(k ky v π= and where ()∏⎪⎪⎭⎫ ⎝⎛+⨯+⎪⎪⎭⎫ ⎝⎛⎥⎥⎦⎥⎢⎢⎣⎢=K R k C R k P k TC subblock TC subblock TC subblock mod 1mod )(π The permutation function P is defined in Table 5.1.4-1.Table 5.1.4-1 Inter-column permutation pattern for sub-block interleaver.5.1.4.1.2 Bit collection, selection and transmissionThe circular buffer of length ∏=K K w 3 for the r -th coded block is generated as follows: )0(k k v w =for k = 0,…, 1-∏K)1(2k k K v w =+∏ for k = 0,…, 1-∏K)2(12k k K v w =++∏ for k = 0,…, 1-∏KDenote the soft buffer size for the transport block by N IR bits and the soft buffer size for the r -th code block by N cb bits. The size N cb is obtained as follows, where C is the number of code blocks computed in section 5.1.2: -⎪⎪⎭⎫⎝⎛⎥⎦⎥⎢⎣⎢=w IR cb K C N N ,min for DL-SCH and PCH transport channels- w cb K N = for UL-SCH and MCH transport channelswhere N IR is equal to:()⎥⎥⎦⎥⎢⎢⎣⎢⋅⋅=limit DL_HARQ MIMO ,min M M K K N N C soft IRwhere:If the UE signals ue-Category-v1020, and is configured with transmission mode 9 or transmission mode 10 for the DLcell, N soft is the total number of soft channel bits [4] according to the UE category indicated by ue-Category-v1020 [6]. Otherwise, N soft is the total number of soft channel bits [4] according to the UE category indicated by ue-Category (without suffix) [6]. If N soft = 35982720, K C = 5,elseif N soft = 3654144 and the UE is capable of supporting no more than a maximum of two spatial layers for the DL cell, K C = 2 else K C = 1 End if.K MIMO is equal to 2 if the UE is configured to receive PDSCH transmissions based on transmission modes 3, 4, 8, 9 or 10 as defined in section 7.1 of [3], and is equal to 1 otherwise.If the UE is configured with more than one serving cell and if at least two serving cells have different UL/DLconfigurations, M DL_HARQ is the maximum number of DL HARQ processes as defined in Table 7-1 in [3] for the DL-reference UL/DL configuration of the serving cell. Otherwise, M DL_HARQ is the maximum number of DL HARQ processes as defined in section 7 of [3]. M limit is a constant equal to 8.Denoting by E the rate matching output sequence length for the r -th coded block, and rv idx the redundancy version number for this transmission (rv idx = 0, 1, 2 or 3), the rate matching output bit sequence is k e , k = 0,1,..., 1-E . Define by G the total number of bits available for the transmission of one transport block.Set )m L Q N G G ⋅=' where Q m is equal to 2 for QPSK, 4 for 16QAM and 6 for 64QAM, and where - For transmit diversity: - N L is equal to 2, - Otherwise:- N L is equal to the number of layers a transport block is mapped onto Set C G mod '=γ, where C is the number of code blocks computed in section 5.1.2.if 1--≤γC rset ⎣⎦C G Q N E m L /'⋅⋅= elseset ⎡⎤C G Q N E m L /'⋅⋅=end if Set ⎪⎪⎭⎫ ⎝⎛+⋅⎥⎥⎤⎢⎢⎡⋅⋅=2820idx TC subblock cb TCsubblockrv R N R k , where TC subblock R is the number of rows defined in section 5.1.4.1.1. Set k = 0 and j = 0 while { k < E } if >≠<+NULL w cb N j k m od )(0 cb N j k k w e m od )(0+=k = k +1end if j = j +1end while5.1.4.2Rate matching for convolutionally coded transport channels and control informationThe rate matching for convolutionally coded transport channels and control information consists of interleaving thethree bit streams, )0(k d , )1(k d and )2(k d , followed by the collection of bits and the generation of a circular buffer asdepicted in Figure 5.1.4-2. The output bits are transmitted as described in section 5.1.4.2.2.Figure 5.1.4-2. Rate matching for convolutionally coded transport channels and control information.The bit stream )0(k d is interleaved according to the sub-block interleaver defined in section 5.1.4.2.1 with an output sequence defined as )0(1)0(2)0(1)0(0,...,,,-∏K v v v v and where ∏K is defined in section 5.1.4.2.1.The bit stream )1(k d is interleaved according to the sub-block interleaver defined in section 5.1.4.2.1 with an output sequence defined as )1(1)1(2)1(1)1(0,...,,,-∏K v v v v .。
Slave-Redundancy(从设备冗余的要求)
Prepared by the PROFIBUS Working Group 4 “DCS Requirements” in the Technical Committee 4 “System Integration”.
This revised version V1.2 replaces draft version V1.1. There is one change according a change request based on the PNO review in the informative Annex B "GSD requirements": the requirement for Slave_Redundancy_supp is adjusted to GSD specification V5.02. The major changes to V1.0 are described in the introduction.
The attention of adopters is directed to the possibility that compliance with or adoption of PI (PROFIBUS International) specifications may require use of an invention covered by patent rights. PI shall not be responsible for identifying patents for which a license may be required by any PI specification, or for conducting legal inquiries into the legal validity or scope of those patents that are brought to its attention. PI specifications are prospective and advisory only. Prospective users are responsible for protecting themselves against liability for infringement of patents. NOTICE: The information contained in this document is subject to change without notice. The material in this document details a PI specification in accordance with the license and notices set forth on this page. This document does not represent a commitment to implement any portion of this specification in any company's products. WHILE THE INFORMATION IN THIS PUBLICATION IS BELIEVED TO BE ACCURATE, PI MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS MATERIAL INCLUDING, BUT NOT LIMITED TO ANY WARRANTY OF TITLE OR OWNERSHIP, IMPLIED WARRANTY OF MERCHANTABILITY OR WARRANTY OF FITNESS FOR PARTICULAR PURPOSE OR USE. In no event shall PI be liable for errors contained herein or for indirect, incidental, special, consequential, reliance or cover damages, including loss of profits, revenue, data or use, incurred by any user or any third party. Compliance with this specification does not absolve manufacturers of PROFIBUS or PROFINET equipment, from the requirements of safety and regulatory agencies (TÜV, BIA, UL, CSA, FCC, IECBUS Nutzerorganisation e.V. Haid-und-Neu-Str. 7 D-76131 Karlsruhe Germany Phone: +49 721 / 96 58 590 Fax: +49 721 / 96 58 589 E-mail: pi@ Web site:
LaTeX符号表
The Comprehensive L A T E X Symbol ListScott Pakin<pakin@>∗29September2003AbstractThis document lists2826symbols and the corresponding L A T E X commands that produce them.Some of these symbols are guaranteed to be available in every L A T E X2εsystem;others require fonts and packagesthat may not accompany a given distribution and that therefore need to be installed.All of the fontsand packages used to prepare this document—as well as this document itself—are freely available from theComprehensive T E X Archive Network().Contents1Introduction61.1Document Usage (6)1.2Frequently Requested Symbols (6)2Body-text symbols7 Table1:L A T E X2εEscapable“Special”Characters (7)Table2:L A T E X2εCommands Defined to Work in Both Math and Text Mode (7)Table3:Predefined L A T E X2εText-mode Commands (7)Table4:Non-ASCII Letters(Excluding Accented Letters) (8)Table5:Letters Used to Typeset African Languages (8)Table6:Punctuation Marks Not Found in OT1 (8)Table7:pifont Decorative Punctuation Marks (8)Table8:wasysym Phonetic Symbols (8)Table9:tipa Phonetic Symbols (8)Table10:wsuipa Phonetic Symbols (10)Table11:phonetic Phonetic Symbols (10)Table12:Text-mode Accents (11)Table13:tipa Text-mode Accents (11)Table14:wsuipa Text-mode Accents (12)Table15:phonetic Text-mode Accents (13)Table16:wsuipa Diacritics (13)Table17:textcomp Diacritics (13)Table18:textcomp Currency Symbols (13)Table19:marvosym Currency Symbols (14)Table20:wasysym Currency Symbols (14)Table21:eurosym Euro Signs (14)Table22:textcomp Legal Symbols (14)Table23:textcomp Old-style Numerals (14)Table24:Miscellaneous textcomp Symbols (15)Table25:Miscellaneous wasysym Text-mode Symbols (15)Table26:A M S Commands Defined to Work in Both Math and Text Mode (15)∗The original version of this document was written by David Carlisle,with several additional tables provided by Alexander Holt.See Section7.6on page69for more information about who did what.13Mathematical symbols16 Table27:Binary Operators (16)Table28:A M S Binary Operators (16)Table29:stmaryrd Binary Operators (17)Table30:wasysym Binary Operators (17)Table31:txfonts/pxfonts Binary Operators (17)Table32:mathabx Binary Operators (18)Table33:ulsy Geometric Binary Operators (18)Table34:mathabx Geometric Binary Operators (18)Table35:Variable-sized Math Operators (18)Table36:A M S Variable-sized Math Operators (19)Table37:stmaryrd Variable-sized Math Operators (19)Table38:wasysym Variable-sized Math Operators (19)Table39:mathabx Variable-sized Math Operators (19)Table40:txfonts/pxfonts Variable-sized Math Operators (20)Table41:esint Variable-sized Math Operators (20)Table42:Binary Relations (21)Table43:A M S Binary Relations (21)Table44:A M S Negated Binary Relations (21)Table45:stmaryrd Binary Relations (21)Table46:wasysym Binary Relations (21)Table47:txfonts/pxfonts Binary Relations (22)Table48:txfonts/pxfonts Negated Binary Relations (22)Table49:mathabx Binary Relations (22)Table50:mathabx Negated Binary Relations (23)Table51:trsym Binary Relations (23)Table52:trfsigns Binary Relations (23)Table53:Subset and Superset Relations (23)Table54:A M S Subset and Superset Relations (23)Table55:stmaryrd Subset and Superset Relations (24)Table56:wasysym Subset and Superset Relations (24)Table57:txfonts/pxfonts Subset and Superset Relations (24)Table58:mathabx Subset and Superset Relations (24)Table59:Inequalities (24)Table60:A M S Inequalities (24)Table61:wasysym Inequalities (25)Table62:txfonts/pxfonts Inequalities (25)Table63:mathabx Inequalities (25)Table64:A M S Triangle Relations (25)Table65:stmaryrd Triangle Relations (25)Table66:mathabx Triangle Relations (25)Table67:Arrows (26)Table68:Harpoons (26)Table69:textcomp Text-mode Arrows (26)Table70:A M S Arrows (26)Table71:A M S Negated Arrows (26)Table72:A M S Harpoons (26)Table73:stmaryrd Arrows (27)Table74:txfonts/pxfonts Arrows (27)Table75:mathabx Arrows (27)Table76:mathabx Negated Arrows (27)Table77:mathabx Harpoons (28)Table78:chemarrow Arrows (28)Table79:ulsy Contradiction Symbols (28)Table80:Extension Characters (28)Table81:stmaryrd Extension Characters (28)Table82:txfonts/pxfonts Extension Characters (28)2Table83:mathabx Extension Characters (28)Table84:Log-like Symbols (29)Table85:A M S Log-like Symbols (29)Table86:Greek Letters (29)Table87:A M S Greek Letters (29)Table88:txfonts/pxfonts Upright Greek Letters (30)Table89:upgreek Upright Greek Letters (30)Table90:txfonts/pxfonts Variant Latin Letters (30)Table91:A M S Hebrew Letters (30)Table92:Letter-like Symbols (30)Table93:A M S Letter-like Symbols (31)Table94:txfonts/pxfonts Letter-like Symbols (31)Table95:mathabx Letter-like Symbols (31)Table96:trfsigns Letter-like Symbols (31)Table97:A M S Delimiters (31)Table98:stmaryrd Delimiters (31)Table99:mathabx Delimiters (31)Table100:nath Delimiters (31)Table101:Variable-sized Delimiters (32)Table102:Large,Variable-sized Delimiters (32)Table103:Variable-sized stmaryrd Delimiters (32)Table104:mathabx Variable-sized Delimiters (32)Table105:nath Variable-sized Delimiters(Double) (33)Table106:nath Variable-sized Delimiters(Triple) (33)Table107:textcomp Text-mode Delimiters (33)Table108:Math-mode Accents (34)Table109:A M S Math-mode Accents (34)Table110:yhmath Math-mode Accents (34)Table111:trfsigns Math-mode Accents (34)Table112:Extensible Accents (35)Table113:overrightarrow Extensible Accents (35)Table114:yhmath Extensible Accents (35)Table115:A M S Extensible Accents (35)Table116:chemarr Extensible Accents (36)Table117:chemarrow Extensible Accents (36)Table118:mathabx Extensible Accents (36)Table119:esvect Extensible Accents (37)Table120:undertilde Extensible Accents (37)Table121:Dots (37)Table122:A M S Dots (37)Table123:mathdots Dots (38)Table124:yhmath Dots (38)Table125:Miscellaneous L A T E X2εSymbols (38)Table126:Miscellaneous A M S Symbols (38)Table127:Miscellaneous wasysym Symbols (38)Table128:Miscellaneous txfonts/pxfonts Symbols (38)Table129:Miscellaneous mathabx Symbols (39)Table130:Miscellaneous textcomp Text-mode Math Symbols (39)Table131:mathcomp Math Symbols (39)Table132:gensymb Symbols Defined to Work in Both Math and Text Mode (39)Table133:mathabx Mayan Digits (39)Table134:marvosym Math Symbols (39)Table135:Math Alphabets (40)34Science and technology symbols41 Table136:wasysym Electrical and Physical Symbols (41)Table137:ifsym Pulse Diagram Symbols (41)Table138:ar Aspect Ratio Symbol (41)Table139:textcomp Text-mode Science and Engineering Symbols (41)Table140:wasysym Astronomical Symbols (41)Table141:marvosym Astronomical Symbols (42)Table142:mathabx Astronomical Symbols (42)Table143:wasysym Astrological Symbols (42)Table144:marvosym Astrological Symbols (42)Table145:mathabx Astrological Symbols (42)Table146:wasysym APL Symbols (42)Table147:wasysym APL Modifiers (42)Table148:marvosym Computer Hardware Symbols (43)Table149:ascii Control Characters(IBM) (43)Table150:marvosym Communication Symbols (43)Table151:marvosym Engineering Symbols (43)Table152:wasysym Biological Symbols (43)Table153:marvosym Biological Symbols (43)Table154:marvosym Safety-related Symbols (44)5Dingbats45 Table155:bbding Arrows (45)Table156:pifont Arrows (45)Table157:marvosym Scissors (45)Table158:bbding Scissors (45)Table159:pifont Scissors (45)Table160:dingbat Pencils (45)Table161:bbding Pencils and Nibs (46)Table162:pifont Pencils and Nibs (46)Table163:dingbat Hands (46)Table164:bbding Hands (46)Table165:pifont Hands (46)Table166:bbding Crosses and Plusses (46)Table167:pifont Crosses and Plusses (46)Table168:bbding Xs and Check Marks (46)Table169:pifont Xs and Check Marks (47)Table170:wasysym Xs and Check Marks (47)Table171:pifont Circled Numbers (47)Table172:wasysym Stars (47)Table173:bbding Stars,Flowers,and Similar Shapes (47)Table174:pifont Stars,Flowers,and Similar Shapes (48)Table175:wasysym Geometric Shapes (48)Table176:ifsym Geometric Shapes (48)Table177:bbding Geometric Shapes (49)Table178:pifont Geometric Shapes (49)Table179:universa Geometric Shapes (49)Table180:manfnt Dangerous Bend Symbols (49)Table181:skull Symbols (49)Table182:Non-Mathematical mathabx Symbols (49)Table183:marvosym Information Symbols (49)Table184:Miscellaneous dingbat Dingbats (50)Table185:Miscellaneous bbding Dingbats (50)Table186:Miscellaneous pifont Dingbats (50)46Other symbols51 Table187:textcomp Genealogical Symbols (51)Table188:wasysym General Symbols (51)Table189:wasysym Musical Notes (51)Table190:wasysym Circles (51)Table191:Miscellaneous manfnt Symbols (51)Table192:marvosym Navigation Symbols (52)Table193:marvosym Laundry Symbols (52)Table194:Other marvosym Symbols (52)Table195:Miscellaneous universa Symbols (52)Table196:ifsym Weather Symbols (53)Table197:ifsym Alpine Symbols (53)Table198:ifsym Clocks (53)Table199:Other ifsym Symbols (53)Table200:skak Chess Informator Symbols (54)7Additional Information557.1Symbol Name Clashes (55)7.2Where can Ifind the symbol for...? (55)7.3Math-mode spacing (64)7.4Bold mathematical symbols (65)7.5ASCII and Latin1quick reference (66)7.6About this document (69)References69 Index7151IntroductionWelcome to the Comprehensive L A T E X Symbol List!This document strives to be your primary source of L A T E X symbol information:font samples,L A T E X commands,packages,usage details,caveats—everything needed to put thousands of different symbols at your disposal.All of the fonts covered herein meet the following criteria:1.They are freely available from the Comprehensive T E X Archive Network().2.All of their symbols have L A T E X2εbindings.That is,a user should be able to access a symbol by name,not just by\char number .These are not particularly limiting criteria;the Comprehensive L A T E X Symbol List contains samples of2826 symbols—quite a large number.Some of these symbols are guaranteed to be available in every L A T E X2εsystem; others require fonts and packages that may not accompany a given distribution and that therefore need to be installed.See /cgi-bin/texfaq2html?label=instpackages+wherefiles for help with installing new fonts and packages.1.1Document UsageEach section of this document contains a number of font tables.Each table shows a set of symbols,with the corresponding L A T E X command to the right of each symbol.A table’s caption indicates what package needs to be loaded in order to access that table’s symbols.For example,the symbols in Table23,“textcomp Old-Style Numerals”,are made available by putting“\usepackage{textcomp}”in your document’s preamble.“A M S”means to use the A M S packages,viz.amssymb and/or amsmath.Notes below a table provide additionalinformation about some or all the symbols in that table.One note that appears a few times in this document,particularly in Section2,indicates that certain symbols do not exist in the OT1font encoding(Donald Knuth’s original,7-bit font encoding,which is the default font encoding for L A T E X)and that you should use fontenc to select a different encoding,such as T1 (a common8-bit font encoding).That means that you should put“\usepackage[ encoding ]{fontenc}”in your document’s preamble,where encoding is,e.g.,T1or LY1.To limit the change in font encoding to the current group,use“\fontencoding{ encoding }\selectfont”.Section7contains some additional information about the symbols in this document.It shows which symbol names are not unique across packages,gives examples of how to create new symbols out of existing symbols, explains how symbols are spaced in math mode,presents a L A T E X ASCII and Latin1tables,and provides some information about this document itself.The Comprehensive L A T E X Symbol List ends with an index of all the symbols in the document and various additional useful terms.1.2Frequently Requested SymbolsThere are a number of symbols that are requested over and over again on comp.text.tex.If you’re looking for such a symbol the following list will help youfind it quickly.,as in“Spaces significant.” (7)´ı,`ı,¯ı,ˆı,etc.(versus´i,`i,¯i,andˆi) (11)¢ (13)e (14)©,®,and™ (14)‰ (15) (20)∴ (21)and (22)and (24)... (38)°,as in“180°”or“15℃” (39)L,F,etc (40)N,Z,R,etc (40)−R (58)´¯a,`ˆe,etc.(i.e.,several accents per character)60 <,>,and|(instead of¡,¿,and—) (66)ˆand˜(or∼) (67)62Body-text symbolsThis section lists symbols that are intended for use in running text,such as punctuation marks,accents, ligatures,and currency symbols.Table1:L A T E X2εEscapable“Special”Characters$\$%\%\_∗}\}&\&#\#{\{∗The underscore package redefines“_”to produce an underscore in text mode(i.e.,itmakes it unnecessary to escape the underscore character).Table2:L A T E X2εCommands Defined to Work in Both Math and Text Mode$\$\_‡\ddag{\{¶\P c○©\copyright...\dots}\}§\S†\dag£\poundsWhere two symbols are present,the left one is the“faked”symbol that L A T E X2εprovides by default,and the right one is the“true”symbol that textcomp makesavailable.Table3:Predefined L A T E X2εText-mode Commandsˆ\textasciicircum<\textless˜\textasciitilde aª\textordfeminine∗\textasteriskcentered oº\textordmasculine\\textbackslash¶\textparagraph|\textbar·\textperiodcentered{\textbraceleft¿\textquestiondown}\textbraceright“\textquotedblleft•\textbullet”\textquotedblrightc○©\textcopyright‘\textquoteleft†\textdagger’\textquoteright‡\textdaggerdbl r○®\textregistered$\textdollar§\textsection...\textellipsis£\textsterling—\textemdash TM™\texttrademark–\textendash\textunderscore¡\textexclamdown\textvisiblespace>\textgreaterWhere two symbols are present,the left one is the“faked”symbol that L A T E X2εprovides by default,and the right one is the“true”symbol that textcomp makesavailable.7Table4:Non-ASCII Letters(Excluding Accented Letters)˚a\aaÐ\DH∗ L\Lø\oß\ss˚A\AAð\dh∗ l\lØ\O SS\SSÆ\AEÐ\DJ∗Ŋ\NG∗Œ\OEÞ\TH∗æ\aeđ\dj∗ŋ\ng∗œ\oeþ\th∗∗Not available in the OT1font e the fontenc package to select analternate font encoding,such as T1.Table5:Letters Used to Typeset African LanguagesÐ\B{D}°\m{c}¤\m{f}¨\m{k}»\M{t} \m{Z}\B{d} \m{D} \m{F} \m{N} \M{T}Â\T{E}\B{H}ð\M{d} \m{G}\m{n}º\m{t}â\T{e}§\B{h}Ð\M{D}¦\m{g}ª\m{o} \m{T}Å\T{O}·\B{t}¡\m{d}À\m{I} \m{O}®\m{u}∗å\T{o}\B{T} \m{E}à\m{i} \m{P} \m{U}∗\m{b}¢\m{e} \m{J}±\m{p} \m{Y}\m{B} \M{E}©\m{j}¬\m{s}¯\m{y}\m{C}£\M{e} \m{K} \m{S}¶\m{z}These characters all need the T4font encoding,which is provided by the fc package.∗\m{v}and\m{V}are synonyms for\m{u}and\m{U}.Table6:Punctuation Marks Not Found in OT1«\guillemotleft‹\guilsinglleft…\quotedblbase"\textquotedbl »\guillemotright›\guilsinglright‚\quotesinglbaseTo get these symbols,use the fontenc package to select an alternate font encoding,such as T1.Table7:pifont Decorative Punctuation Marks❛\ding{123}❝\ding{125}❡\ding{161}❣\ding{163}❜\ding{124}❞\ding{126}❢\ding{162}Table8:wasysym Phonetic SymbolsD\DH \dh \openoÞ\Thorn \inveþ\thornTable9:tipa Phonetic Symbols8È\textbabygamma P\textglotstopï\textrtailnb\textbarb;\texthalflengthó\textrtailrc\textbarc»\texthardsignù\textrtailsd\textbard#\texthooktopú\textrtailté\textbardotlessjá\texthtbü\textrtailzg\textbargê\texthtbardotlessj$\textrthookÜ\textbarglotstopÁ\texthtcÀ\textsca1\textbariâ\texthtdà\textscbª\textbarlä\texthtg¤\textsce8\textbaro H\texththå\textscgÝ\textbarrevglotstopÊ\texththengË\textsch0\textbaruÎ\texthtk@\textschwaì\textbeltlÒ\texthtp I\textsciB\textbetaÓ\texthtq¨\textscjò\textbullseye£\texthtrtaildÏ\textscl \textceltpalÉ\texthtscgð\textscnX\textchiÖ\texthtt×\textscoeligÅ\textcloseepsilonÿ\texthvlig±\textscomegaÑ\textcloseomegaÛ\textinvglotstopö\textscrÆ\textcloserevepsilon K\textinvscr A\textscriptaÞ\textcommatailzÌ\textiota g\textscriptg^\textcorner«\textlambda V\textscriptv\textcrb:\textlengthmarkÚ\textscu¡\textcrd³\textlhookt Y\textscyg\textcrg¦\textlhtlongi \textsecstressè\textcrh¶\textlhtlongyº\textsoftsignÛ\textcrinvglotstopÔ\textlonglegrÂ\textstretchc¬\textcrlambda½\textlptr t C\texttctclig2\textcrtwo M\textltailmÙ\textteshligC\textctcñ\textltailn T\texttheta¢\textctdë\textltildeþ\textthorn¢ý\textctdctzligÐ\textlyoghlig¿\texttoneletterstem ²\textcteshÍ\textObardotlessjµ\texttsligJ\textctj\textOlyoghlig5\textturna®\textctn°\textomega¯\textturncelig´\textctt_\textopencorner4\textturnh´C\textcttctclig O\textopeno©\textturnk¸\textctyogh%\textpalhookÕ\textturnlonglegr ý\textctz F\textphi W\textturnmdý\textdctzlig|\textpipeî\textturnmrlegS\textdoublebaresh"\textprimstressô\textturnr}\textdoublebarpipe¼\textraiseglotstopõ\textturnrrtail=/\textdoublebarslash§\textraisevibyi6\textturnscripta {\textdoublepipe7\textramshornsØ\textturnt\textdoublevertline\\textrevapostrophe2\textturnv\textdownstep9\textreveû\textturnwÃ\textdyoghlig3\textrevepsilon L\textturnyd z\textdzlig Q\textrevglotstop U\textupsilonE\textepsilon¹\textrevyogh \textupstepS\texteshÇ\textrhookrevepsilon \textvertlineR\textfishhookrÄ\textrhookschwa§\textvibyi¥\textg~\textrhoticity·\textvibyyG\textgamma¾\textrptrß\textwynn\textglobfallã\textrtaild Z\textyogh(continued on next page)9(continued from previous page)\textglobrise í\textrtailltipa defines shortcut characters for many of the above.It also defines a command \tone for denoting tone letters (pitches).See the tipa documentation for more information.Table 10:wsuipa Phonetic Symbols3\babygamma V \eng R \labdentalnas !\schwa ¦\barb "\er G \latfric B \sci \bard w \esh T \legm X \scn 9\bari \eth i \legr t \scrF \barl h \flapr I \lz¡\scripta `\baro \glotstop ¢\nialpha (\scriptg e \barp ¨\hookb ©\nibeta \scriptv C \barsci \hookd \nichi\scu \barscu )\hookg $\niepsilon \scy \baru 6\hookh 1\nigamma §\slashb Y \clickb 7\hookhengA \niiota \slashc \clickc &\hookrevepsilon P \nilambda \slashd \clickt4\hv b \niomega \slashu c \closedniomega \inva g \niphi \taild '\closedrevepsilon D \invfy \nisigma r \tailinvr ¥\crossb d \invglotstop \nitheta H \taill \crossd 8\invh \niupsilon W \tailn 5\crosshs \invlegr U \nj p \tailr Q \crossnilambda S \invm d \oo v \tails \curlyc q \invr a \openo \tailt x \curlyesh u \invscr#\reve\tailz \curlyyogh £\invscripta f \reveject \tesh \curlyz ¤\invv %\revepsilon f \thorn @\dlbari \invw \revglotstop E \tildel \dz\invy\scd\yoghe\ejective2\ipagamma\scgTable 11:phonetic Phonetic Symbolsj \barjf \flap i ¯\ibar e \rotvara i \vari¡\barlambda c \glottal \openo w \rotw ¨\varomega w \emgma f \hausaB ¯h \planck y \roty g \varopeno n \engma \hausab \pwedge e \schwa v ˚\vodx \enya h \hausad ¢\revD p \thorn h \voicedh 4\epsi \hausaD \riota u \ubar x\yoghs \esh k \hausak m \rotmu \udesc d \eth u \hausaK \rotOmega \vara p\fjh\hookdr\rotr q\varg10Table 12:Text-mode Accents¨A¨a \"{A}\"{a}`A`a \‘{A}\‘{a}˝A˝a \H{A}\H{a}˘A˘a \u{A}\u{a}´A´a \’{A}\’{a}A ¯a ¯\b{A}\b{a}Ąą\k{A}\k{a}†ˇAˇa \v{A}\v{a}˙A˙a \.{A}\.{a}A ¸¸a \c{A}\c{a}˚A ˚a \r{A}\r{a}˜A˜a \~{A}\~{a}¯A¯a \={A}\={a}A .a .\d{A}\d{a} A a \t{A}\t{a}ˆAˆa \^{A}\^{a} A a\G{A}\G{a}‡¼A¼a \U{A}\U{a}‡ Aa \newtie{A}\newtie{a}∗A ○a ○\textcircled{A}\textcircled{a}∗Requires the textcomp package.†Not available in the OT1font e the fontenc package to select an alternate font encoding,such as T1.‡Requires the T4font encoding,provided by the fc package.Also note the existence of \i and \j ,which produce dotless versions of “i”and “j”(viz.,“ı”and “j”).These are useful when the accent is supposed to replace the dot.For example,“na\"{\i}ve ”produces a correct “na¨ıve”,while “na\"{i}ve ”would yield the rather odd-looking “na ¨ive”.(“na\"{i}ve ”does work in encodingsother than OT1,however.)Table 13:tipa Text-mode Accents¡©A ¡©a \textacutemacron{A}\textacutemacron{a}¡§A ¡§a \textacutewedge{A}\textacutewedge{a}A 0a 0\textadvancing{A}\textadvancing{a}A `a `\textbottomtiebar{A}\textbottomtiebar{a}¨©A ¨©a \textbrevemacron{A}\textbrevemacron{a} A a \textcircumacute{A}\textcircumacute{a}¢ A ¢ a \textcircumdot{A}\textcircumdot{a} A a \textdotacute{A}\textdotacute{a} ¨A ¨a\textdotbreve{A}\textdotbreve{a}¨A ¨a \textdotbreve{A}\textdotbreve{a}A a \textdoublegrave{A}\textdoublegrave{a}A a \textdoublevbaraccent{A}\textdoublevbaraccent{a} A a \textgravecircum{A}\textgravecircum{a} A a \textgravedot{A}\textgravedot{a}©A ©a \textgravemacron{A}\textgravemacron{a} A a \textgravemid{A}\textgravemid{a}A a \textinvsubbridge{A}\textinvsubbridge{a}A )a )\textlowering{A}\textlowering{a} A a \textmidacute{A}\textmidacute{a}$A $a\textovercross{A}\textovercross{a}(continued on next page)(continued from previous page)" A "a\textoverw{A}\textoverw{a}A a \textpolhook{A}\textpolhook{a}A(a(\textraising{A}\textraising{a}A1a1\textretracting{A}\textretracting{a}¦©A¦©a\textringmacron{A}\textringmacron{a} A a\textroundcap{A}\textroundcap{a}A#a#\textseagull{A}\textseagull{a}A a\textsubacute{A}\textsubacute{a}A a\textsubarch{A}\textsubarch{a}A©a©\textsubbar{A}\textsubbar{a}A a \textsubbridge{A}\textsubbridge{a}A ¢a¢\textsubcircum{A}\textsubcircum{a}A a\textsubdot{A}\textsubdot{a}A a\textsubgrave{A}\textsubgrave{a}A!a!\textsublhalfring{A}\textsublhalfring{a} A'a'\textsubplus{A}\textsubplus{a}A a\textsubrhalfring{A}\textsubrhalfring{a}A ¦a¦\textsubring{A}\textsubring{a}A a \textsubsquare{A}\textsubsquare{a}A £a£\textsubtilde{A}\textsubtilde{a}A ¤a¤\textsubumlaut{A}\textsubumlaut{a}A"a"\textsubw{A}\textsubw{a}A §a§\textsubwedge{A}\textsubwedge{a}A8a8\textsuperimposetilde{A}\textsuperimposetilde{a}A 4a4\textsyllabic{A}\textsyllabic{a}£ A£ a\texttildedot{A}\texttildedot{a}bA b a\texttoptiebar{A}\texttoptiebar{a}A a\textvbaraccent{A}\textvbaraccent{a}tipa defines shortcut sequences for many of the above.See the tipa documentation for more information.Table14:wsuipa Text-mode AccentsA g a g\dental{A}\dental{a}A a \underarch{A}\underarch{a}Table 15:phonetic Text-mode AccentsA {a {\hill{A}\hill{a}©A ©a \rc{A}\rc{a}A ˜a˜\ut{A}\ut{a}A ˚a ˚\od{A}\od{a}Aa \syl{A}\syl{a}{A {a\ohill{A}\ohill{a}A ..a ..\td{A}\td{a}The phonetic package provides a few additional macros for linguistic accents.\acbar and \acarc compose characters with multiple accents;for example,\acbar{\’}{a}produces “´¯a ”and \acarc{\"}{e}produces “¨¯e ”.\labvel joinstwo characters with an arc:\labvel{mn}→“ mn”.\upbar is intended to gobetween characters as in “x\upbar{}y’’→“x y”.Lastly,\uplett behaves like \textsuperscript but uses a smaller font.Contrast “p\uplett{h}’’→“p h ”with “p\textsuperscript{h}’’→“p h ”.Table 16:wsuipa Diacriticss \ain v \leftp x \overring h \stress }\underwedge k \corner n \leftt ~\polishhook j \syllabic t \upp u \downp q \length w \rightp r \underdots l\uptm \downt{\midtilde o \rightt y \underring p\halflengthz\openi\secstress|\undertildeThe wsuipa package defines all of the above as ordinary characters,not as accents.However,it does provide \diatop and \diaunder commands,which are used to compose diacritics with other characters.For example,\diatop[\overring|a]produces “x a ”,and \diaunder[\underdots|a]produces “r a ”.See the wsuipa doc-umentation for more information.Table 17:textcomp Diacritics˝\textacutedbl ˇ\textasciicaron ¯\textasciimacron ´\textasciiacute ¨\textasciidieresis ̏\textgravedbl˘\textasciibreve`\textasciigraveThe textcomp package defines all of the above as ordinary characters,not as accents.Table 18:textcomp Currency Symbols฿\textbaht $\textdollar\textguarani ₩\textwon ¢\textcent$\textdollaroldstyle ₤\textlira ¥\textyen¢\textcentoldstyle ₫\textdong ₦\textnaira ₡\textcolonmonetary €\texteuro \textpeso¤\textcurrencyƒ\textflorin£\textsterlingTable19:marvosym Currency Symbols¢\Denarius e\EUR D\EURdig e\EURtm£\Pfund\Ecommerce d\EURcr c\EURhv¦\EyesDollar¡\Shilling The different euro signs are meant to be compatible with different fonts—Courier (\EURcr),Helvetica(\EURhv),Times(\EURtm),and the marvosym digits listed in Table134(\EURdig).Table20:wasysym Currency Symbols¢\cent¤\currencyTable21:eurosym Euro SignsA C\geneuroB C\geneuronarrow C\geneurowide e\officialeuro\euro is automatically mapped to one of the above—by default,\officialeuro—based on a eurosym package option.See the eurosym documentation for more information.The\geneuro...characters are generated from the current body font’s“C”character and therefore may not appear exactly as shown.Table22:textcomp Legal Symbols℗\textcircledP c○©\textcopyright℠\textservicemark \textcopyleft r○®\textregistered TM™\texttrademarkWhere two symbols are present,the left one is the“faked”symbol that L A T E X2εprovides by default,and the right one is the“true”symbol that textcomp makes available.See /cgi-bin/texfaq2html?label=tradesyms for solu-tions to common problems that occur when using these symbols(e.g.,getting a“r○”when you expected to get a“®”).Table23:textcomp Old-style Numerals0\textzerooldstyle4\textfouroldstyle8\texteightoldstyle1\textoneoldstyle5\textfiveoldstyle9\textnineoldstyle2\texttwooldstyle6\textsixoldstyle3\textthreeoldstyle7\textsevenoldstyleRather than use the bulky\textoneoldstyle,\texttwooldstyle,mands shown above,consider using\oldstylenums{...}to typeset an old-style number.。
Jsp页面使用taglib标签报错500的问题
Jsp页⾯使⽤taglib标签报错500的问题花了⼤量时间查阅⼤量资料后解决了,下⾯我说⼀下我解决问题的整个经过。
出现问题后我查阅资料,⼤部分给出的原因是没有添加avax.servlet.jstl的依赖,或者是项⽬打包输出的构建⽂件lib中不包含这个包的依赖,我仔细检查后发现,我本地项⽬确实存在。
继续查阅资料说,少⼀个standard包的依赖,我继续尝试,在项⽬中添加standard包的依赖,并在tomcat的lib⽬录⾥也添加了jstl及standard 包,继续运⾏,发现还是报错。
然后继续查阅资料,原因因为项⽬jsp页⾯引⽤的taglib标签所使⽤的tld⽂件没有从jstl包中加载出来,导致报错,解决⽅式是在项⽬的WEB-INF下添加jstl中所有tld⽂件。
于是乎,我在本地项⽬的WEB-INF下建⽴了⼀个taglib⽂件夹,把jstl包解压后,把⾥⾯jar包的META-INF\中.tld全部拷贝出后放在新建的⽂件夹中。
解决⽅式是暴⼒了点,还是先解决问题再说,于是乎再次运⾏。
原本这⾥就结束了,但是我不⽢⼼,这么解决太暴⼒了,⽽且影响项⽬结构,看起来很乱,于是乎继续翻阅资料。
偶然发现了⼀篇博客,说是tomcat的catalina.properties配置⽂件⾥如果配置了跳过tld扫描会导致项⽬⽆法加载.tld⽂件的问题,所以解决办法是把catalina.properties 配置⽂件中的tomcat.util.scan.StandardJarScanFilter.jarsToSkip字段修改为\总结:我看⽹上很多说法,说是tomcat添加tomcat.util.scan.StandardJarScanFilter.jarsToSkip=*.jar后会提⾼tomcat的启动速度,也会解决因为扫描.tld⽂件⽽导致卡在启动项⽬⼗⼏分钟的问题,但是带来的弊端就是jsp页⾯taglib标签500错误,所以这个问题的两种解决⽅式,⼤家根据⾃⼰情况⾃⾏选择:1. 第⼀种:在项⽬的WEB-INF下添加jstl中所有tld⽂件,这样会导致项⽬结构看起来很乱,好处是不使⽤JSP作为视图层时,tomcat启动速度增加。
gitlab 活动会话500
gitlab 活动会话500(原创实用版)目录1.GitLab 活动会话 500 的介绍2.GitLab 活动会话 500 的原因3.GitLab 活动会话 500 的解决方案4.GitLab 活动会话 500 的预防方法正文【GitLab 活动会话 500 的介绍】GitLab 是一个基于 Web 的 Git 代码仓库管理工具,提供了一个简单、易用的界面,让开发者能够更加高效地协作和管理代码。
然而,在使用 GitLab 的过程中,有时会出现活动会话 500 的错误,这对开发者的工作产生了一定的影响。
【GitLab 活动会话 500 的原因】活动会话 500 错误通常是由于 GitLab 服务器上的请求处理出现了问题。
这种问题可能是由于 GitLab 服务器的负载过高、数据库连接失败、系统资源不足等原因引起的。
这些问题会导致 GitLab 在处理用户请求时出现困难,从而引发活动会话 500 错误。
【GitLab 活动会话 500 的解决方案】当遇到 GitLab 活动会话 500 错误时,可以尝试以下几种解决方案:1.清除浏览器缓存:有时候,浏览器的缓存数据可能会导致活动会话500 错误。
因此,清除浏览器缓存数据,然后重新访问 GitLab 页面,可能会解决问题。
2.检查网络连接:如果网络连接不稳定,也可能会导致活动会话 500错误。
尝试重新连接网络,或者更换其他网络环境,看是否能够解决问题。
3.使用 GitLab 的镜像站点:如果访问 GitLab 时遇到了活动会话500 错误,可以尝试使用 GitLab 的镜像站点。
这些镜像站点通常会提供相同的服务,但可能会有更好的性能和稳定性。
4.升级 GitLab:如果 GitLab 版本过低,也可能会导致活动会话 500 错误。
因此,可以尝试升级 GitLab 到最新版本,看是否能够解决问题。
【GitLab 活动会话 500 的预防方法】为了预防 GitLab 活动会话 500 错误,可以采取以下几种方法:1.优化 GitLab 服务器性能:通过升级硬件设备、增加系统内存、优化数据库配置等方式,提高 GitLab 服务器的性能,从而避免活动会话500 错误。
dtry-elb01说明书参数
dtry-elb01说明书参数摘要:1.概述2.功能参数3.配置参数4.安全参数5.环境参数6.维护参数7.结论正文:1.概述dtry-elb01 是一种负载均衡器,它可以将流量分发到多个服务器,从而提高应用程序的可用性和性能。
负载均衡器可以根据不同的负载均衡算法,如轮询、最小连接数和IP 哈希,将流量分发到后端服务器。
此外,dtry-elb01 还支持会话保持、健康检查和故障转移等功能,以确保应用程序的高可用性和可靠性。
2.功能参数dtry-elb01 的功能参数包括以下几个方面:- 负载均衡算法:支持轮询、最小连接数和IP 哈希三种负载均衡算法。
- 会话保持:支持会话保持,确保客户端与服务器之间的会话连续性。
- 健康检查:支持后端服务器的健康检查,以确保流量仅分发到正常运行的服务器。
- 故障转移:支持故障转移,当后端服务器出现故障时,负载均衡器可以将流量自动切换到其他正常运行的服务器。
3.配置参数dtry-elb01 的配置参数包括以下几个方面:- 服务器列表:可以配置多个后端服务器,以实现负载均衡。
- 负载均衡算法:可以根据需要选择轮询、最小连接数或IP 哈希负载均衡算法。
- 会话保持:可以配置会话保持策略,如基于cookie 或基于URL 的会话保持。
- 健康检查:可以配置健康检查间隔和超时时间,以确保及时检测后端服务器的故障。
- 故障转移:可以配置故障转移策略,如基于响应时间或基于状态码的故障转移。
4.安全参数dtry-elb01 的安全参数包括以下几个方面:- 访问控制:支持基于IP 地址或基于域名的访问控制,以限制对负载均衡器的访问。
- 数据加密:支持SSL/TLS 加密,以确保数据在传输过程中的安全性。
- 防火墙:支持内置防火墙,以防止恶意攻击和网络威胁。
5.环境参数dtry-elb01 的环境参数包括以下几个方面:- 硬件要求:负载均衡器需要具备一定的硬件配置,如CPU、内存和存储空间等。
Buildroot大大简化了交叉编译工具链的制作
台上运行的本机编译(Native Compile)工具链。
我花了大量的时间研究buildroot,基于2009.11的版本做了不少修改,使得它符合固件开发的要求。
下面列出的是一些主要的改动:∙增加了对2.6.12内核头文件的支持(编译uClibc需要)∙增加了对uClibc-0.9.28的支持∙增加了对busybox-1.15.3的支持∙增加了对gcc 3.4.4和gcc 4.4.2的支持∙增加了对nfs-utils-1.1.1的支持∙为libiconv瘦身,只保留了unicode和简体中文的支持,编译出的动态库从900多K减小到200多K。
(编译samba需要libiconv)∙让libcurl和openssl只产生静态库。
(编译transmission要用到)1. 准备编译环境(适用于Ubuntu或Debian。
我用的是Ubuntu 9.10)安装编译所需软件包:$ sudo apt-get install build-essential libncurses5-dev bison flex texinfo zlib1g-dev gettext libssl-dev autoconfbuildroot用wget下载软件包源码,因此需要安装wget:$ sudo apt-get install wgetUbuntu默认的shell是dash,它跟buildroot的脚本有些不兼容。
用下面的命令切换到bash:$ sudo dpkg-reconfigure dash2. 下载buildroot-2009.11,放在HOME目录下,当然也可以放在其它目录。
$ cd$ wget /downloads/buildroot-2009.11.tar.bz2$ tar jxf buildroot-2009.11.tar.bz23. 打补丁。
我把我的所有修改都放在一个补丁里:buildroot-2009.11.patch.zip$ cd buildroot-2009.11$ patch -p1 < ../buildroot-2009.11.patch4. 配置buildroot。
invalid subscript selector
invalid subscript selector怎么解决
"invalid subscript selector"(无效的下标选择器)通常是在编程语言中涉及数组、列表、字典等数据结构时出现的错误信息。
不同的编程语言在处理这种错误时可能有一些差异,以下是一些可能的原因和解决方法,具体取决于你使用的编程语言:
1. 数组/列表越界:
-原因:尝试使用一个超出数组或列表范围的索引。
-解决方法:确保你的下标在数组或列表的有效范围内。
数组和列表的索引通常是从0开始的。
2. 字典键不存在:
-原因:尝试使用一个字典中不存在的键。
-解决方法:在使用字典之前,确保你正在使用有效的键。
你可以在使用键之前检查字典中是否存在该键,或者使用默认值来处理不存在的键情况。
3. 使用了无效的数据类型:
-原因:尝试在不支持下标操作的数据类型上使用下标操作。
-解决方法:确保你正在对支持下标操作的数据结构使用下标操作。
例如,在某些编程语言中,字符串不支持通过下标访问单个字符。
4. 错误的语法:
-原因:下标操作的语法错误。
-解决方法:检查你的下标操作是否符合语言的语法规则。
确保使用的下标符号是正确的,以及是否有正确的括号匹配。
5. 空数组或列表:
-原因:尝试在空数组或列表中使用下标操作。
-解决方法:在使用下标之前,检查数组或列表是否为空,以避免尝试对空结构执行下标操作。
如果你能提供更多关于你使用的编程语言和出现错误的上下文信息,我可以提供更具体的帮助。
db2 doublewrite 概念
db2 doublewrite 概念
DB2 Doublewrite是一个数据保护机制,用于确保数据在写入
磁盘之前的可靠性。
在DB2数据库中,当执行数据写入操作时,Doublewrite机制会先写入一个临时缓冲区(Doublewrite buffer),然后再写入磁盘。
如果写入磁盘过程中发生错误,
数据还可以从Doublewrite buffer中恢复,保证数据的完整性。
Doublewrite机制的作用是预防数据库写入过程中的磁盘故障
或崩溃导致数据丢失或损坏。
通过先将数据写入Doublewrite buffer,可以避免直接写入磁盘时可能出现的问题。
当写入磁
盘成功后,DB2会将Doublewrite buffer中的数据清空,以确
保数据一致性。
使用Doublewrite机制可以提高数据库的可靠性和稳定性,减
少数据损坏的风险。
但同时,Doublewrite机制也会带来额外
的IO开销,可能导致写入操作的性能略有下降。
因此,在实
际应用中,需要根据系统的需求和性能权衡是否开启Doublewrite机制。
failed to issue subrequest
failed to issue subrequest
Failed to issue subrequest,也可翻译为“子请求发生失败”,是一个错误提示信息。
这个错误通常在网站开发中出现,它表示在执行某个子请求时出现了问题,导致该请求失败。
这个问题很可能是代码错误所致,也可能是服务器配置上的问题,以及其他因素。
对于开发者来说,了解这个错误提示信息的原因和解决方案非常关键。
这个错误可能会导致网站功能无法正常运行,因此,我们需要及时定位问题并修复它。
首先,开发者可以尝试检查代码,查看代码是否存在语法错误、逻辑错误等问题。
如果存在这些问题,就需要修复它们,重新运行程序,看是否能够解决问题。
其次,开发者可以尝试重新配置服务器,查看是否有配置上的问题。
例如,一些服务器需要正确配置才能处理子请求,如果配置不正确,就可能导致出现问题。
除了以上这些方法之外,开发者还可以查看问题日志,分析错误发生时的情况,并尝试使用其他工具或方法来定位和解决问题。
总之,Failed to issue subrequest是一个常见的网站错误,开发人员需要对此进行及时的排查和解决,以确保网站的正常运行。
bdbje 的 replication 机制
bdbje 的 replication 机制一、什么是bdbje replication机制?Berkeley DB Java Edition(BDBJE)是一个高性能的嵌入式数据库,它提供了一个可扩展的、可靠的、分布式的数据存储解决方案。
BDBJE replication机制是指将数据复制到多个节点上,以提高可用性和容错性。
二、BDBJE replication机制的基本原理1.主节点和备份节点BDBJE replication机制中存在主节点和备份节点。
主节点负责处理客户端请求并将更改记录到日志文件中,备份节点则通过复制日志文件来同步数据。
2.同步方式备份节点可以通过两种方式与主节点同步数据:即时同步和延迟同步。
即时同步意味着备份节点会立即将更改应用到本地数据库中,而延迟同步意味着备份节点会等待一段时间再应用更改。
3.数据一致性为了确保数据一致性,BDBJE使用了基于Paxos算法的复制协议。
当主节点接收到客户端请求时,它会将更改记录到一个操作日志中,并向所有备份节点发送该操作日志。
当大多数备份节点都确认接收到该操作日志时,主节点才会认为该操作已经被提交,并向客户端返回成功响应。
4.故障转移在BDBJE replication机制中,如果主节点发生故障,备份节点可以自动接管成为新的主节点。
这个过程称为故障转移。
5.负载均衡BDBJE replication机制还支持负载均衡。
当有多个备份节点时,客户端可以选择连接任何一个备份节点来读取数据。
这样可以将读请求分摊到多个备份节点上,从而提高系统的吞吐量。
三、BDBJE replication机制的应用场景1.高可用性要求较高的应用程序BDBJE replication机制可以确保即使在主节点发生故障时,系统仍然能够继续工作。
这对于那些需要高可用性的应用程序来说非常重要。
2.分布式应用程序BDBJE replication机制支持分布式部署,并且可以在不同的物理位置之间复制数据。
package biblatex error -回复
package biblatex error -回复biblatex错误是使用LaTeX文档处理器时经常遇到的问题之一。
尽管biblatex是一个非常强大和灵活的引用管理工具,但在使用过程中可能会出现一些错误和困惑。
本文将逐步介绍biblatex错误的常见原因和解决方案,以帮助用户更好地理解和解决这些问题。
第一步:错误原因的识别在解决biblatex错误之前,首先需要确定错误的原因。
为了找到错误所在,我们可以对LaTeX编译输出进行仔细检查。
LaTeX编译输出通常会提供错误消息和警告,其中包括指向错误所在的具体行数和列数。
第二步:排查常见问题1. 发现错误消息LaTeX编译输出通常包含有关错误的详细信息,例如错误类型、错误位置等。
这些错误消息可以帮助我们更好地理解问题的具体原因,并采取正确的措施来解决它们。
2. 检查必需的包和宏是否正确加载biblatex依赖于一些宏包和宏定义。
如果这些包或宏没有正确加载,那么编译过程中可能会出现错误。
因此,我们需要确保所有必需的包和宏定义都正确加载,并且版本兼容性良好。
第三步:解决具体错误一旦我们确定了biblatex错误的具体原因,我们可以采取相应的解决方案来修复它。
以下是一些常见的biblatex错误和相应的解决方案:1. "Undefined Control Sequence"错误这个错误通常发生在尚未定义的命令或宏被使用时。
要解决这个问题,我们需要检查输入的命令或宏的拼写是否正确,并确保所有必需的包和宏已经加载。
2. "Data Encoding Error"错误这个错误通常表示输入的文献数据库(.bib文件)中存在字符编码错误。
要解决这个问题,我们需要确保文献数据库中的所有字符都使用正确的编码,并在LaTeX文档的导言区正确设置字符编码。
3. "Reference 'XXX' on page YYY undefined"错误这个错误通常表示引用的参考文献在文档的参考文献数据库中不存在。
git submodule的用法 -回复
git submodule的用法-回复Git submodule是Git版本控制系统中的一个特殊功能,它允许在一个仓库中嵌套另一个仓库。
这意味着我们可以将一个仓库作为另一个仓库的子模块引入,而不是将其作为该仓库的一部分。
在本文中,我将逐步解释git submodule的用法。
步骤一:添加子模块要在主仓库中添加一个子模块,我们可以使用以下命令:git submodule add <URL> <path>其中,`URL`是子模块的Git仓库URL,而`path`是我们在主仓库中希望子模块出现的路径。
例如,如果我们在名为`main_project`的主仓库中添加一个名为`sub_project`的子模块,可以使用以下命令:git submodule add git:github/user/sub_project.git sub_project此命令会将`sub_project`子模块添加到主仓库的`sub_project`文件夹中。
步骤二:初始化子模块添加子模块后,我们需要初始化它们。
初始化子模块将克隆子模块的内容到主仓库中。
以下是初始化子模块的命令:git submodule init这将初始化所有已添加的子模块。
如果我们只想初始化特定的子模块,可以使用以下命令:git submodule init <path>例如,如果我们只想初始化`sub_project`子模块,可以使用以下命令:git submodule init sub_project步骤三:更新子模块一旦子模块被初始化,我们可以通过以下命令更新子模块的内容:git submodule update这将会拉取子模块所在仓库的最新版本。
如果我们只想更新特定的子模块,可以使用以下命令:git submodule update <path>例如,如果我们只想更新`sub_project`子模块,可以使用以下命令:git submodule update sub_project步骤四:克隆仓库及其子模块如果我们克隆了一个包含子模块的主仓库,可以使用以下命令克隆主仓库及其子模块的内容:git clone recursive <URL>这将自动递归地克隆主仓库及其子模块的内容。
dubbo输入行太长 命令语法不正确
dubbo输入行太长命令语法不正确
当使用Dubbo命令时,如果输入的命令行太长导致命令语法不正确,可以尝试以下解决方法:
1. 分行输入:将长命令分解成多个部分,每行输入一个部分,确保每行的命令不会超过终端的最大长度限制。
2. 使用文件输入:将长命令保存在一个文本文件中,然后使用输入重定向来读取该文件作为命令的输入。
例如,可以使用以下命令将文件作为输入:`dubbo < input.txt`
3. 使用脚本或别名:将常用的长命令保存在一个脚本中或者创建一个命令别名,这样就可以通过执行脚本或使用别名来运行长命令,而不需要手动输入所有命令。
4. 缩短命令行参数:检查命令行参数是否可以缩短或使用默认值来减少输入的长度。
如果上述方法仍然无法解决问题,请提供更多关于命令和错误提示的详细信息,以便可以更准确地帮助解决。
invalid defauld enableredisrepositories
当在Spring Data项目中配置Redis存储库时出现问题时,通常会出现错误“invalid default enableredistries”。
以下是该问题的一些可能解决方案:
1.配置不正确:请确保在配置类中正确配置了@EnableRedistoreries注释。
注释应该放在用@Configuration注释的类上。
例子:
2.缺少依赖项:确保已将所需的Spring Data Redis和Redis客户端依赖项添加到项目中。
例如,如果您使用的是Spring Boot,请确保您的pom.xml 或build.gradle文件中有以下依赖项:
3. 版本不匹配:检查Spring Data Redis、Spring Boot和Redis客户端库之间是否存在任何版本不匹配。
有时,不兼容的版本可能会导致这样的问题。
请确保您使用的是这些库的兼容版本。
4.存储库接口位置:确保您的Redis存储库接口位于@EnableRedisRepositorys注释的basePackages属性中指定的包中。
如果接
口不在正确的包中,Spring将无法检测到它们。
如果这些解决方案都不起作用,请提供更多与您的配置和存储库设置相关的上下文和代码片段,以便进行更准确的诊断。
ILSpy源码下载后,编译不过的问题
ILSpy源码下载后,编译不过的问题ILSpy源码从github上下载下来后,⽤VS2019打开,然后进⾏重新⽣成解决⽅案,⼀直提⽰: global.json 中的"sdk": {"version": "3.1.100"}这段代码⼀直提⽰错误,最后折腾了下,就是要安装⾥⾯的⼀个程序,找到对应的版本下载:下载完,安装,重新打开,全部编译⼀遍,就可以正常运⾏了。
还有⼀个错误:Microsoft.DiaSymReader.Converter.Xml,⽆法正常获取的,处理⽅法如下:在ILSpy/ILSpy.csproj 中<PackageReference Include="Microsoft.DiaSymReader.Converter.Xml" Version="1.1.0-beta1-63314-01" /> 删除掉<PackageReference Include="Microsoft.DiaSymReader.Converter.Xml" Version="1.1.0-beta2-20115-01" /> 增加⾏在NuGet.config中:<add key="DotNet MyGet" value="https:///F/symreader-converter/api/v3/index.json" /> 删除掉<add key="dotnet-tools" value="https:///dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json" /> 增加⾏。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Scalably Supporting Durable Subscriptions in a Publish/Subscribe System Sumeer Bhola Yuanyuan Zhao Joshua Auerbach{sbhola,yuanyuan,josh}@IBM T.J.Watson Research CenterAbstractWe describe algorithms to scalably support durable sub-scriptions in a publish-subscribe system.Durable subscrip-tions are guaranteed exactly-once message delivery,despite periods of disconnection from the system.Our algorithms persistently log each message only once in the system,and can support administratively specified’early-release’poli-cies that reclaim persistent storage in the presence of mis-behaving durable subscribers.To efficiently recover mes-sages missed by a disconnected durable subscriber,with-out refiltering messages published while the subscriber was disconnected,we persistently logfiltering information in a manner optimized for the read/write pattern of durable subscriptions.Consolidation of data-structures across all subscribers that are done with catching up(after a discon-nection),helps the system support a larger number of sub-scribers.We experimentally demonstrate the low-latency and scal-ability properties of our implementation,both in the pres-ence and absence of failures.1IntroductionThis paper describes novel algorithms to scalably sup-port durable subscriptions in a publish-subscribe system. These algorithms have been implemented in Gryphon[7,9, 10,14],a highly-scalable content-based publish-subscribe system,that employs a redundant overlay network of bro-kers.Durable subscribers can disconnect and reconnect from the system,and are guaranteed exactly-once message deliv-ery,i.e.,messages published while they were disconnected will be delivered on reconnection,and no messages will be lost due to failures inside the system.In message queu-ing systems,such as IBM’s MQseries,this is also known as persistent messaging.An example of usage of durable subscriptions is stock trading applications,where all orders to trade must arrive reliably at the application processes that will execute the trades,and also be recorded reliably by data backup applications,at multiple locations,for disaster re-covery.Since disconnection of a durable subscriber may be involuntary,for instance,due to failure of the subscriber itself,such subscribers typically consume messages within the context of a transaction.In the rest of this paper we will refer to messages published by applications as events, to distinguish them from control messages sent inside the overlay network.Previously[10]we have described a scalable algorithm for exactly-once event delivery to non-durable subscribers, i.e.,a subscriber will miss events for the period of discon-nection.This is the only known algorithm that can per-formfiltering of events at intermediate nodes(brokers)in the overlay network,which improves network utilization, but logs each event only once and does not perform store-and-forward routing of events.An obvious,but undesirable,way to extend this solution for durable subscriptions is the following:Every edge-broker to which durable subscribers connect, which we call a subscriber hosting broker(SHB),maintains a persistent event log for each durable subscriber in which each event that matches the subscriber is placed.While the subscriber is connected,events are delivered in-order from this log to the subscriber,and are removed from the log when the subscriber acknowledges consuming them.At all times,whether the subscriber is connected or not,new events are added to the end of the log.This is the typical solution adopted at SHBs by current Message Queuing products1However,this solution has sig-nificant disadvantages:1.An event is logged at all SHBs,and multiple times atan SHB,depending on the number of subscribers that match the event.2.A durable subscriber has to always reconnect to theSHB that is maintaining its persistent event log.This decreases system availability if an SHB crashes and does not recover immediately.Due to the fanout prop-erties of publish-subscribe,a majority of brokers in 1This is based mainly on anecdotal evidence,since messaging product vendors do not publicly reveal such technical details.typical deployments are SHBs.Hence,increasing sys-tem availability,such as by hosting SHBs on highly fault-tolerant hardware,increases costs significantly.In contrast,the novel features of the solution we present in this paper are:1.Only once event logging:Each event needs to belogged only once,at the broker hosting the publisher of the event(the publisher hosting broker or PHB).Scal-ability of event recovery is achieved by caching events at intermediate brokers and SHBs,and nack consolida-tion.Some of these caches may use persistent storage to support large cache sizes,but the absence of an event from a cache does not impact correctness.Availability can be increased by hosting the PHBs,which are fewer in number,on fault-tolerant hardware.2.Persistent Logging offiltered information:An SHBpersistently logs event timestamps and the list of matching subscribers,in an optimized manner2.This aids in fast recovery of messages missed by a recon-necting subscriber,by avoiding refiltering of messages.3.Consolidated data-structures for’non-catchup’sub-scribers:An SHB consolidates most of its data-structures and message processing for all subscribers that are not in catchup mode,i.e.,they are not re-covering events in the past.We expect that,under normal operation,a high-percentage of durable sub-scribers will be connected and not in catchup.Hence, consolidation allows each SHB to support a large num-ber of subscribers.4.Releasing persistent storage despite long-duration dis-connected subscribers:Typical event expiration mod-els,such as in the Java Message Service(JMS)API[3], only support an optional publisher specified event ex-piration time interval.If the event has not expired (or has infinite expiration),persistent storage used by it cannot be released until the event has been ac-knowledged by all subscribers.Our model also sup-ports administratively specified early-release policies.Such policies guard against storing an event indefi-nitely in the presence of incorrect or malicious durable subscribers that are disconnected for a long duration.The algorithm ensures that reconnecting durable sub-scribers that may have missed some event due to early-release get an explicit gap notification.5.Extensible for’reconnect-anywhere’subscribers:Since the persistentfiltered log is only a performance optimization,and events are retained at the PHB,a 2Each event causes a log record write of length8+16∗n bytes,where n represents the the number of matching subscribers(n>0).durable subscriber reconnecting to a different SHB can be accommodated by retrieving the events it may have missed(from the PHB or intermediate caches) and refiltering the events.We do not elaborate on this aspect of our design and implementation in this paper.We have implemented our subscription model and algo-rithms in the context of the Gryphon system,and present results that show high performance and linear scalability in the presence of subscriber disconnections/reconnections. We show system behavior with SHB failure.Results with intermediate broker and PHB failure are similar to those in [10]and not presented here.For programmers writing to the Java Message Service(JMS)API,we have also imple-mented JMS durable subscriptions on top of our model.The rest of the paper is organized as follows:Section2 describes the system model seen by durable subscribers. Section3recaps our stream routing protocol and describes event retention and release.Section4describes the impor-tant parts of the subscriber hosting broker:(1)the persistent filtering subsystem,(2)the consolidated data-structures for non-catchup subscribers.Section5discusses experimental results.Section6discusses related work and we conclude in section7.2System Model for SubscribersEach publisher hosting broker(PHB)maintains one or more publishing endpoints(pubends).Each persistent event published to this broker is assigned to a pubend based on some criteria such as the identity of the publisher,the impor-tance of the event etc.Each pubend maintains a persistent and ordered event stream,that is indexed by the timestamp assigned to the event when it was added to this stream.Con-ceptually,a stream represents information for every time tick3,whether there is an event at that time tick or not. This aspect of the model is the same as[10].When a durable subscriber,say s,first connects to the system,it is provided a starting point(a timestamp)for each pubend in the system.This set of(pubend,timestamp)pairs is essentially a Vector Clock[15],and we refer to it as the Checkpoint Token(CT)of subscriber s.We use the notation CT(s,p)to refer to the current timestamp value for pubend p.Subscriber s is delivered monotonically increasing timestamp information for each pubend p,using messages, m,containing a timestamp,m.t.Let t0be the timestamp of the message preceding m from pubend p,delivered to s,or in case m is thefirst ever message from p delivered to s,let t0be equal to CT(s,p).There are three kinds of messages: 3time ticks arefine-grained enough to ensure no2events occur at the same time.1.Event message:This contains an event with timestampm.t that matches its subscription.It also guarantees that there were no events that matched its subscription in the interval(t0,m.t).2.Silence message:This message does not containan event,but guarantees that there is no event that matched its subscription in the interval(t0,m.t].3.Gap message:This message indicates that there mayhave been some events in the interval(t0,m.t]that matched its subscription,but information about what is in the interval was discarded due to early-release.Once the subscriber has consumed message m,and all preceding messages from pubend p,it sets CT(s,p)=m.t. Periodically,a subscriber should send its current CT to the SHB as an acknowledgment of all messages with times-tamps less than or equal to the CT.When the subscriber reconnects after a disconnection it presents its current CT to the SHB as the point from which it wants to resume mes-sage delivery.If the subscriber loses its current CT,it is possible for it to reconnect using an older CT.However,if it has ac-knowledged events later than this CT,the subscriber may get gap messages in lieu of events it has already acknowl-edged.Most durable subscribers want to be able to recover from their own failure without receiving such gaps.Hence they store their CT in a persistent store,and update it in the context of the transaction that consumes one or more mes-sages.This model is moreflexible than JMS since it supports explicit gap messages,and does not require the CT to be stored by the messaging system.Storing the CT inside the messaging system results in distributed transactions to up-date the CT consistently with the application’s state,which decreases performance and availability.3Event Retention and Release Protocol Message routing and recovery is accomplished using a tree of knowledge and curiosity streams,as described in[10].The root of this tree is a pubend.Intermediate knowledge streams serve as caches of data that increase scalability of recovery,by responding to nacks,and curios-ity streams consolidate nacks from multiple SHBs.The knowledge stream is an extension of that described in our earlier work,and contains four kinds of ticks:Q(unknown), S(silence),D(data),and L(lost).The D tick represents an event published by an application.An S tick means that ei-ther there was no event at this timestamp or it wasfiltered upstream and is therefore not relevant.An L represents that the pubend has discarded information about whether this tick was S or D.The release protocol described next is responsible for converting an increasing prefix of ticks at the pubend into L.We define some terms used in this section and the rest of the paper.Definitions T(p)represents the current time at pubend p. We loosely define a subscriber to be in catchup mode if it is still consuming events that it missed because it was dis-connected.Subscribers in catchup mode can be consuming events at different points in a knowledge stream,while non-catchup mode subscribers are all at the same point in the stream.An SHB maintains a single consolidated knowledge stream that delivers events in-order to all connected sub-scribers that are not in catchup mode.The times-tamp latestDelivered(p),at an SHB,represents the lat-est event that it has delivered to all non-catchup sub-scribers4.Since there is non-zero latency in the system latestDelivered(p)<T(p).The predicate catchup(s,p)is true for a subscriber in catchup mode and false otherwise.It is false when sub-scription s isfirst created,and becomes true the instant the subscriber disconnects.On reconnection,it remains true,until the subscriber has recovered all messages till latestDelivered(p),at which point it transitions to false, and remains false till the next disconnection.Release Protocol An SHB releases a timestamp once all durable subscribers hosted by it,whether they are con-nected or not,have acknowledged that timestamp.At each node in the knowledge graph,the release protocol maintains(1)the minimum timestamp that all downstream SHBs have released,and(2)the minimum timestamp of all latestDelivered(p)at downstream SHBs.The pubend is the root node,hence the minimum values at the pubend are the minimum across all SHBs.Let the current latestDelivered and release timestamps at pubend p be T d(p),T r(p).These are used to decide when to change a tick to L.By definition,the invariant T r(p)≤T d(p)holds.Even in the absence of any early-release policy,a tick at time t can be changed to L by the pubend when t≤T r(p). Since the system uses less resources to support connected subscribers that are not in catchup mode,it considers such subscribers well-behaved.The pubend ensures that such subscribers do not receive any gap messages(due to early-release),by not changing any tick t to L if t>T d(p). Therefore,the early-release policies control what happens to ticks in the range(T r(p),T d(p)].We consider one exam-ple of such a policy.Example:PHB Controlled Policy Each pubend p has a maximum retention time,maxRetain(p),after which it discards an event even if some disconnected durable sub-scribers have not received it.More precisely,the pubend 4The SHB is described is more detail in the next section.Figure 1.The Knowledge Graph inside an SHBchanges a tick t to L when the following condition becomes true:t ≤T r (p )∨[(t ≤T d (p ))∧(T (p )−t >maxRetain (p ))]A subscriber in catchup mode is at risk of receiving a gap message if its CT (s,p )falls behind T (p )by more than maxRetain (p ).4Subscriber Hosting BrokerIn this section,we describe the functions performed by the subscriber hosting broker (SHB)that are critical to scal-ably support durable subscribers.A connected durable subscriber can be either in catchup or non-catchup mode for a pubend p .The SHB main-tains a separate (knowledge and curiosity)stream for each connected subscriber that is in catchup mode.For non-catchup subscribers the SHB maintains one consolidated stream (constream).When the subscriber switches from catchup to non-catchup,the separate catchup stream is dis-carded.Under normal conditions,an SHB operates with a high percentage of non-catchup subscribers,hence con-solidating the streams saves a significant amount of system resources.This is depicted in figure 1,where subscribers s 1through s k are in catchup mode for pubend p ,and subscribers s k +1through s n are non-catchup.The figure shows knowledge stream values in square boxes.The corresponding curiosity streams are in thin boxes,with shaded boxes representing nacks.The istream contains knowledge received from up-stream,and consolidated nacks from downstream.A mes-sage containing knowledge ticks enters the SHB at the istream,where it is accumulated.The changes are then fil-tered through the filters for s 1through sk and accumulatedin their knowledge streams.Finally,the changes are accu-mulated into the constream.The constream delivers mes-sages in order to the Persistent Filtering Subsystem (PFS)and the non-catchup subscribers.4.1Consolidated StreamThe consolidated stream maintains the following times-tamp values:•latestDelivered (p )-The timestamp of the latest event that has been delivered to all non-catchup sub-scribers.•Doubt Horizon (DH )-The highest timestamp such that all ticks between latestDelivered (p )and the timestamp are not Q.All events between latestDelivered (p )and DH are delivered to sub-scribers in sequence.•released (s,p )-the timestamp of the latest event which durable subscriber s has acknowledged.•released (p )-the highest timestamp that can be re-leased.It equals the following:min[latestDelivered (p ),min ∀s(released (s,p ))]In the figure,latestDelivered (p )is equal to 104.Since the doubt horizon is now 106,the constream will deliver D3(as an event message)to non-catchup subscribers that match D3,and to the PFS and then advance latestDelivered (p )to 106.The last hop from the SHB to a subscriber is a FIFO link,and delivery of a message to the subscriber is com-plete,as soon as it is enqueued onto this FIFO link,i.e.,it does not involve waiting for an acknowledgment from the subscribing application.In contrast,delivery of a mes-sage to the PFS is complete only after it has successfullyFigure 2.Persistent Filtering Subsystemlogged the timestamp and matching subscriber ids to per-sistent storage.A subscriber that has not matched any event for a period of time is delivered a silence message to prevent its CT from lagging far behind.Note that the constream never delivers a gap message to a subscriber,since a tick value at time t cannot be changed to L until t ≤latestDelivered (p ).The latestDelivered (p )and released (s,p )timestamps are maintained in persistent storage since they need to sur-vive SHB crashes.Our implementation maintains these in database tables.When the constream recovers after a crash,it resumes delivery to non-catchup subscribers and the PFS from latestDelivered (p )onwards.A new subscriber,i.e.,one that is connecting for the first time,is given a starting point (CT)such that CT (s,p )=latestDelivered (p ).Due to this,a new subscriber is in non-catchup mode.Catchup Stream and Switchover to non-catchup On reconnection,subscriber s provides the SHB its checkpoint token (CT (s ))as the desired starting point for resumption of delivery.Typically,CT (s,p )at reconnect time is less than latestDelivered (p ).Since the consolidated stream is only capable of delivering events >latestDelivered (p ),the SHB creates a catchup stream with the doubt horizon set to CT (s,p ).The catchup stream uses the PFS to re-trieve information about which timestamps greater than CT (s,p )matched subscriber s.For instance,in figure 1,CT (s 1,p )=100,and the catchup stream has been told by the PFS that the only D tick for s 1in the timestamp range [101,105]is at timestamp 101.Consequently,the stream has set the tick value for 102-105to S,and the one at 101to Q,and initiated a nack for 101.Our implementation in-cludes a flow control scheme,between the SHB and the sub-scribing client,to control the rate of nacks initiated,so as not to overwhelm the client with catchup event messages.Our congestion control scheme,described in [14],ensures that brokers allocate enough resources to catchup.When the doubt horizon of the catchup stream becomes ≥latestDelivered (p ),the catchup stream is removed andthe subscriber starts getting messages delivered from the constream.4.2Persistent Filtering SubsystemThe persistent filtering subsystem (PFS)stores informa-tion about which events match a durable subscriber.This is an important optimization since it avoids retrieving and refiltering events that did not match the subscriber.At a concrete level,the PFS stores Q,S and L knowl-edge ticks for each subscriber.A precise PFS implementa-tion stores a Q tick for subscriber s only if there is an event at that timestamp which matches the subscriber.An im-precise implementation may represent some S ticks as Q,which does not affect correctness of the delivery protocols.It can be used to trade off PFS write performance with re-spect to the cost of retrieving and refiltering unnecessary events.Our current implementation is precise.The L ticks represent a prefix of time where everything is L,and are the same across all subscribers,while Q and S ticks will typically be different across subscribers.Our description focuses on how the PFS stores and retrieves Q and S ticks.API The write API of the PFS is used by the constream,while the read API is used by the catchup streams.Each write call contains a monotonic timestamp representing the time of a Q tick,and a list of subscribers for which it is Q.For subscribers not in this list,the tick value is S.A catchup stream for subscriber s reads every Q and S tick for this subscriber,starting from timestamp CT (s,p ),up to the value of the timestamp latestDelivered (p )when the subscriber catches up.Instead of reading one Q tick at a time,the PFS supports a batch read API to read a large number of Qs.The S ticks between adjacent Q’s are im-plicitly represented in the read buffer.Typically,the read buffer used by a catchup stream is large enough to retrieve all the Q and S ticks for the time period the subscriber was disconnected using one read operation.While the catchup stream is retrieving and delivering the events corresponding to this batch of Qs,the value of latestDelivered (p )may advance further.This triggers another read operation by thecatchup stream,after it has successfully delivered all events corresponding to the previous read.Implementation The PFS uses the Log V olume described in[8],which is similar in some ways to Log-structured File Systems.A Log V olume can contain multiple Log Streams, in our case one for each pubend known to the SHB.Each Log Stream implements a write API that supports(1)ap-pending a record to the stream,where each such appended record is assigned a unique monotonic index number,and (2)chopping(discarding)all the records up to some index number.The Log V olume multiplexes multiple log streams onto a singlefile,and supports efficient retrieval of records by index number.Say there are n subscribers and m pubends.The PFS needs to maintain Q and S ticks for each subscriber,pubend pair.Typically n m,therefore it is important to compact the knowledge streams across all subscribers.This com-paction is done,for a given pubend,by mapping Q and S ticks for all subscribers onto a single Log Stream such that one record is written for each timestamp that has a Q tick for at least one subscription.This optimizes write through-put.No record is written for a timestamp for which all sub-scribers had an S tick,i.e.,no subscription matched.Each record written contains the timestamp of the Q tick, and the list of subscribers for which the tick value is Q.For each subscriber in this list of subscribers,the previous index of a Q tick record is also written as part of the record.Fig-ure2shows an example with three subscribers,s1,s2and s3and their knowledge streams for time1-5.The record written for the Q tick at time1,has an index i1and simi-larly for time3,4,5.The special index represents thefirst record in the stream for a subscriber.The PFS maintains lastIndex and lastT imestamp metadata in a database ta-ble.The lastT imestamp represents the latest Q tick writ-ten by the PFS,and lastIndex(s)represents the index of the latest Q tick record that contains this subscriber.This structuring of the data is used to perform batch reads.For instance,say s3wants to know its knowledge stream for time interval[1,10].Knowing that the last timestamp it has seen is5the PFS sets all ticks from[6,10]in the read buffer to Q.Next,all ticks with timestamp greater than the record at lastIndex(s3)and≤lastT imestamp are S.Then fol-lowing the backpointer from i4,the PFS retrieves i1.This means that ticks1and4are Q and2and3are S.By doing a large batch read that retrieves all the Q ticks up to lastT imestamp into a read buffer,the PFS does not need to repeatedly traverse the same Q tick for the sub-scriber.5Experimental ResultsWe have implemented these algorithms in the Gryphon system.The Gryphon system is mostly Java code,forporta-Figure3.Topology for scalability experiments bility,with native libraries for network I/O.Connections between brokers in the overlay network are implemented using TCP.The persistent data-structures in the SHB are stored in DB2version7[2],and accessed using a JDBC API[4]driver that uses shared memory to communicate with the DB2server located on the same machine.The experiments in this section run brokers on IBM RS/6000F80servers(with6processors),running AIX, with SSA160disk drives.All published events contained a250byte application payload.Including headers,the size of the event was418bytes.We disabled early-release in these experiments,since we wanted to observe system be-havior when no gap messages are delivered to subscribers. Here is a summary of our results.1.The end-to-end event latency for a5hop broker net-work is50ms,of which44ms is due to event logging at the PHB.Since our system logs an event only once, the end-to-end latency is low.2.The system scales linearly from20K events/s with1SHB to79.2K events/s with4SHBs in the ab-sence of any subscriber disconnection.Under mod-erate subscriber disconnection/reconnection,it scales from17.6K events/s to69.6K events/s.A microbench-mark with the same workload demonstrates that the PFS is over5x faster than logging events at the SHB.3.Under SHB failure that forces all subscribers to re-main disconnected simultaneously for about40s,there is little overhead on the PHB during catchup due to nack consolidation.However,the SHB rate reduces to about10K events/s when all subscribers have a sep-arate catchup stream(compared to20K events/s with only the constream).This demonstrates the importance of stream consolidation.Figure 4.Peak Event Rate50006000700080009000100001100012000528005285052900529505300053050t i m e i n m i l l i s e c o n d stime in secondssb:catchupduration_1 :0Figure 5.Catchup Duration5.1Scalability ResultsFigure 3shows the topologies used in the scalability ex-periments.The goal is to add subscriber hosting brokers and measure the ability of the system to support a larger num-ber of subscribers,while keeping the per subscriber event rate constant.The input event rate in all topologies is 800events/s,distributed equally over 4pubends,and subscrip-tions are such that each subscriber receives 200events/s.We show a 1broker,a 2broker network with 1subscriber hosting broker (SHB),and 2SHB and 4SHB networks.The 1broker and 1SHB networks are compared to demonstrate that the capacity of the 1SHB network is similar to the 1broker network (as the CPU overhead of logging to disk is negligible).The first set of bar charts in figure 4show the ag-gregate rate to subscribers with no subscriber disconnec-600700800900100011001200528005285052900529505300053050t i c k r a t e i n m i l l i s e c o n d stime in secondssb:latestDelivered_1050010001500200025003000350040004500528005285052900529505300053050t i c k r a t e i n m i l l i s e c o n d stime in secondssb:released_1 :0 RFigure testDelivered(p)and released(p)rate with disconnectionstion/reconnection.It scales almost linearly from 20K events/s for 1SHB to 79.2K events/s for 4SHBs.The CPU idle time at the PHB decreases slightly from 69%to 59%when going from 1SHB to 4SHBs.The second set of bar charts in figure 4show the aggregate rate to sub-scribers when each subscriber independently disconnects every 300s,remains disconnected for 5s (so it misses 1000events),and then reconnects.The aggregate rate increases almost linearly from 17.6K events/s to 69.6K events/s (an increase from 88subscribers to 348subscribers)when go-ing from 1SHB to 4SHBs.With 348subscribers using 4SHBs,at least 1subscriber is reconnecting and catching up in the system at any instant of time.The peak performance in the presence of subscriber disconnections,69.6events/s,is about 88%of the peak in the absence of disconnections.In these experiments,updates to released (s )(maintained in DB2)are performed periodically every 250ms.5.1.1latestDelivered(p),released(p)and catchup dura-tionsWe examine detailed behavior of the SHB for the 2bro-ker network with 1PHB and 1SHB and subscriber dis-。