 Selamat pagi, semua. Nama saya Han. Hari ini, bersama dengan Encik Encik, kita akan berbual dengan Encik Encik dan berkongsi dengan Encik Encik. Kami akan mempunyai jalan-jalan ini yang kami sedang memilih. Jadi, ini... Kita akan berjalan-jalan dengan jalan-jalan ini. Jadi, mari kita mulakan dengan memperkenalkan perniagaan kami. Jadi, basically, IOTA adalah penggunaan terbaik dari perniagaan perniagaan. Jadi, kami diperkenalkan pada tahun 2011. Dan kami mempunyai 60 pekerjaan di sekitar globe. Dan kami berkongsi dengan banyak perniagaan perniagaan terbaik di tempat ini. Jadi, dalam perniagaan yang kami sedang membuat, kami mengandalkan 40-90,000 perniagaan per sekolah dari web setiap hari. Dan kami mempunyai lebih daripada 500 perniagaan diperkenalkan perniagaan perniagaan yang kami mempunyai. Dan kami berkongsi dengan apache konsenre. Kami berkongsi dengan Silla. Kami berkongsi dengan Kafka. Dan kami tidak sebenarnya memperkenalkan ke Goleng. Dan tentu saja, kami berkongsi dengan Java. Jadi, mari kita mulakan dengan perniagaan yang kami mempunyai dengan berkongsi dengan cash ini. Jadi, kami mempunyai perniagaan yang kami mempunyai dengan keadaan berkongsi yang kami perlu mengalir. Dan kami perlu mengalir keadaan keadaan ini. Jadi, kami basically mempunyai keadaan ini untuk mempunyai keadaan ini untuk memperkenalkan keadaan ini selama beberapa jenis. Dan setiap instans keadaan ini perlu menghubungi sebuah keadaan yang dihubungi keadaan yang dihubungi. Saya bermakna keadaan yang dihubungi keadaan yang kita perlu memperkenalkan sebanyak-banyak yang mungkin dengan keadaan konsenre yang kami mempunyai. Dan keadaan ini perlu diperkenalkan keadaan yang dihubungi disebabkan keadaan yang kami memperkenalkan. Dan kami perlu mempunyai keadaan yang sangat tinggi. Jadi, kami berkongsi sekitar 20,000 per sekolah dalam keadaan volume. Jadi, keadaan ini akan dihubungi dengan perkara uL analisi dalam sepanjang masa dalam perjalanan separa. Jadi, di satu jenis, kami mempunyai keadaan keadaan yang dihubungi dan kemudian di sisi lain, kami mempunyai keadaan lain, kami mempunyai keadaan yang dihubungi keadaan yang akan dihubungi dalam keadaan. Jadi, ini adalah cara terpologi apa yang kami memperkenalkan. Jadi, disini, dalam keadaan keadaan yang dihubungi, ini adalah cara terpologi keadaan yang dihubungi keadaan yang dihubungi keadaan yang dihubungi. Kita ada servis mikro yang kami sebenarnya memperkenalkan. Kita akan menggunakan keadaan ini. Dan dengan setiap keadaan yang kita ada dari keadaan ini, kami akan memperkenalkan keadaan di Singapura untuk dikawin. Dan selepas ini, selepas ini, keadaan ini adalah kemudian kembali ke keadaan di keadaan yang dihubungi. Ya. Jadi, apa yang kami memperkenalkan? Ia adalah desain yang kita sepatutnya hanya menghubungi keadaan yang paling sering dihubungi keadaan URL. Dan keadaan ini adalah keadaan LRU yang akan membuat berdasarkan keadaan yang dihubungi keadaan yang kita tidak pernah melihat pada masa-mengah. Jadi, keadaan ini di level 2 di keadaan mempunyai keadaan yang pertama, kita hanya membuat 1 juta rekod yang kita hanya melihat. Dan kita sepatutnya keadaan yang paling sering di keadaan KONKAMRIHASH di level 1 keadaan. Dan di level 2, kita mempunyai keadaan Guava yang mengawal keadaan yang tidak telah dihubungi pada masa-mengah. Jadi, ini sebenarnya adalah keadaan yang baik dalam termasuk keadaan. Jadi, kita mempunyai 77% keadaan di sistem ini. Dan ia sebenarnya mudah memperkenalkan. Tapi, kita memiliki keadaan yang dihubungi keadaan yang dihubungi. Kita tidak akan menjual keadaan yang dihubungi cukup keadaan di pulau ini. Dan keadaan yang dihubungi adalah sebenarnya telah dikelaikan. Jadi, beberapa keadaan yang kami mempunyai untuk keadaan ini, sebaiknya, alat RAM ini, sehingga 16 juta USB dan keadaan harus kongsi bahwa kita perlu sebab mempunyai bahagian mempunyai kecuali dan itu berlainan kepada kegilaian eksponensi dan pembentangan dalam kecil jadi perkara yang ada di atas kita adalah jika kita mempunyai kecuali kecil ini untuk sistem tersebut jadi kita mempunyai kecuali kecuali dengan mempunyai kecuali dan juga yang besar yang terdapat adalah mengajar masalah untuk kita karena kita mempunyai kecuali latihan dan peribadi sehingga sistem ada yang membuat gawis kualiti Jadi ini adalah sebuah profil yang telah dibuat untuk sistem inisial Di mana anda dapat melihat gc yang berlaku setiap minit Jadi setiap kali ada gc dan ada sesuatu spik dalam pengalaman kita Jadi kita perlu fikir tentang cara lain untuk mengandalkan volume ini Sebelum kita pergi ke sana Kita datang ke idea ini dan kita boleh menggunakan file mempunyai mempunyai Jadi saya tidak yakin anda tahu dengan mempunyai M-Map Jadi ini sebuah sistem yang mempunyai mempunyai file mempunyai kernel mempunyai Dan untuk mempunyai spesial untuk menggunakan mempunyai spesial ini Seperti jika mempunyai spesial Untuk menggunakan mempunyai mempunyai mempunyai spesial ini Jadi kita tidak perlu membuat perlukanan yang perlu dari spesial ini ke pengalaman Jadi jika kita mempunyai spesial ini ke 3 perangkat Jadi ada pengalaman pengalaman pengalaman, pengalaman pengalaman dan kawasan Jika kita tidak menggunakan mempunyai M-Map, apa yang berlaku? Saya akan meminta perlukanan yang berlaku dengan kernel kernel akan meminta perlukanan dari hardware dan ada perlukanan dari hardware ke kernel dan kernel kembali ke spesialan Jadi jika anda menggunakan mempunyai M-Map, apa yang berlaku? Anda sebenarnya mempunyai file ke spesial kernel Dan anda menggunakan mempunyai spesial ini jika ia adalah sebahagian dari spesialan Dan sebenarnya perlukanan antara kernel dan hardware itu dibuat dengan kernel Jadi kernel Linux akan mengandalkan pengalaman mempunyai mempunyai mempunyai jika anda mempunyai file dan mempunyai mempunyai jika anda mempunyai file Jadi kemungkinan ini adalah mempunyai 0 Dan satu perkara yang baik adalah jika anda mempunyai file yang sama Mereka dapat menggunakan mempunyai mempunyai mempunyai Sebenarnya mempunyai mempunyai M-Map jika anda mempunyai file kecil kerana cara mempunyai mempunyai mempunyai file ke mempunyai mempunyai Jika file kecil anda lebih kecil daripada mempunyai mempunyai mempunyai Jika mempunyai 4 kilobyte dan anda mempunyai file seperti 1kb dan mempunyai 3 kilobyte dengan kota Jadi cara mempunyai File untuk M-Map Kami mempunyai mumu mempunyai mempunyai menggunakan jawa Yalah cara mempergunakan mempunyai mempunyai mempunyai Mereka menceritakan kemungkinan mempunyai mempunyai mempunyai mempunyai Selepas anda melakukan pakaian ini, anda boleh menggunakan bubara ini seperti bagaimana anda menggunakan pakaian. Anda boleh sebenarnya melakukan pakaian yang diperlihatkan ke tempat yang di dalam pakaian. Dan OAS sebenarnya melakukan kerja yang baik untuk menggunakan pakaian yang menggunakan pakaian untuk pakaian. Jadi, saya bermakna ini adalah beberapa pakaian yang mudah anda boleh menggunakan untuk melihat bagaimana ia berfungsi. Jadi, idea ini menggunakan pakaian ini Sebenarnya, ia mengajar kami mempunyai kebunyian yang sementara anda mempunyai pakaian yang menggunakan pakaian. Jadi, tanpa menggunakan pakaian yang tradisional, seperti input-stream IO. Kita menggunakan map Linux memory untuk membuat pakaian ini dari fals ke memory. Jadi, kita dapat pakaian yang mengharapkan kecepatan untuk menggunakan pakaian yang menggunakan pakaian. Meskipun kita memperkenalkan pakaian ini. Jadi, pasangan yang diperlihatkan sebenarnya adalah lebih baik daripada memperkenalkan pakaian ini. Jadi kami cuba dan ia adalah sekitar 3 milik sekitar untuk mencari di kegantian perlunuhan kegantian yang 150GB dengan 124 kaki. Jadi jika anda melakukan kegantian tradisional, ia adalah sekitar 50 kali lebih rendah untuk melakukan itu. Jadi keadaan yang lain adalah kegantian ini, mempunyai kegantian di atas kek. Jadi tidak ada kegantian GC. Jadi kegantian perlunuhan kek adalah sebenarnya quite consistent apabila anda melakukan kegantian kegantian kegantian di atas kegantian. Jadi mungkin saya boleh tanya Om Kush untuk berkata kepada anda bagaimana kami membuat kegantian kegantian kegantian ini. Jadi, okey. Boleh anda beritahu saya? Okey. Jadi sebelum kita masuk ke kegantian, bagaimana kita sebenarnya membuat kegantian kegantian ini. Jadi saya akan menjelaskan kegantian yang kita cuba menjelaskan. Jadi kegantian kegantian yang kita cuba menjelaskan adalah kegantian kegantian ini banyak. Jadi, saya bermakna, tidak boleh kita membuat kegantian kegantian kegantian ini. Tapi ada kegantian kegantian yang kita ada. Jadi bahawa kita mempunyai kegantian kegantian yang berubah pada masa kita, tetapi hanya beberapa kegantian di atas pada masa kita. Jadi tidak setiap kegantian di atas pada masa kita. Jadi kita tidak perlukan segala-galanya pada masa kita. Jadi kita menjelaskan kegantian kegantian untuk itu. Okey. Okey. Jadi bagaimana kita berubah? Jadi kita menulis semua kegantian ke dalam file kita. Tapi jika kita hanya ada satu file, ia akan menjadi terlalu besar untuk mencari. Jadi apa yang kita lakukan adalah kita sebenarnya disebabkan, kita berubah setiap file menjadi 1,021 kegantian. Okey. Dan bagaimana kita mencari kegantian ini? Jadi semua kegantian kita dalam kegantian adalah menggunakan 128 bit, yang kita menggunakan menggunakan kegantian MAMA3. Jadi itu memberikan kegantian yang rendah untuk kegantian untuk menjadi kegantian yang sama dengan kegantian. Jadi kita mencari kegantian kegantian menjadi 1,024 kegantian. Okey. Jadi pada masa kita hanya perlu mencari kegantian 1 kegantian untuk mencari kegantian tersebut. Jadi tetapi itu tidak cukup. Di atas itu kita membangun kegantian kedua dalam kegantian pada setiap kegantian, yang adalah menggunakan kegantian 12 bit lagi. Jadi, maaf, saya lupa mengatakan bahawa setiap kegantian adalah sebuah kawasan yang telah dibuat. Seperti sebuah kawasan yang telah dibuat di Kasanda. Jadi ia adalah sebuah kawasan yang telah dibuat, sebuah kawasan yang telah dibuat. Jadi kita boleh sebenarnya mencari kegantian. Dan jika kita mencari kegantian, jika kita mencari kegantian yang lebih tinggi, maka ia tidak berubah. Jadi, ia adalah sebuah kawasan yang lain yang membuatnya berlaku. Jadi kita memutuskan file sepenuhnya pada setiap kegantian pada setiap kegantian. Di atas kegantian, kita membangun kegantian dalam kegantian dengan setiap kegantian 12 bit lagi. Jadi, jika kita mencari kegantian dalam kegantian ini, ini adalah kegantian dalam file ini. Jadi, kegantian kedua-edua kegantian dalam kegantian, ia adalah kegantian dalam kegantian. Dan anda boleh memanggil atau membanggil kegantian dalam kegantian yang anda ingin gunakan untuk membangun kegantian. Jadi jika data anda menjadi lebih besar, anda boleh menggunakan kegantian lebih banyak. Walaupun ia akan mengambil kegantian dalam kegantian, tapi ia akan lebih cepat, ia akan membesar kegantian yang lebih tinggi kegantian lebih tinggi. Sekarang, syarat yang kita gunakan adalah 12 bit dan sekurang-kurangnya 33 MB di file dan sebenarnya 272 MB di mempunyai mempunyai. Jadi, index kedua adalah 270 MB. Jadi, mari kita jelaskan perjalanan yang kita lakukan. Sebenarnya, pada setiap perjalanan, kita menghasilkan kawasan menggunakan mempunyai mempunyai mempunyai mempunyai mempunyai mempunyai mempunyai menggunakan mempunyai mempunyai mempunyai. Selepas itu, kita menggunakan 12 bit lagi untuk menjelaskan perjalanan yang kita gunakan dalam kawasan. Selepas itu, kita mempunyai file dan kita mulai membaca dari kawasan yang kita nak. Selepas kita menjelaskan perjalanan, Linux menggunakan mempunyai mempunyai kawasan menggunakan semua kawasan yang kita gunakan dalam kawasan. Jadi, ini bermakna kita mengubahkan kawasan menjadi 4 juta sub-block dan kita hanya perlu membaca satu block pada masa. Sejak jika di setiap block, jika kita menghidupi pembentangan atau kita menghidupi pembentangan yang lebih tinggi daripada pembentangan kita, bermakna ia adalah pembentangan. Jika pembentangan anda sebenarnya sangat kecil, dan mungkin ada posibiliti bahawa pembentangan tidak berubah. Jadi ada kemungkinan yang lebih tinggi daripada pembentangan yang lebih cepat untuk menerima. Jadi ini adalah kedua yang menghidupi pembentangan ini. Pembentangan pembentangan itu berlaku di setiap jalan. Sebab satu perkara yang kita menghidupi pembentangan adalah untuk menghidupi pembentangan. Jika ia adalah satu file besar, menghidupi pembentangan akan sangat berlaku. Jadi apa yang kita lakukan adalah yang sama dengan pembentangan. Jadi kita menghidupi pembentangan dan apabila pembentangan berlaku, kita dapat menghidupi pembentangan baru sementara prosesnya masih menggunakan pembentangan. Apabila kita mempunyai pembentangan baru, kita menghidupi pembentangan untuk pembentangan. Dan prosesnya hanya menggunakan pembentangan baru. Jadi ini adalah cara kita menggunakan pembentangan baru. Jadi ini adalah persembahan yang kita lihat apabila kita berlaku. Jadi pertama, ia mempunyai tiga metrik, pembentangan pembentangan. Satu adalah pembentangan total yang kita dapat daripada pembentangan. Jadi semua ini telah dibuat pada pembentangan macbook, laptop, 8-core dan 6-inGB. Jadi semuanya berlaku di setiap metrik. Jadi pertama adalah apabila kita hanya menggunakan pembentangan. Dan kita tidak mempunyai pembentangan kedua dengan kita. Jadi pembentangan itu tidak terlalu hebat sebenarnya. Kerana kita masih menggunakan pembentangan. Pembentangan ini telah dibuat pada pembentangan, yang adalah 34GB di pembentangan. Dan jika kita cuba menggunakan pembentangan, ia akan menjadi lebih tinggi. Jadi kembali ke metrik, pembentangan itu tidak terlalu hebat. Dan kita tidak melihat banyak pembentangan di sana. Jadi jika kita melihat, pembentangan itu seperti 98 lukas per sekejap. Dan kita menggunakan, kedua adalah mempunyai pembentangan untuk proses jawa. Dan yang terakhir adalah mempunyai pembentangan sebenarnya yang dipergunakan. Jadi yang sebenarnya jika kita melihat di atas semua, ia dipergunakan secara sama. Itu sebabnya Linux menggunakan semua pembentangan yang digunakan untuk menggunakan pembentangan. Jadi apabila kita memperkenalkan pembentangan kedua di pembentangan mempunyai pembentangan, ia sebenarnya memperkenalkan banyak. Tapi kita menggunakan hanya 10 bit untuk pembentangan kedua. Dan pembentangan mempunyai pembentangan itu sangat rendah. Mungkin 10 MB lebih di pembentangan. Jadi kita fikir kita boleh melakukan lebih banyak pada pembentangan kedua dan ia akan memperkenalkan pembentangan kita selama-lamanya. Jadi pembentangan kedua kita sebenarnya memperkenalkan pembentangan kedua di pembentangan kedua untuk menjadi 12 bit. Oleh itu, ia bermaksud kita menggunakan 270 MB pembentangan di pembentangan kedua untuk pembentangan kedua itu. Dan ia sebenarnya memperkenalkan banyak pembentangan. Jadi sebab ini berlaku, salah satu pembentangan yang lain adalah apa yang pembentangan yang kita melihat dalam mempunyai mempunyai Pembentangan kedua itu adalah melakukannya. Cina C memberikan banyak masalah kerana kita menggunakan pembentangan kedua untuk mempunyai pembentangan dan apabila C cuba menggabungi pembentangan kedua, ia tidak mengalami banyak. Kerana ia semua berlaku dengan pembentangan kedua. Tetapi itu memang mempunyai Pembentangan kedua untuk memperkenalkan pembentangan kedua. Jadi, di sini, pembentangan kata-kata ini menggunakan mempunyai mempunyai pembentangan kedua. Jadi perasaan gc sangat rendah. Jadi jika anda melihat bagaimana heap yang anda menggunakan adalah 500 mb atau 340 mb atau 850 mb Seluruhnya bagaimana perasaan kedua yang anda menggunakan. Jadi, dan perasaan kedua yang baik tentang itu adalah ia menggunakan semua memori yang digunakan dan memori menjaga bagi perasaan dan ia dibuat oleh Linux. Jadi jika anda tidak perlu menggunakan memori untuk proses ini, jika memori yang digunakan, Linux akan menggunakan dan memperasaan kekensiannya. Dan kekensiannya sebenarnya berlaku lebih baik jika anda tidak mempunyai banyak kekensian yang diperlukan. Saya bermakna tidak mempunyai kekensiannya dengan rendah. Seperti apabila kekensiannya tidak rendah, ia seperti sebabnya kekensiannya sangat-sebabnya rendah. Jadi jika anda mempunyai beberapa kekensiannya yang diperlukan atau kekensiannya yang diperlukan, tetapi perasaan itu berubah, tetapi hanya jika beberapa kekensiannya adalah sebabnya diperlukan pada masa, ia berlaku dengan baik kerana Linux akan menjaga mereka di dalam memori. Jadi jika ia tidak terlalu rendah, sehingga kekensiannya tidak menggunakan kekensiannya yang kita menggunakan sekarang. Jadi sekarang dalam produksi kita mempunyai sebuah data 115 GB, yang berlaku dengan 3.8 bilion kekensiannya. Dan jika kita perlu menggunakan kekensiannya dengan memori, sebenarnya seperti menggunakan beberapa kekensiannya dalam memori, ia akan menjadi kekensiannya sangat besar. Jadi kekensiannya adalah dengan 1.024, yang adalah 124 MB, dan kekensiannya, seperti yang saya menyebut, adalah 2.270 MB dalam MB. Dan kekensiannya yang kita menjaga adalah 3 millisecond per kekensiannya. Ini adalah kekensiannya yang diperlukan. Jadi sebenarnya apabila kita mulakan, kita hanya mempunyai sekitar 34 GB kekensiannya, dan kekensiannya, saya kekensiannya, adalah sekitar 1 millisecond. Jadi sebenarnya ia menyebabkan kekensiannya dengan banyak kekensiannya, kerana kekensiannya menjadi lebih besar. Jadi jika kita perlukan kekensiannya lebih baik, kita boleh menyebabkan lebih banyak kekensiannya, atau lebih banyak kekensiannya yang diperlukan. Okey? Jadi... Dan juga sebab ada beberapa file, kita boleh melakukan kekensiannya dengan kekensiannya, yang menggunakan kekensiannya dengan kekensiannya. Jadi bagi contoh yang terbaik, apabila kita mengembangkan kekensiannya, kita dapatkan 73 kek kekensiannya sekejap untuk 32 GB kekensiannya dengan 16 thread. Itu adalah pada MacBook 8 Core dan 16 GB RAM. Jadi sekarang ia mencari kekensiannya dengan machine R32X. Maafkan saya. Jadi ini adalah 64 GB RAM. Tapi kita hanya membuat kekensiannya dengan 1.5 GB kekensiannya. Tapi Linux sepatutnya mencari kekensiannya dengan kekensiannya. Jadi ini adalah snippet dari kode produksi yang kita mempunyai. Jadi ini adalah beberapa kali semasa kita mempunyai kekensiannya yang tinggi. Jadi jika anda melihat kode produksi yang kita mengembangkan di kiri-kiri, di kiri-kiri anda akan melihat kekensiannya dengan kekensiannya yang kita mempunyai. Ini adalah kekensiannya yang penting. Oh ya, maaf, saya tidak boleh menyebabkan itu. Dan jika anda melihat kekensiannya, kekensiannya lebih atau kurang berlainan. Dan kita dapat menggunakan sebuah masin kekensiannya. Kita dapat mengembangkan kekensiannya dengan kekensiannya dengan kekensiannya yang kekensiannya. Dan kekensiannya adalah 115 GB sekarang. Jadi mari saya tunjukkan anda kekensiannya dengan kekensiannya. Jadi kami ada semua data dari kode produksi yang kita mempunyai kekensiannya. Jadi sekarang kekensiannya tidak terlambat. Jadi jika anda melihat semua kode mempunyai, tidak ada kekensiannya. Jadi ini tentu-tentu memerlukan kekensiannya untuk menyebabkan kekensiannya. Jadi mari saya cuba melakukan sesuatu. Jadi saya cuba melakukan 25,000 kekensiannya. Jadi sekarang kekensiannya tidak terlambat. Dan saya cuba melakukan 20,000 kekensiannya dengan menggunakan 8 kekensiannya. Jadi ia akan mengambilkan seperti, saya rasa jika saya tidak salah, seperti sekitar 30 saat, yang tidak baik untuk kekensiannya. Tentu-tentu kekensiannya tidak begitu baik. Tetapi secara terutamanya sebab kekensiannya tidak terlambat. Mari saya... Yang lain yang baik tentang kode mempunyai kekensiannya adalah anda tidak perlu melakukan kekensiannya di aplikasi. Jadi jika... Mungkin aplikasi anda telah mati, tapi Linux... Maksud saya, OS masih bergerak. Ia akan masih... Kekensiannya masih akan berada di sana. Jadi apabila anda menggunakan kekensiannya, kekensiannya sudah ada di sana. Jadi kekensiannya sudah berakhir. Jadi kami menggunakan 8 kekensiannya. Jadi kami menggunakan 8 kekensiannya. Dan ia mengambil sekitar 27 saat. Dan hampir seperti 10 milis kekensiannya. Yang tidak baik sebenarnya. Jadi... Mari saya menggunakan kekensiannya sama tanpa kekensiannya. Dan mari kita lihat kekensiannya. Okey. Jadi jika anda melihat... Sebelumnya, ia mengambil sekitar 2 saat. Dan kekensiannya... Menurut saya adalah... 350 microseks. Sebenarnya kerana... Kekensiannya tidak berubah... dan Linux sudah mempunyai kekensiannya. Jadi sebenarnya kekensiannya... bergabung dengan cara kerja anda. Jadi jika anda mempunyai beberapa kekensiannya pada masa... ia akan berfungsi dengan baik untuk anda. Jadi mari kita cuba... bercakap tentang parameter kedua... yang sebenarnya anda boleh mempunyai kekensiannya... dan dapatkan lebih banyak kekensiannya. Jadi mari kita cuba dengan 32 kekensiannya. Ya. Jadi ini lebih baik. Seperti semula perubahan... ia mempunyai... ia mempunyai kekensiannya daripada 22 kek kekensiannya... kekensiannya daripada 30 kek kekensiannya. Meskipun kekensiannya... ia akan lebih tinggi... kerana mereka mempunyai lebih banyak kekensiannya... yang mempunyai untuk kekensiannya... dan segala-galanya. Tetapi overall perubahan... ia cukup tinggi. Dan perubahan kekensiannya... adalah 1 millisecond. Jadi ya. Jadi jika... pada akhir... saya mahu membuat... jika anda mengubah kekensiannya sebenarnya. Jadi... tanpa... 20,000 kek... saya sebenarnya memperkenalkan... 80,000 kek kek. Ini... ini akan mempunyai kek... tentangnya. Jadi sebab kek... kek adalah baru... dan anda akan mengambil masa... untuk memasukkan... untuk Linux untuk memasukkan kek. Baiklah, saya cuba. Saya mengambil banyak masa. Baiklah. Saya rasa anda boleh kembali. Ya. Saya rasa ia boleh mengambil beberapa sekitar sebenarnya... untuk mengubah kekensiannya. Baiklah, jadi... kembali pada beberapa kerja... seperti... semuanya tidak baik dengan memori. Tidak... ia... sangat baik. Jadi beberapa perkara yang kita menemukan... teruk tentangnya. Satu perkara adalah... lima maksimum... file yang anda dapat memasukkan... adalah 2GB. Anda tidak dapat memasukkan file lebih besar... daripada itu. Tetapi... untuk kes ini... sejak kita memasukkan kek... jadi itu bukan masalah untuk kami sekarang... tapi hanya untuk kes ini. Ya. Yang kedua adalah... jawa seperti... memori natif... sebenarnya... tidak memasukkan dengan cepat. Jadi... apabila anda membuat... memasukkan kek... file yang dilapisi... ia tidak akan mencari... kek... file yang dilapisi... dan memasukkan kek... sampai kek sejarah. Jadi... ia akan menghidupkan... tapi dengan memasukkan kek... dan memasukkan kek sebenarnya. Dan... tidak ada... api sebenarnya... untuk memasukkan kek. Jadi... kita memasukkan kek normal şirah... dan anda perlu memasukkan kek... sebuah kera... untuk memasukkan kek sebenarnya. You have to use unsafe class to clean basically. So this method is not actually for the work. So it works for different gave him amazing, but if you have a different gave him this particular class, it will work. Can you still run it in Java 9? I guess it should be still there. Sorry? Can you run it in Java 9? We haven't checked that. So coming back to like this, 100,000 look up look quite a lot of time actually. If I run the same thing again, it will be very fast because everything will be in the cache. So, yeah. It's like very, very fast compared to the previous invocation. And the throughput is quite good. Yeah, that's pretty much it. Do you have any questions? I have a question. When you add new data, you need to read the whole sub into memory, new record, then rewind the whole sub. Yeah. So how it works is the, it's more like, so both the files, the existing chart and the new delta coming in are sorted, right? So what we do is basically a merge operation. So we keep reading both files and just interleave as per the ordering and just create a new chart. The reason for it is you can easily just swap the file and the changes will be immediately available. And this offline compaction can happen offline. Is it a fragment problem because if you keep creating a file and drawing a new file and you don't have a consecutive space to contain the file? Sorry, can you come? Yeah, definitely you need some access space, right? Because while you're generating the new file, you're actually using that amount of capacity as well. So at the time only when you swap it, then you can clean up the old index. But basically the chart that you're trying to generate, right, will be taking out space. So probably you need to have some access space for this thing to happen, for this compaction to happen. I'm talking about at least a new fragment if suddenly your file is not owner of the block of your file. It's not happened constructively on the display anymore. Is it any protocol issue? So you've been saying that the block is full already? Like if one block and it pauses in the business and the next block of a file can actually happen, you go into the next block, quite far from the first possibility. You see the concern? Not really actually. So because first thing is we actually hold the index, which block we want to look into. So we just directly go to the block itself if it exists. You mean the block on the desk, right? Yeah, I think if it gets fragmented on the desk. Well, I think we're using SSDs for this case, probably the... Yeah, Linux mostly handling all the memory management basically behind the scenes. Anybody else? Any questions? One more question. So what is it on the low volume or on the EVS volume? It's in the storage. It will be pretty much the same speed on EVS if you have network storage. I might go up The kernel is caching anyway. You're not going to really get into the scene. Yeah. You want to give him mic? Sorry, is the client who's using the cache is collocated with the nodes and charts of the cache itself? Yeah, so let me go to the topology that we are having. Yeah. So we intend to deploy this cache in multiple regions so that we are collocated to the client. But it's not instance collocated. Right? We can put this anywhere. Did you measure any performance differences if the client and the chart is on the same easy to instance or different? Oh, currently it is on the same machine, both of them. So because the application doesn't need much resources to run, to do lookups it's mostly the cache is using all the resources of the application. So that was one of the intended way to infer network calls which has latency added. So to what does actually one of the reason was to disk cache. Okay. And the follow-up question, are you using any sort of orchestration deployment solution for that, like Kubernetes or anything? And how does that play with the collocation of charts? So actually the cache, so basically to deploy service ansible, but it's different from cache. So cache is being replicated from part of the application itself. So it actually ask for the newer changes and apply them, compact them. So it's not happening through any orchestration service especially. So basically the update right up put it to an S3 rocket and the different nodes and different regions will pull this updates from S3 rocket. And then apply this cache. Any more questions? Currently we are with 3.8 billion like as average latency about 3 milliseconds. Ya. So I mean this solution you can tweak it out according to your requirements. So this one like how much charts you want to have, how much second level index you want to have, that will basically imply how much latency you have. So you can fine tune those things according to your requirements and read patterns basically. I mean there's a trade off basically because for the second level cache we have this indices that actually takes up memory in your heap. So if you want to increase the size of this blocks right, basically there's a corresponding increase in the heap space usage as well. Ya. Oh this is just a lookup. The previous one when this one we were just, no updates were happening but in this actual updates are happening in the production right now. This is for 5 days data and the updates are happening all the time. Ya. So as he mentioned for in memory objects the problem is the limit of RAM. So for example this one on disk size is 115 GB if I try to put in for example in Java in memory it would be huge like maybe 8 times of it. So we kind of don't want that kind of a huge RAM. The second thing is we did consider some of the other alternatives so we discard it in memory because of that like radius and all it's already in memory plus it has a network latency for it as well. Probably. Ya. No I have not. Repaint price of RAM Ya, I mean basically any solution that requires a large amount of RAM or it needs to be distributed I guess it doesn't apply. It's off-heap but you still need memory I mean this is similar to off-heap as well but the difference is we are actually mapping it to disk Ini adalah lebih besar daripada apa yang anda mencari dalam kemampuan. Linux mengandalkan apa yang berlaku dan membeli-belah kemampuan. Ada lagi pertanyaan? Itu tentangnya. Terima kasih kerana datang.