Hi Sever Coprocessors are still new for me, so I don't have a good answer for your second question.
But for your first, (as far as I understand) remember that you can send Puts/Deletes in any order, and Memstore is responsible for keeping your data sorted before flushing to a StoreFile, and keep in mind that StoreFiles are splitted by RowKey range, partitioned by ColumnFamily, sorted by RowKey, immutable and subjected to compactions and splits. It is not that easy to manage all this constraints fast enough to keep a low latency for random write operations. Also, HLog is append able, so it's ok to just append some grains of data at its end as these data reaches the RS. Regards, Cristofer -----Mensagem original----- De: Sever Fundatureanu [mailto:[email protected]] Enviada em: sexta-feira, 13 de julho de 2012 07:42 Para: [email protected] Assunto: HBase Fault tolerance Hello, I would like to understand more in-depth how fault tolerance is handled in HBase: 1. So for each put operation an RS first writes to an HLog file and then to the Memstore. If the RS crashes the HLog file is replayed by other servers, correct? My question is how is this HLog file different from a StoreFile? Why is it faster to write to an HLog file and not write directly to a StoreFile? 2. How is fault tolerance handled for an RS with a coprocessor loaded? Will other servers load that coprocessor if the original RS crashes? If yes, will the HLog be replayed with the coprocessor already loaded? Thanks in advance for the responses. -- Sever Fundatureanu Vrije Universiteit Amsterdam E-mail: [email protected]
