SNIA Developer Conference September 15-17, 2025 | Santa Clara, CA
Tejas Chopra is a Sr. Software Engineer at Netflix where he is responsible for building Storage and Transfer services that are media optimized for Netflix Studios Infrastructure. Tejas is an Advisor at Nillion, Inc. and is a National Diversity Council recognized 40 under 40 Technology Leader. He is a TedX and an International Keynote speaker and talks on Cloud Computing, Software Engineering and Blockchain. Tejas has more than a decade of software engineering experience at companies such as Box, Datrium, Samsung, Cadence and Apple. He holds a Masters Degree in Electrical and Computer Engineering from Carnegie Mellon University, Pittsburgh.
In file systems, large sequential writes are more beneficial than small random writes, and hence many storage systems implement a log structured file system. In the same way, the cloud favors large objects more than small objects. Cloud providers place throttling limits on PUTs and GETs, and so it takes significantly longer time to upload a bunch of small objects than a large object of the aggregate size. Moreover, there are per-PUT calls associated with uploading smaller objects. In Netflix, a lot of media assets and their relevant metadata is generated and pushed to cloud. Most of these files are between 10s of bytes to 10s of kilobytes and are saved as small objects on Cloud. In this talk, we would like to propose a strategy to compact these small objects into larger blobs before uploading them to Cloud. We will discuss the policies to select relevant smaller objects, and how to manage the indexing of these objects within the blob. We will also discuss how different cloud storage operations such as reads and deletes would be implemented for such objects. Finally, we would showcase the potential impact of such a strategy on Netflix assets in terms of cost and performance.
Cloud storage footprint is in exabytes and exponentially growing and companies pay billions of dollars to store and retrieve data. In this talk, we will cover some of the space and time optimizations, which have historically been applied to on-premise file storage, and how they would be applied to objects stored in Cloud. Deduplication and compression are techniques that have been traditionally used to reduce the amount of storage used by applications. Data encryption is table stakes for any remote storage offering and today, we have client-side and server-side encryption support by Cloud providers. Combining compression, encryption, and deduplication for object stores in Cloud is challenging due to the nature of overwrites and versioning, but the right strategy can save millions for an organization. We will cover some strategies for employing these techniques depending on whether an organization prefers client side or server side encryption, and discuss online and offline deduplication of objects. Companies such as Box, and Netflix, employ a subset of these techniques to reduce their cloud footprint and provide agility in their cloud operations.
Blockchain has revolutionized decentralized finance, and with smart-contracts has enabled the world of Non-Fungible Tokens, set to revolutionize industries such as art, collectibles and gaming. Blockchains, at the very core, are distributed chained hashes. They can be leveraged to store information in a decentralized, secure, encrypted, durable and available format. However, some of the challenges in Blockchain stem from the bloat of storage. Since each participating node will keep a copy of the entire chain, the same data gets replicated on each node, and even a 5MB file stored on the chain can exhaust systems. Several techniques have been used by different implementations to allow Blockchains for distributed storage of data. The advantages compared to cloud storage would be the decentralized nature of storage, the security provided by encrypting content, and the costs. In this session, we will discuss how different blockchain implementations such as Storj, InterPlanetary File System, YottaChain, and ILCOIN have solved the problem of storing data on the chain, but avoiding bloat. Most of these solutions store the data off-chain and store the transactions metadata on the blockchain itself. IPFS & Storj for example, uses content-addressing to uniquely identify each file in a global namespace connecting all the computing devices. The incoming file is encrypted, and split into smaller chunks, and each participating node will store a chunk with zero-knowledge of the other chunks. ILCOIN relies on RIFT protocol to enable two level blockchains, one for the standard blocks, and the other for the mini-blocks that comprise the transactions and which are not mined, but generated by the system. Yottachain uses deduplication after encrypting content, which is not generally the way data storage is designed for cloud, to reduce the footprint of data on the chain. We will discuss the tradeoffs of these solutions and how they aim to disrupt cloud storage. We will compare the benefits provided in terms of security, scalability and costs, and how organizations such as Netflix, Box, Dropbox can benefit from leveraging these technologies.
"There has been tremendous growth in the use of smartphones. Today, there are more than 130 million Android users in the world. Android smartphones leverage flash storage. Flash is great for supporting fast random I/O workloads but due to wear leveling, there is an impact on the life of the underlying flash device. There are strategies that can be used to improve the lifespan of flash storage on smartphones.
In this talk, we will focus on how we developed technology for converting small random I/O to large sequential I/O on Android devices and its impact on the Android flash health, as well as the impact on the load and store times of applications such as Camera, App store, etc. We leveraged techniques such as compression and deduplication to reduce the storage footprint on flash, and also made changes to the SQLite database to avoid frequent flushing of data. This enabled us to serve a lot of the I/O requests from the buffer cache on these Android devices."
As Machine Learning continues to forge its way into diverse industries and applications, optimizing computational resources, particularly memory, has become a critical aspect of effective model deployment. This session, ""Memory Optimizations for Machine Learning,"" aims to offer an exhaustive look into the specific memory requirements in Machine Learning tasks and the cutting-edge strategies to minimize memory consumption efficiently.
We'll begin by demystifying the memory footprint of typical Machine Learning data structures and algorithms, elucidating the nuances of memory allocation and deallocation during model training phases. The talk will then focus on memory-saving techniques such as data quantization, model pruning, and efficient mini-batch selection. These techniques offer the advantage of conserving memory resources without significant degradation in model performance. Additional insights into how memory usage can be optimized across various hardware setups, from CPUs and GPUs to custom ML accelerators, will also be presented.